A Dissabte 13 Gener 2007 18:53, Xavier Noria va escriure:
> On Jan 13, 2007, at 6:29 PM, xavier mas wrote:
> > hello list,
> >
> > I am trying to find if an element in one primary file (transformed
> > to array)
> > is included in two other different secondary files (transformed to
> > arrays,
> > too); the result is going to be printed as 1 or 0:
>
> According to the code that's 1 or -1.
>
> > ...
> > #creating arrays from its text files
> > @img_array=<IMATGES>; @dict_array=<DICT>; @in_array=<IN>;
> > #creating hashes from its arrays
> > foreach $in (@in_array) {chomp($in); $in_hash{$in}= 1;}
> > foreach $in (@dict_array) {chomp($in);$dict_hash{$in}= 1;}
> > foreach $in (@img_array) {chomp($in);$img_hash{$in}= 1;}
> > #searching primary element in secondary hashes
> > while (($key, $value) = each %in_hash) {
> > if (exists $dict_hash{$key}) {$dic_flag="1";}else {$dic_flag="-1"}
> > if (exists $img_hash{$key}) {$img_flag="1";}else {$img_flag="-1";}
> > #printing result
> > print "$img_flag, $dic_flag\n";
>
> A bit of air would improve readability, the code is easy but dense
> just because of lack of layout.
>
> > but it seems 'exists' function doesn't fly to do this -the element
> > isn't
> > always found into the secondary hashes. Any suggestion of why it
> > doesn't and
> > how to do it?
>
> Besides de potential mismatch given by the fact that the "img" hash
> has an "img" flag, but the "dict" hash has a "dic" flag (everything
> seems correct in that snippet anyway), I see no problem. Could you
> please send a minimal, self-contained code with minimal example files
> that let us reproduce the issue?
>
> -- fxn
>
> PS: Please turn strict and warnings on.thank you for your answer, Xavier. 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. Greetings, -- Xavier Mas -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/
