Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

printing hash produce errors

by Xfiles (Initiate)
on Jun 02, 2013 at 12:06 UTC ( #1036580=perlquestion: print w/ replies, xml ) Need Help??
Xfiles has asked for the wisdom of the Perl Monks concerning the following question:

I am trying to execute the following line of code :
#!usr/bin/perl use strict ; use warnings ; my %hash = {'perl' => 1 , 'C' => 0} ; foreach my $key(sort keys %hash) { print "$key : $hash{$key} \n" ; }
but it gives me the following error :
Reference found where even-sized list expected at perl.pl line 9. Use of uninitialized value $hash{"HASH(0x98bf7ec)"} in concatenation ( +.) or string at perl.pl line 12. HASH(0x98bf7ec) :
so what is exactly the problem ?

Comment on printing hash produce errors
Select or Download Code
Re: printing hash produce errors
by bart (Canon) on Jun 02, 2013 at 12:18 UTC
    Your problem is that you're mixing up hashes (%hash) with hash references ({ key => value }) -- note the braces.

    Replace the braces with parens and it should work:

    my %hash = ('perl' => 1 , 'C' => 0) ;
    This produces a flat list, not a hashref, which is exactly what assignment to a hash wants.

    Alternatively you could use a hashref (= a scalar pointing to a hash) everywhere:

    my $hash = {'perl' => 1 , 'C' => 0} ; foreach my $key(sort keys %$hash) { print "$key : $hash->{$key} \n" ; }
      that's it , thanks .

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1036580]
Approved by bart
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (9)
As of 2014-08-29 09:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (277 votes), past polls