Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: Re: Re: sort mechanism

by McD (Chaplain)
on Apr 06, 2001 at 23:32 UTC ( [id://70567]=note: print w/replies, xml ) Need Help??


in reply to Re: Re: sort mechanism
in thread sort mechanism

Um... right. I don't think I was completely clear - what I was trying to point out was that <=> has different behavior when comparing lists than when comparing scalars.

Although comparing two lists of a single scalar each is, as you said, exactly like comparing the naked scalars.

So what have we learned?

  1. I shouldn't node before coffee, no matter what the hour.
  2. "Naked Scalars" would be a pretty good name for a rock and roll band.
  3. So would "Spaceship Operator."
  4. I still can't find where <=>'s behavior in list context is documented.
Peace,
-McD

Replies are listed 'Best First'.
Re: Re: Re: Re: sort mechanism
by extremely (Priest) on Apr 07, 2001 at 00:01 UTC
    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)

      Ok, then riddle me this:

      #!/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

        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)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://70567]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (10)
As of 2024-04-18 09:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found