Let me explain this (I've noticed that non-iterative
solutions are often odd-looking because they have no
cognate in the non-perl world):
my %hash = ();
This just creates a new, empty, associative array.
@hash{ @array1, @array2 } = ();
In this single line, the associative array has effectively
removed the duplicates from @array1 and @array2 for free.
This is a list assignment; that is, this single line
assigns into multiple keys. Just as $hash{$foo} = 0
creates a string key from $foo in the hash %hash,
so @hash{ @array } creates a bunch of keys, whose
members are named in @array, in the hash %hash. Also,
since two arrays mashed together form one big array--
that is, (@a1,@a2,@a3) becomes one flat array-- so then
the assignment @hash{ @array1, @array2 } creates string
keys out of each element in the arrays for %hash.
Since we know that keys are by nature unique, the
hashtable has removed the duplicates for us, for free!
So, now all there is left to do is extract the keys
from the hashtable:
@array3 = keys %hash;
...and we're done.
Rob
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.