Agnello George wrote:
Hi All

Hello,

I got a hash like this :


  my %retrn = ( 0 =>  { 0 =>  '  successful<br>'},
         1 =>  { 1 =>  'insufficient<br>'},
         2 =>  { 2 =>  'txtfile missing<br>'},
         3 =>  { 3 =>  'bad dir<br>'},
         );

( i know this hash looks funny , but is the hash i got to use )

suppose $stdout = 0;


i need to get the key

my key = keys %{ $retrn{ $stdout} } ;

That should probably be:

my $key = keys %{ $retrn{ $stdout} } ;


but i am not getting the desired out put which should be '0'

what am  i doing wrong .

You are forcing scalar context with your assignment and keys() in scalar context returns the number of keys in the hash, which in this case is 1 because you only have one key.

You need to force list context on the assignment which will return the actual keys from the hash:

my ( $key ) = keys %{ $retrn{ $stdout} } ;




John
--
Any intelligent fool can make things bigger and
more complex... It takes a touch of genius -
and a lot of courage to move in the opposite
direction.                   -- Albert Einstein

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to