Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re: Returning lists vs arrays

by rir (Vicar)
on Jan 20, 2003 at 17:03 UTC ( #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?

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

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (6)
As of 2022-10-05 09:17 GMT
Find Nodes?
    Voting Booth?
    My preferred way to holiday/vacation is:

    Results (22 votes). Check out past polls.