in reply to perlsub question..

use Data::Dumper; sub foo { $_[0] = undef; } sub bar {}; my @a; @a = (); foo( $a[0] ); print Dumper \@a; @a = (); bar( $a[0] ); print Dumper \@a;
This prints:
$VAR1 = [ undef ]; $VAR1 = [];

As I read the paragraph you quoted, some earlier versions of perl would have produced identical output in both cases.

-guinex