Note: parens around C<grep>'s args are not necessary, so it can be even more concise. ("Elegant", IMHO!)
You should really read
perldoc -f grep
perldoc perlsyn
perldoc perlop
Once you know the elementary charachteristics of each subexpression of the above, combining them should not be too hard.
However grep() will take all the elements from @in and evaluate the !$saw{$_}++ expression for them ($_ is an alias to the actual element). On the first encounter of an item $saw{$_} will be undef, so $saw{$_}++ will return 0 and store one in it. At this point !$saw{$_}++ will return 1 and the element under examination will be passed. A similar analysis for the case in which $saw{$_} already contains a (positive) number (i.e. on second, third, etc. encounter of an item) is left as an exercise to you.
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.