Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re^2: Perl nested loop to print out two arrays n number of times in different patterns

by johngg (Canon)
on Sep 23, 2014 at 09:48 UTC ( #1101617=note: print w/replies, xml ) Need Help??


in reply to Re: Perl nested loop to print out two arrays n number of times in different patterns
in thread Perl nested loop to print out two arrays n number of times in different patterns

If instead of using array indexes you use the actual array values is saves the bother of having to save the current outer loop value. Anonymonk makes a useful point about meaningful variable names.

$ perl -Mstrict -Mwarnings -E ' my @nums = qw{ 1 2 3 }; my @ltrs = qw{ a b c }; my $iters = 2; for my $iter ( 1 .. $iters ) { for my $num ( @nums ) { for my $ltr ( @ltrs ) { say qq{$num$ltr}; } } }' 1a 1b 1c 2a 2b 2c 3a 3b 3c 1a 1b 1c 2a 2b 2c 3a 3b 3c $

Another way to do this would be to localise the list separator and use glob and the list multiplier in a do block.

$ perl -Mstrict -Mwarnings -E ' my @nums = qw{ 1 2 3 }; my @ltrs = qw{ a b c }; my $iter = 2; say for do { local $" = q{,}; ( glob qq{{@nums}{@ltrs}} ) x $iter; };' 1a 1b 1c 2a 2b 2c 3a 3b 3c 1a 1b 1c 2a 2b 2c 3a 3b 3c $

I hope this is of interest.

Cheers,

JohnGG

  • Comment on Re^2: Perl nested loop to print out two arrays n number of times in different patterns
  • Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (6)
As of 2020-07-11 14:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?