That still modifies a global variable ...or ast least, it's suppose to. I found that it doesn't modify %{''} as it should! Your code is excercising a Perl bug! This gets better all the time.
Again, easily solved by replacing
sub uinq { local $_; @_ = do { @$_{@_}=(); keys %$_ } }
with the simpler, safer
sub uinq { local %_; @_{@_}=(); keys %_ }
What's with the useless do?
What's with the useless assignment to @_?
Why use a reference when one isn't needed?
Why use a symbolic reference when one isn't needed?
Using the symbolic reference means there's now another variable to localize.
That is, if the code didn't rely on a Perl bug.
In reply to Re^12: Remove redundency from an array
by ikegami
in thread Remove redundency from an array
by vc_will_do
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |