in reply to optimization - exists should return a reference
I fear the consequences of this though; newbies mixing up exists and defined, people requesting delete to work on scalars too, making newbies even more confused. And I bet there are other things I haven't thought about.my $val = $hash{foo}; return $val if exists $val;
This is understandable, but not consistent with how the same thing would work for hashes. By not actually removing the element in the array, and instead replace it with the undefined value with the 'deleted' flag set, or upon FETCH:ing returning ditto, you could give the same behaviour to arrays, if that's desirable. I don't see any backwards-compability problems with this.my @foo = ('a'..'d'); delete $foo[1]; # delete 'b'. my @bar = @foo; print int exists $foo[1]; # 0 print int exists $bar[1]; # 1
|
---|