in reply to Re: when to use lists/hash vs references?
in thread when to use lists/hash vs references?

The extra dereference costs...

So does the stack manipulation to pass or return a large list.

  • Comment on Re^2: when to use lists/hash vs references?

Replies are listed 'Best First'.
Re^3: when to use lists/hash vs references?
by BrowserUk (Patriarch) on Jul 16, 2010 at 00:49 UTC

    Of course. So don't do that.

    Declare an array, and pass a reference.

    I also prefer to use

    sub arrayManip { our @a; local *a = shift; # do stuff with @a } my @array = (...); arrayManip( \@array );

    But you doubtless consider that too "complex".

      But you doubtless consider that too "complex".

      I consider it a silly micro-optimization, because the programs I write tend to do IO. (And did you benchmark the cost of accessing the symbol table versus a lexical variable?)

        I consider it a silly micro-optimization, ... And did you benchmark the cost of accessing the symbol table versus a lexical variable?

        I don't prefer it for performance. I prefer it for the simplified syntax.

        Most of my programs do IO also. Usually a few seconds at the beginning and the end. In between they do lots of cpu-intensive stuff. Often many hours of it. So, for your delectation:

        #! perl -slw use strict; use Benchmark qw[ cmpthese ]; sub deref { my $r = shift; ++$r->[$_][1] for 0..$#$r; } sub alias { our @a; local *a = shift; ++$a[$_][1] for 0 .. $#a } my @a = map[1..3],1..1e6;; cmpthese -1, { deref => sub { deref( \@a ) }, alias => sub { alias( \@a ) }, }; __END__ c:\test>junk5 Rate deref alias deref 4.16/s -- -12% alias 4.72/s 13% --

        So 8 minutes saved on each hour. 3 hours over a day.

        BTW: If you'd called your "Modern Perl" movement, "Beginner's Perl", I wouldn't have a problem with it. Well, if you also dropped the justifictions and stuck with the facts.


        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.