If I get you correctly the %supliers hash will look like this in this
script:
%supliers =(booboo =>'1',
                Puter =>'1',
                Synta => 'defined')
... or am I wrong. I need to see the real print of this hash in order to
understand it...

Thanx a lot!



R o n e n   K f i r
System Administrator
CIT div. Tel Aviv University
Israel
Tel: 972-3-6407416
Fax: 972-3-6405158
cellular: 972-55-405910
E-mail: [EMAIL PROTECTED]
 
 

-----Original Message-----
From: Jan Eden [mailto:[EMAIL PROTECTED] 
Sent: Friday, February 13, 2004 4:39 PM
To: Ronen Kfir; Perl Lists
Subject: RE: basic explanation on code

Hi,

Ronen Kfir wrote:

>Hi Jan,
>I am sorry...
>
>This is the right code:
>
>
>#!/usr/bin/perl
>
>%machines =(user1, 'booboo',
>            user2, 'puter',
>       user3, 'synta',
>            user4, 'synta');
>
> for (keys %machines)
> {
>    $val=$machines{$_};
>       if (!defined $supliers{$val})
>      {
>         $supliers{$val}=1;
>       #  print "hi\n";
>    }
>    else
>    {
>        print "duplicate value: $val\n";
>        
>    }
> }   
>
>Seems more reasonable now... What I cant comprehend now is the
>$supliers{$val part. What's inside it , &  all the mechanism around
>its action.
>

The %supliers hash must have keys which equal the values of the
%machines hash. So the hashes are "tied together" in a way.

The way this is written, the %supliers keys will be booboo, puter and
synta. For each of these suppliers, you check if it's value is defined.
The idea is to mark the supplier synta as duplicate: when you use the
value of $machines{user3}, you assign 1 to $supliers{synta}. On a
subsequent looping, $supliers{synta} will be defined, so you get the
duplicate message.

Best,

Jan
-- 
If all else fails read the instructions. - Donald Knuth



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


Reply via email to