The first line sets the value of the special variable $;
to the value of $". $" is the list separator and has the
default value of a space. $; is the subscript separator,
which is used (or used to be used) for multidimensional
array emulation. As explained in perlvar. So saying
That actually isn't legal, though, because the special
=> makes it okay to use the barewords. If we replace
them with commas, we'll get errors. And that's why we
need the => after "Hacker"; if we take it off, we get
Anway, though, now it makes more sense, doesn't it? Because it looks
like the example above, the example from perlvar. We're
just assigning to a hash element in the hash %;.
And $/ is the input record separator, the default of which
is a carriage return ("\n"). So we assign that value to
the hash element, so what we really have is something like
At first I thought, what the...? But then I realized that $; was the name of a variable. Next I say, "AHA! Does it work with use strict ?" At first I didn't think so since I thought that you would have to declare $; by saying "my $;", but then I hopped on over to perlvar and realized that $; is a "special variable" and that set me straight.
And a few moments later, I said, "Doh! I should have just read btrott's post and it would have saved me a lot of trouble. Oh, well."