my $text = "Hello world\n";
my $var = 'Hello world\n';
print $text;
print $var;
In the case of $text, we used " (double quotes) and thus, \n was expanded to mean a newline. In the case of $var, we used single quotes, and \n remained the literal characters \ and n.
Now try this code:
my $text = "Hello world\n";
print "$text";
print '$text';
In the case of the first print statement, the variable $text is interpolated within the string (its value is put into the string). In the case of the second print statement, $text is the literal text printed.
Now for =>. => is sometimes called the "fat comma". It's most common use is in declaring elements of a hash, as in:
my %hash = ( This => 10,
That => 20
);
The fat comma also has the effect of 'single quoting' the text immediately to its left. So the above snippet is equal to:
my %hash = ( 'This' , 10,
'That' , 20
);
Now for ->. That is used for dereferencing, which is an entirely different subject, having nothing to do with the => fat comma. If $aref is a reference to an array, one of the notations you can use to dereference that ref, and grab a single element is to use the dereference operator ->, like this: $aref->[3]. That's the same as: ${$aref}[3], and a lot less ambiguous than something like $$aref[3].
As Zaxo has stated, you should have a look at perlsyn, perlop, and perlreftut.
|