http://qs321.pair.com?node_id=714056


in reply to push to a referenced array

Is there any advantage over push @{$a->{ARRAY}}, "some", "list";? I for one can't see any...

Replies are listed 'Best First'.
Re^2: push to a referenced array
by biga (Sexton) on Sep 28, 2008 at 07:09 UTC
    Looks like the only benefit of this function is that you can omit surrounding @{}, which makes code cleaner. You may also add a ref check to this function for debug purposes.

      Hiding implentation details by writing tiny functions instead of just using references the way everybody else does rarely makes code cleaner. This is doubly true when the function you replace it with is obfuscated.

      If you really need a golf function to do it though, it can be made shorter...

      sub ref_push{push@{$_[0]||=[]},@_[1..$#_]}

      www.jasonkohles.com
      We're not surrounded, we're in a target-rich environment!
        Thank you for advice, guys. You've helped me a lot. %)
      ... but you have to write a wrapper for every built-in list function.

      To me it feels more like this function would be used by people not confident with references and autovivification, in which case I recommend reading perldata and perlreftut instead of writing wrappers.