like $@, exception('Optional arguments'),
'recall takes options in a key => value list';
-my $push_exp = '{ CORE::push(@{$_[0]}, @_[1..$#_]) }';
+my $push_exp = "$]" >= 5.013007 ? '{ CORE::push($_[0], @_[1..$#_]) }'
+ : '{ CORE::push(@{$_[0]}, @_[1..$#_]) }';
my $push = wrap 'CORE::push', compile => 0;
is($push, 'sub ' . $push_exp, 'wrap push as a sub (default)');
$push = wrap 'CORE::push', sub => 1, compile => 0;
is_deeply(\@a, [ qw<u v w>, 3, 4, 6, 7 ], '_ without arguments');
}
-eval { wrap { 'main::dummy' => '\[@%]' }, ref => 'shift' };
-like $@,
- qr/to\s+shift\s+must\s+be\s+array +\([\w ]+\) +at\s+\Q$0\E\s+line\s+\d+/,
+sub myshift (;\@) { shift @{$_[0]} }
+
+eval { wrap { 'main::dummy' => '\[@%]' }, ref => 'main::myshift' };
+like $@, qr/to main::myshift must be array \([\w ]+\) at \Q$0\E line \d+/,
'invalid eval code croaks';