On Tue, 2008-04-08 at 07:06 -0700, [EMAIL PROTECTED] wrote:
> Hello,
>
> I want to store a hash into an array: e.g.: like this
>
> #!/usr/bin/perl -v
>
> print "Content-type: text/html\n\n";
>
> $h{'hello'}="hello";
> $h{'by'}="by";
> $a[0]=$h;
>
>
> and if i print out the array like this
>
> print $a[0]{'hello'}." and ".$a[0]{'by'};
>
> but it shows nothing. can somebody explain me where is a problem???
> thanks.....
>
>
What you want to do is store a reference to a hash or store an anonymous
hash.
Storing a reference to a hash
$a[0] = \%h;
Storing an anonymous hash
$a[0] = { %h };
The difference can be seen here:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my %h = ();
my @a_ref = ();
my @a_anon = ();
$h{'hello'}="hello";
$h{'by'}="by";
$a_ref[0] = \%h;
$a_anon[0] = { %h };
print "\%h = ", Dumper \%h;
print "[EMAIL PROTECTED] = ", Dumper [EMAIL PROTECTED];
print "[EMAIL PROTECTED] = ", Dumper [EMAIL PROTECTED];
print "\nNow some changes...\n";
$h{'hello'}="bonjour";
$h{'by'}="pres";
print "\%h = ", Dumper \%h;
print "[EMAIL PROTECTED] = ", Dumper [EMAIL PROTECTED];
print "[EMAIL PROTECTED] = ", Dumper [EMAIL PROTECTED];
__END__
--
Just my 0.00000002 million dollars worth,
Shawn
99% of you are just big dumb apes!
+------------\
| Shangri La \
| 40,000 KM /
+------------/
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/