On 01/13/2007 12:43 PM, xavier mas wrote:
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>;

Here you treat the information as lines.


#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"

Yet here you treat the information as a comma-separated list of words.

Use Data::Dumper to find out what you are putting into your arrays and hashes.

[...]



--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to