http://www.perlmonks.org?node_id=719911


in reply to Re^5: If you believe in Lists in Scalar Context, Clap your Hands
in thread If you believe in Lists in Scalar Context, Clap your Hands

A slight correction. The difference you note between list slices and array slices is in fact only there in some cases:
@a = ()[0,0,0]; @b = @c[0,0,0]; @c = (1)[0,0,0]; say 0 + @a; say 0 + @b; say 0 + @c; __END__ 0 3 3
The rule is that a list slice (in list context) produces an empty list if all the indices are out of range. This permits code like this:
if ( my ($dev,$ino) = (stat(FH))[0,1] ) {
where the error condition is "passed through" the slice and assignment to affect the if.

In all other cases, a list slice behaves just like an array slice.