The dash before title and bgcolor is discussed in the CGI modules documentation.

You can have a space between the arrow operator -> and whatever is to the left or right of it, but its a bad habit to get into because there a situations where you can't have a space. -------------------------------------------------

Most CGI.pm routines accept several arguments, sometimes as many as 20 optional ones! To simplify this interface, all routines use a named argument calling style that looks like this: print $q->header(-type=>'image/gif',-expires=>'+3d');

Each argument name is preceded by a dash. Neither case nor order matters in the argument list. -type, -Type, and -TYPE are all acceptable. In fact, only the first argument needs to begin with a dash. If a dash is present in the first argument, CGI.pm assumes dashes for the subsequent ones -------------------------------------------------