The comma operator (,) acts as a list separator. When you feed print and bunch of stuff with commas in-between you are saying print this list of things. In a scalar context the comma evaluates the left arg and dumps the value, then it evaluates the right arg and returns the result.print scalar('foo','bar','this'); gets you this
The period (.) is the string concatenation operator. It combines strings. It also wants its operands in scalar context.
$a = 'abc';
$d = 'def';
$A = $a.$b; #ie, $A='abcdef'
print $A.$a.$b;
This code prints abcdefabcdef. Here I say print this one thing that you can make by putting these things together.
Though they seem to do much the same thing when you're printing, they are actually quite different. Watch out for the scalars only aspect of .!
TGI says moo
|