[Israel.pm] FW: FW: check if hash is defined - without the keys

Levenglick Dov-RM07994 dov at freescale.com
Thu Jan 22 06:26:41 PST 2009


Why not use one of the GetOpt flavors?

 
Best Regards,
Dov Levenglick
SmartDSP OS Development Leader

-----Original Message-----
From: perl-bounces at perl.org.il [mailto:perl-bounces at perl.org.il] On
Behalf Of bc.other
Sent: Thursday, January 22, 2009 16:23
To: 'Perl in Israel'
Subject: Re: [Israel.pm] FW: FW: check if hash is defined - without the
keys

I will try to explain what is my purpose:

I have a script that parsing the ARGV argumemts: tvc1=value
tvc2=value...tvc5=value or tvc=value (which sets all tvc1..tvc5 to
specific value).
Now, I don't know if the arguments exists in the command line of
not...since it an optional arguments.

So....

I can do 2 things:
1) my $found = 1;
   Foreach (keys %tvc))
   {
      $found = 0;
   }

   "Do something" if ($found);

2) "Do something" if (%tvc);

My question is should option 2 will be OK ? I thought it might send a
warnings
but it did when I tried to do: "Do something" if (defined(%tvc));
which is I believe to be a mistake....since defined doesn't loop on hash
keys - which I thought at start

I found that option 2 is OK by me - no warnings :-)
Thanks
Chanan

-----Original Message-----
From: perl-bounces at perl.org.il [mailto:perl-bounces at perl.org.il] On
Behalf Of Avishalom Shalit
Sent: Thursday, January 22, 2009 4:02 PM
To: Perl in Israel
Subject: Re: [Israel.pm] FW: FW: check if hash is defined - without the
keys

i really really recommend the perldoc pages.
"perldoc perltoc" may be a good place to start

i think that you would really find it useful to study the "context"
aspect of perl
try answering these

1) what do you get when you evaluate a list in hash context ? (how
about the other way around?)
2) what do you get when you evaluate a hash in scalar context?

---
 as for your first question ,
i am not sure why you don't like the idea of looping or why a warning
is better than an explicit check .

---
perldoc -f grep
perldoc -f keys

2009/1/22 bc.other <bc.other at gmail.com>:
> OK, found that I can use the if (%tvc or %tvw) with use strict /
warnings it
> works (no need for defined function).
> I understood it returns a value ? but can anyone tell me what this
value
> represent ?
>
> I tried this code:
> my %tvc = (1 10);
> my $sc = %tvc;
>
> print $sc; --> printing 1/8 (does it means 1 key, 8 bytes) ?
> Thanks
> Chanan
>
> -----Original Message-----
> From: perl-bounces at perl.org.il [mailto:perl-bounces at perl.org.il] On
Behalf
> Of Chanan Berler
> Sent: Thursday, January 22, 2009 3:31 PM
> To: 'Perl in Israel'
> Subject: [Israel.pm] FW: check if hash is defined - without the keys
>
>
> Hi All,
>
> I got a hash with key1...key25, I am looking to know if the keys are
defined
> or not.
> But I don't like the way like: if defined($hash{key1}) or .....
> defined($hash{key5})
>
> I also don't like much the idea of looping over the keys...
> Q: is there a way to check if hash was defined or not....using the
defined
> function showed a warning...
>
> PS: I can stop using the use strict / warnings - and try this if (%tvc
or
> %tvw) - and it works...
>      But I still want to use them...
>
> Thanks
> Chanan
>
> _______________________________________________
> Perl mailing list
> Perl at perl.org.il
> http://perl.org.il/mailman/listinfo/perl
>
> _______________________________________________
> Perl mailing list
> Perl at perl.org.il
> http://perl.org.il/mailman/listinfo/perl
>



-- 
-- vish
_______________________________________________
Perl mailing list
Perl at perl.org.il
http://perl.org.il/mailman/listinfo/perl

_______________________________________________
Perl mailing list
Perl at perl.org.il
http://perl.org.il/mailman/listinfo/perl



More information about the Perl mailing list