in reply to Search in array from match in another array, print once only.

Change loop to:

foreach $string(@array) { my $found = 0 ; foreach $string2(@original) { if ($string eq $string2) { $found = 1; } } if ($found == 0) { print "$string not found\n"; } else { print "$string found\n"; } }

Also use strict and warnings ...

Replies are listed 'Best First'.
Re^2: Search in array from match in another array, print once only.
by tmharish (Friar) on Feb 22, 2013 at 09:37 UTC

    More importantly its more efficient if you use a hash:

    use strict ; use warnings ; my @array = ( "54321", "54312", "5999", "54352", "12345" ) ; my @original = ( "12345" , "54321" , "12355" ) ; my %hash = map( { ( $_ => 1 ) } @original ) ; print "". ( ( $hash{ $_ } ) ? "$_ Found\n" : "$_ Not Found\n" ) foreac +h ( @array ) ;