> Hi all,
>
> I am practicing using grep, but have a problem. Instead of directly
> building an array in a traditional format with grep:
>
> @array = (grep $_, @input);
>
> I want to push items into a new array that DO NOT appear within the
> current array being grepped for. Hence:
>
> use strict;
>
> my @array = ();
> my @clean = qw(one one two two two three four six five six six seven
> nine ten ten eight nine);
>
> for (@clean) {
> if (! grep ($_, @array)) {
> push (@array, $_);
> print "$_";
> }
> }
I got it...
for my $item (@clean) {
if (! grep ($_ eq $item, @array)) {
push (@array, $item);
print "$item\n";
}
}
I didn't clue in that in the previous, $_ was actually referring to
each element of @array, not @clean, so I added $item foreach @clean,
and then compared $_ == $item for each item grepped in @array.
I also suppose that if (grep ($_ ne $item, @array) would work too, but
I haven't tried that yet.
;o)
Steve
>
> I'd like to take each item from @clean, grep through the initally
> empty @array, and if the element from @clean does not appear in
> @array, push it to the @array.
>
> When I run the app, I get 'one' in the new @array, but it stops there.
> # perl -d program steps through, and on the first pass of the for
> statement, does the push, and the print. On subsequent runs, $_
> contains the next element from @clean, but the if statement for some
> reason is false, thereby skipping the statement block in if{}, and
> starting over.
>
> perldoc -f grep was not too much help, unless I overlooked something
> in that very short doc page.
>
> Can someone please advise on where I am going wrong?
>
> TIA,
>
> Steve
>
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> <http://learn.perl.org/> <http://learn.perl.org/first-response>
>
>
>
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>