in reply to Re^3: help with an array of arrays
in thread help with an array of arrays

A question on this if I may:
is it possible to do something similar to foreach for arrays, in array of arrays?. I mean, in the following code:
my $min_diff_past = max (@all_date_diffs_past); for my $j ( 0 .. $#AoA_past ) { if ($AoA_past[$j][1]==$min_diff_past) { print $AoA_past[$j][0]."\t"; } }

is there a way to not write the for loop but substitute it with a foreach loop or not?

Replies are listed 'Best First'.
Re^5: help with an array of arrays
by LanX (Saint) on Sep 17, 2018 at 04:04 UTC
    You want to replace c style for with list for?

    Try this

    my $min_diff_past = max (@all_date_diffs_past); for my $arr ( @AoA_past ) { if ($arr->[1]==$min_diff_past) { print $arr->[0]."\t"; } }
    (untested, you seem to confuse min and max)

    NB: The foreach keyword is actually a synonym for the for keyword, so you can use either.

    Cheers Rolf
    (addicted to the Perl Programming Language :)
    Wikisyntax for the Monastery FootballPerl is like chess, only without the dice

Re^5: help with an array of arrays
by AnomalousMonk (Archbishop) on Sep 16, 2018 at 22:45 UTC
    is there a way to not write the for loop but substitute it with a foreach loop or not?

    I don't really understand the question, but an answer to a literal interpretation of it is that in Perl, for-loops and foreach-loops are synonymous in (almost!) every case:

    c:\@Work\Perl\monks>perl -wMstrict -le "foreach (my $i = 2; $i < 10; $i += 3) { printf qq{$i }; } print '' +; for (my $i = 2; $i < 10; $i += 3) { printf qq{$i }; } print '' +; ;; foreach my $i (2 .. 5) { printf qq{$i }; } print ''; for my $i (2 .. 5) { printf qq{$i }; } print ''; ;; printf qq{$_ } foreach 6 .. 9; print ''; printf qq{$_ } for 6 .. 9; print ''; " 2 5 8 2 5 8 2 3 4 5 2 3 4 5 6 7 8 9 6 7 8 9
    The only case in which an initialize/test/finalize (or C-style) for/foreach loop cannot be used is the statement modifier form: something like
        printf qq{$i } for (my $i = 2;  $i < 10;  $i += 3);
    will not fly.


    Give a man a fish:  <%-{-{-{-<