Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: Returning lists vs arrays

by rir (Vicar)
on Jan 20, 2003 at 17:03 UTC ( [id://228396]=note: print w/replies, xml ) Need Help??


in reply to Returning lists vs arrays

This illustrates the differences that I am referring to.
!/usr/bin/perl use strict; use warnings; sub list { return ( "a", "b", "c") } sub array { my @ret = ( "a", "b", "c"); return @ret; } sub ar_as_list{ my @ret = ( "a", "b", "c"); return $ret[-1] unless wantarray; return @ret; } my $a = list(); my $b = array(); my $c = ar_as_list(); print "list >$a<\narray >$b<\nar_as_list >$c<\n"; __DATA__ list >c< array >3< ar_as_list >c<

Replies are listed 'Best First'.
•Re: Re: Returning lists vs arrays
by merlyn (Sage) on Jan 21, 2003 at 05:10 UTC
    Your model is perhaps flawed. At no time does Perl "return" an "array".

    A more accurate model is that Perl calls a subroutine with a flag that says "I want a scalar" or "I want a list". When the last expression of the subroutine is evaluated (such as for a return operator), that subroutine gets scalar or list eval context applied to it, as appropriate.

    So, a subroutine returns a list or scalar. Always. It never returns an array. If you write return @a, it will return the length of array @a in a scalar context, or a list copied from the contents of @a in a list context. At no time has it "returned" the "array" @a.

    Clear now?

    -- Randal L. Schwartz, Perl hacker
    Be sure to read my standard disclaimer if this is a reply.

Re: Re: Returning lists vs arrays
by OM_Zen (Scribe) on Jan 20, 2003 at 17:44 UTC
    Hi ,

    sub array{ my @ret = ( "a", "b", "c", "d"); return \@ret; } my $b = &array(); my @B = @$b;

Log In?
Username:
Password:

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

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

    No recent polls found