perl -ne "@_=split/,/;$a=@_>2?@_-3:0;print join',',@_[$a..$#_]"
####
perl -ne '@_=split/,/;$a=@_>2?@_-3:0;print join",",@_[$a..$#_]'
####
for ("1,2,3,4,5,6","1,2,3","1,2","1","") {
print "\nTesting: $_\n";
@a=split/,/;
eval { my $i; print "grep :",join(',',grep{$_ if $i++<3}reverse split/,/),"\n"; }; print $@ if $@;
eval { print "slice1:",join(',',+( split /,/ )[ -3 .. -1 ]),"\n"; }; print $@ if $@;
eval { print "-index:$a[-3], $a[-2], $a[-1]\n"; }; print $@ if $@;
eval { print "slice2:",join(',',@a[$#a-2..$#a]),"\n"; }; print $@ if $@;
eval { $a=@a>2?@a-3:0; print "right :", join(',',@a[$a..$#a]),"\n"; }; print $@ if $@;
eval { print "splice:",join(',',splice(@a, $#a - 2, 3)),"\n"; }; print $@ if $@;
}
__END__
Testing: 1,2,3,4,5,6
grep :6,5,4
slice1:4,5,6
-index:4, 5, 6
slice2:4,5,6
right :4,5,6
splice:4,5,6
Testing: 1,2,3
grep :3,2,1
slice1:1,2,3
-index:1, 2, 3
slice2:1,2,3
right :1,2,3
splice:1,2,3
Testing: 1,2
grep :2,1
slice1:,1,2
-index:, 1, 2
slice2:2,1,2
right :1,2
splice:2
Testing: 1
grep :1
slice1:,,1
-index:, , 1
slice2:,1,1
right :1
Modification of non-creatable array value attempted, subscript -2 at C:\Temp\mistakes.pl line 9.
Testing:
grep :
slice1:
-index:, ,
slice2:,,
right :
Modification of non-creatable array value attempted, subscript -3 at C:\Temp\mistakes.pl line 9.