in reply to Re: read 2 array simultaneously
in thread read 2 array simultaneously

Well, the first reply above was explicitly coded to the OP's questions and the second said it assumed equal length, so they were at least thinking about it but the undef handling is a good point. TIMTOWDI is fun and good practice. How about this? Handles different sized arrays and prints undefs nicely, too.

use strict; my @a = qw( 1 2 3 ); my @b = qw( 7 8 9 10 ); my ($x, $y) = (1, 2); for (my $i = 0; $i < @a || $i < @b; ) { printf( "$x: %s $y: %s\n", map { defined $_ ? $_ : 'undef' } ( $a[$i], $b[$i++] ) ); }

update: side effect -- will extend the shorter array with undefs. Could copy @a and @b before handing to the loop if this was a concern.

-xdg

Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.