++GrandFather.
Also, if %ss is not used later in the program, then it was probably just used as a 'seen' hash, to
keep track of the values seen during the removal of duplicate elements from the array.
In the past, the common perl idiom for this has been my %seen; @foo = grep {!$seen{$_}++} @bar;,
which looks just like the OP's code. This form 'leaks' the %seen hash, and is *very* confusing to many programmers.
To improve clarity and stop the leak, it can be wrapped in a subroutine. The sub is often named 'uniq',
the same name as the similar Unix program:
Currently, the best practice it to import uniq() from List::MoreUtils, rather than coding it directly:# Remove duplicate elements, leaving only unique elements. sub uniq { my %seen; return grep { ! $seen{$_}++ } @_; } @foo = uniq @bar;
use List::MoreUtils qw( uniq ); @foo = uniq @bar;
In reply to Re^2: meaning for the code
by Util
in thread meaning for the code
by sanku
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |