Hey, just logged in as myself...
So, back to the business... Let me give you a slightly
better looking version of the earlier piece of code.
I've also provided a little info to each line below.
Original (slightly modified) version:
perl -e '@a=('a','b','c');@b=('b','c','d');@{h}{(@a,@b)}=0;@r=keys %h;print @r;print "\nd0n3!\n"'
Untangled version:
@a=('a','b','c'); # create an array with 3 elements: a,b,c
@b=('b','c','d'); # create another array with 3 elements: b,c,d (note the overlap there!:)
@{h}{(@a,@b)}=0; # create a hash (%h) with keys found in both @a and @b arrays (also assign 0 to each key...)
@r=keys %h; # retrieve keys from the hash (should be unique now)
print @r; # do some printing ...
print "\nd0n3!\n" # ugh...
I'm sure you could also try playing around with the map()
function (e.g. map {$_ => }, (@a,@b)... or whatever..) to
create an anonymous hash and retrieve keys directly
from it without the need for an extra variable.
Hope this helps!
In reply to Re: Arrays
by c0d34w4y
in thread Comparing Two Arrays
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |