Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re^4: help with an array of arrays

by Anonymous Monk
on Sep 16, 2018 at 21:39 UTC ( [id://1222478]=note: print w/replies, xml ) Need Help??


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:  <%-{-{-{-<

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (5)
As of 2024-04-25 12:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found