http://www.perlmonks.org?node_id=428070

#scalar versus array context with reverse. # see http://prometheus.frii.com/%7Egnat/yapc/2000-stages/slide16.html # for where I began playing with this idea... use warnings; use strict; #scalar context, because there's a scalar on the left. my $reverse_gnat = reverse("gnat","bang"); print "1:"; print $reverse_gnat; #gnabtang print "\n"; my @reverse_gnat = reverse("gnat","bang"); print "2:"; #list context, because there's an array on the left. print @reverse_gnat; #banggnat print "\n"; print "3:"; #scalar context (because of the dot operator, I guess) print @reverse_gnat . "\n"; #2, the number of elements in the array # Commas and dots in print statements *ain't* the same... print "4:"; #list context, I guess that's the default for print. print reverse ("gnat", "bang", "\n"); #newline, then bang gnat print "\n"; # leave out the parenthesis, gnatbang\n is the only item in the list # so the effect is nothing happens print "5:"; print reverse "gnat" . "bang" . "\n"; #gnatbang print "6:"; #reverse forced into scalar context by the dot operator print reverse ("gnat") . "bang" . "\n"; #tangbang #few more examples for review. print "7:"; print reverse ("gnat") . "\n"; #tang print "8:"; print reverse "gnat" . "\n"; #gnat print "9:"; print reverse "gnat" , "\n"; #newline, then gnat