Santana wrote:
Hei all,

Hello,

how  print a hashtable elements in a function that receives the
reference of
this hastable  ???


In this example this foreach loop in "printHT" function  dont work ,
how is missed ?

#!/usr/bin/perl
use strict;
use warnings;

sub printHT($)

You are using a prototype.  You shouldn't use prototypes.

http://library.n0i.net/programming/perl/articles/fm_prototypes/


{
   my $T =$_[0];

   foreach my $id (keys (%$T)){           #This dont work :)

    print $$T{$id} . "\n";
   }

}


 my %ht_state=("AL" => "Alabama","AK" => "Alaska");
 &printHT(\%ht_state);

The ampersand in front of the subroutine name means that the prototype will be ignored. You shouldn't use an ampersand in front of a subroutine name.

perldoc perlsub



Your code works for me:

$ perl -e'
use strict;
use warnings;

sub printHT($)
{
   my $T =$_[0];

   foreach my $id (keys (%$T)){           #This dont work :)

    print $$T{$id} . "\n";
   }

}


my %ht_state=("AL" => "Alabama","AK" => "Alaska");
&printHT(\%ht_state);
'
Alabama
Alaska




John
--
Perl isn't a toolbox, but a small machine shop where you
can special-order certain sorts of tools at low cost and
in short order.                            -- Larry Wall

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


Reply via email to