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++] ) ); }