johngg@shiraz:~/perl/Monks$ perl -Mstrict -Mwarnings -E ' my @arr = qw{ zero one two three four }; say qq{\@arr before splice : @arr}; my @idx = ( 0 .. $#arr ); say qq{Original \@idx : @idx}; my $one = splice @arr, 1, 1; say qq{\$one from splice : $one}; say qq{\@arr after splice : @arr}; say qq{\@arr bad slice : @arr[ @idx ]}; my @newidx = ( 0 .. $#arr ); say qq{New \@newidx : @newidx}; say qq{\@arr good slice : @arr[ @newidx ]};' @arr before splice : zero one two three four Original @idx : 0 1 2 3 4 $one from splice : one @arr after splice : zero two three four Use of uninitialized value in join or string at -e line 9. @arr bad slice : zero two three four New @newidx : 0 1 2 3 @arr good slice : zero two three four