in reply to Perl Array of array - How to call a function for each array?

I would read up on passing array references to subroutines and maybe map. A quick google search should provide plenty of hits. In the following code you will find two subroutines-- the first is used from the foreach and the second from the map function. These are two different ways to pass your arrays to a subroutine. I have tried to keep the code short and simple. Feel free to ask for any clarifications.
use strict; use warnings; my $arref = [['text1','Num1'],['text2','Num2']]; sub printargs_one { my ($arg1) = (shift); my ($arg2) = (shift); print $arg1 , "," , $arg2 , "\n"; } sub printargs_two { my ($arg1,$arg2) = @{$_}; print $arg1 , "," , $arg2 , "\n"; } foreach (@{$arref}){ printargs_one(${$_}[0],${$_}[1]); } map { printargs_two $_ } @{$arref};

Replies are listed 'Best First'.
Re^2: Perl Array of array - How to call a function for each array?
by Somni (Friar) on Jul 09, 2011 at 02:51 UTC
    map in void context? For shame!

    foo(@$_) for @$aref

      map in void context? For shame!

      Use a modern perl, map in void context is free