The equality operators apply scalar context to both sides.
Try this out and see. Operators apply context. I don't
think they often respond to it but with perl anything is possible =)
my @a = keys %env;
my @b = values %env;
my @c = ( "equal", "a > b", "b > a" );
print ($c[@a<=>@b]),$/;
No really, damn good band names... =)
--
$you = new YOU;
honk() if $you->love(perl) | [reply] [d/l] |
#!/usr/local/bin/perl -l
my @a = (1, 2, 3);
my @b = (1, 2, 4);
my @c = ( "equal", "a > b", "b > a" );
print ($c[@a<=>@b]);
print ($c[@b<=>@a]);
print ($c[(1, 2, 3)<=>(1, 2, 4)]);
print ($c[(1, 2, 4)<=>(1, 2, 3)]);
Produces:
equal
equal
b > a
a > b
Something about the difference between an array and a list, I suspect - a
distinction oft unclear in my mind, regardless of caffine levels.
Peace,
-McD
| [reply] [d/l] |
A LIST in SCALAR context returns its last item. An ARRAY in SCALAR context returns its count.
A LIST in ARRAY/LIST context returns a LIST. An ARRAY in ARRAY/LIST context returns a LIST.
That gets just about everyone at one time or another. It flat *BOGGLED* me for a while. Try this:
perl -e 'print scalar( (1,2,3,4) ),$/'
--
$you = new YOU;
honk() if $you->love(perl)
| [reply] [d/l] |