Hi Xi,
You're looking only for 'p' letters, not D and O? Why?
Anyway, generic solution will be something like...
my %seen;
my @repeated = grep { /some regex here/ && $seen{$_} > N } @source_array;
... where N is how many times the symbols should appear in the source array
to be counted as duplicate.
and 'some regex' is, well, some regex to filter the symbols if needed. :)
-- iD
2011/12/30 Xi Chen <[email protected]>
> Yes, I agree the code looks strange. Do you have any idea to do this
> with a clear code? I mean to find two same letters, "p" in @a?
>
> Xi
>
> On Thu, Dec 29, 2011 at 10:17 PM, John W. Krahn <[email protected]> wrote:
> > Xi Chen wrote:
> >>
> >> Hello everyone,
> >>
> >> I saw a code below to get two same letters "p" in @a.
> >>
> >> @a = qw (D D p O H p A O);
> >> foreach $b (@a){
> >> $n =~ /$b/i;
> >> if($n>= 2){
> >> $m = $b;
> >> }
> >> }
> >>
> >> But I don't know what does ">=" mean. Thank you!
> >
> >
> > It means "greater than or equal to". The expression "$n >= 2" is true if
> > the value in $n is equal to 2 or is any value greater than 2, 6 for
> example.
> > If the value in $n is less than 2 then the expression is false.
> >
> > Your algorithm looks weird though because you are testing $n for the
> > presence of alphabetic characters (and then not using that information)
> and
> > then using $n in a numerical context.
> >
> >
> >
> > John
> > --
> > Any intelligent fool can make things bigger and
> > more complex... It takes a touch of genius -
> > and a lot of courage to move in the opposite
> > direction. -- Albert Einstein
> >
> > --
> > To unsubscribe, e-mail: [email protected]
> > For additional commands, e-mail: [email protected]
> > http://learn.perl.org/
> >
> >
>
> --
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> http://learn.perl.org/
>
>
>