From perlop:
The =>
operator is a synonym for the
comma except that it causes its left
operand to be interpreted as a string
if it begins with a letter or
underscore and is composed only of
letters, digits and underscores.
This includes operands that might
otherwise be interpreted as operators,
constants, single number v-strings or
function calls. If in doubt about this
behaviour, the left operand can be
quoted explicitly.
Otherwise, the => operator behaves
exactly as the comma operator or list
argument separator, according to
context.
For example:
use constant FOO => "something";
my %h = ( FOO => 23 );
is equivalent to:
my %h = ("FOO", 23);
It is NOT:
my %h = ("something", 23);
The =>
operator is helpful in
documenting the correspondence between
keys and values in hashes, and other
paired elements in lists.
%hash = ( $key => $value );
login( $username => $password );
From PBP:
I have found some good information from Perl Best Practices about Fat Commas =>
and i think it should be nice to mention over here too.
It's better to reserve the fat comma exclusively for the following things:-
Use it when constructing a hash:
my %h = ( FOO => 23 );
or when passing named arguments to a subroutine ie.,
$text = format_text({FOO => 23, BAR => 30});
or when creating a constant:
Readonly my $FOO => "23";
For more detail see the Chapter4:Values and Expressions (Fat Commas) section of Perl Best Practices.