Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: Re: Perl Idioms Explained - ${\$obj->method} and @{[sort @list]}

by bradb (Sexton)
on Aug 23, 2003 at 19:24 UTC ( [id://286098]=note: print w/replies, xml ) Need Help??


in reply to Re: Perl Idioms Explained - ${\$obj->method} and @{[sort @list]}
in thread Perl Idioms Explained - ${\$obj->method} and @{[sort @list]}

To be more precise, the \ operator gives its argument list context, which may surprise many people (it did me).

Why would this surprise you? :)

If I ask for a reference to an array that contains ('foo', 'bar', 'baz'), I expect a reference to an array that has three elements in it, not the number 3 (as would be the case if \ provided scalar context for its arguments.)

Replies are listed 'Best First'.
Re^3: Perl Idioms Explained - ${\$obj->method} and @{[sort @list]}
by adrianh (Chancellor) on Aug 24, 2003 at 11:31 UTC

    Read Arrays are not lists and Scalars, Lists, and Arrays and repeat to yourself three times - "('foo', 'bar', 'baz') is not an array" ;-)

    I'm with Abigail-II. The \ operator has lots of weird cases that surprise you. For example:

    \@foo # reference to array @foo \(@foo, $a) # list of reference to array @foo and scalar $a \(@foo) # list of references to contents of @foo
      Read Arrays are not lists and Scalars, Lists, and Arrays and repeat to yourself three times - "('foo', 'bar', 'baz') is not an array" ;-)

      I can't be blamed if you don't read my post. ;-) I didn't say ('foo', 'bar', 'baz') was an array, I said If I ask for a reference to an array that contains ('foo', 'bar', 'baz').

      HTH.

        My bad ;-)

        However, I think the point about the non-obvious behaviour of the \ operator still stands.

Re^3: Perl Idioms Explained - ${\$obj->method} and @{[sort @list]}
by Aristotle (Chancellor) on Aug 24, 2003 at 07:31 UTC
    That doesn't explain it. \('foo', 'bar', 'baz') is the same as (\'foo', \'bar', \'baz'). Taking a reference to an array certainly doesn't behave that way.

    Makeshifts last the longest.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (4)
As of 2024-03-19 03:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found