xavier mas wrote: > > Here's an example: > in (file, array and hash) contains: "woman, lion, ball" > img (file, array and hash) contains: "ball, dog, cat, lion". > dict (file, array and hash) contains: "house, man, woman, kid, kitchen, lion" > > Comparing in with dict ans img, I'll expect as a result (all previous code is > between the while curly braces): > -1, 1 > 1, 1 > 1, -1 > but the result is, instead: > -1, -1 > -1, -1 > -1, -1 > that means never finds it. > > I hope this is enough data.
I simplified your code: #!/usr/bin/perl use warnings; use strict; use Inline::Files; #creating hashes from files my %in_hash = map { chomp; $_, 1 } <IN>; my %dict_hash = map { chomp; $_, 1 } <DICT>; my %img_hash = map { chomp; $_, 1 } <IMATGES>; #searching primary element in secondary hashes while ( my ( $key, $value ) = each %in_hash ) { #printing result print exists $img_hash{ $key } ? 1 : -1, ', ', exists $dict_hash{ $key } ? 1 : -1, "\n"; } __IN__ woman lion ball __DICT__ house man woman kid kitchen lion __IMATGES__ ball dog cat lion And the results I get are (I get the same results before I modified the code): 1, 1 -1, 1 1, -1 So are you sure that the code you posted is the code you are using? John -- Perl isn't a toolbox, but a small machine shop where you can special-order certain sorts of tools at low cost and in short order. -- Larry Wall -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/