Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Re: list returned from function

by japhy (Canon)
on Jan 17, 2002 at 21:12 UTC ( #139549=note: print w/replies, xml ) Need Help??

in reply to list returned from function

You need an extra layer of parens. $elem = (myFunc())[5];

Jeff[japhy]Pinyan: Perl, regex, and perl hacker.
s++=END;++y(;-P)}y js++=;shajsj<++y(p-q)}?print:??;

Replies are listed 'Best First'.
Re: Re: list returned from function
by count0 (Friar) on Jan 17, 2002 at 21:28 UTC
    In addition to japhy's excellent answer, I'd like to just point out what this is doing for anyone who might not quite understand why this works as it does.

    (my_func()) forces the output of this function into list context as well as groups it for the [5] we're about to append. Now that [5] takes a slice of the list.

    Here's a simple example
    sub foo { return qw(a b c d) } ( foo() )[1,3]; # Is the same as: ('a', 'b', 'c', 'd')[1,3]; # And effectively the same as @a = foo(); @a[1,3];
    You can read more about slicing in the book Effective Perl Programming (a *must* read =)

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://139549]
[marto]: FWIW, people shipping things as perl, which aren't strictly perl can cause confusion (Perl and OpenWrt - where to the communities intersect?)
[marto]: cpanm is lighter on resources than cpan, which is handy when working with consumer grade NAS hardware

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (7)
As of 2018-03-17 13:21 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (224 votes). Check out past polls.