#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