c:\@Work\Perl\monks>perl -le "use warnings; use strict; ;; use Test::More 'no_plan'; use Test::NoWarnings; ;; note 'perl version: ', $]; ;; @_ = qw(a b c); note 'raw print list context shift: ', (shift @_)[ 0, 0, 0 ]; ;; @_ = qw(a b c); ok 'aaa' eq join('', (shift @_)[ 0, 0, 0 ]), 'joined shift'; ;; @_ = qw(a b c); my @ra = (shift @_)[ 0, 0, 0 ]; is_deeply \@ra, [ 'a', 'a', 'a' ], 'assigned shift'; ;; @ra = ('x', 'y', 'z')[ 0, 0, 0 ]; is_deeply \@ra, [ 'x', 'x', 'x' ], 'assigned list'; ;; done_testing; " # perl version: 5.014004 # raw print list context shift: aaa ok 1 - joined shift not ok 2 - assigned shift # Failed test 'assigned shift' # at -e line 1. # Structures begin differing at: # $got->[1] = undef # $expected->[1] = 'a' ok 3 - assigned list 1..3 ok 4 - no warnings 1..4 # Looks like you failed 1 test of 4.