in reply to Re: Syntax explanation required
in thread Syntax explanation required
I was meditating about advising List::MoreUtils:uniq as a best practice, cause I thought it prevents any stringification problems.¹
Unfortunately it doesn't! :(
DB<125> $a=["A"] => ["A"] DB<126> $b=["B"] => ["B"] DB<127> @a=($a,"$a",$b,"$b") => (["A"], "ARRAY(0x96cb0f0)", ["B"], "ARRAY(0x96cfd80)") DB<128> @b= uniq @a => (["A"], ["B"])
thats quite disappointing for an XS-module ...
EDIT: Well at least it preserves order...
Cheers Rolf
¹) I should explain, the problem with using hashes for set operations is that keys are stringified, that means working with anything which isn't a string or at least a scalar comes with a risk.
Practically it's not possible to safely use a ref as a key because of the resulting string is irreversible.
DB<130> $h{$a}=5 => 5 DB<131> %h => ("ARRAY(0x96d1f00)", 5)
UPDATE:
improved code example...
In Section
Seekers of Perl Wisdom