use strict;
use warnings;
my @foo = ( 1 , 3 , 5 , 7 );
my @bar = ( 2 , 4 , 6 , 8 );
print STDOUT my @baz = map { ( $_ , shift @bar ) } @foo;
I originally had a problem with `uninitialized' warnings
when trying to reproduce your problem but it turned out to
be because I had
[ ... stuff ... ]
my @baz = map { ( $_ , shift @bar ) } @foo;
print STDOUT my @baz = map { ( $_ , shift @bar ) } @foo;
This, of course, eats up @bar the first time
so there's nothing left to shift the second
time. :(
What's on your lines 1 and 2?
As for the general problem of warnings, I only turn warnings off for short one-shot scripts that I know will work even though I wrote bad code. Or, rather, I ignore them unless they get in the way of the output.
I've never encountered a warning (from perl) that wasn't justified so if I'm doing anything at all important I eliminate them. |