Sorry a mistake... foreach my $ptrelem (keys %hash) {
Should be foreach my $key (keys %hash) { my $ptritem = %hash->{$key}; On Sat, Oct 24, 2009 at 7:55 PM, Noam Rathaus <no...@beyondsecurity.com> wrote: > Hi Shachar, > > First you can always use Data::Dumper: > use Data::Dumper; > print Dumper($ref); > > To make sure that the data is stored correctly. > > In regard to your question: > > my $ref; > my %hash = %{$ref}; > foreach my $ptrelem (keys %hash) { > my @array = @{$ptrelem}; > foreach my $item (@array) { > print $item; > } > } > > From my experience with perl, doing shortcuts don't work too well, and > doing it the long way, helps with debugging and finding out what the > problem is. > > 2009/10/24 Shachar Shemesh <shac...@shemesh.biz>: >> Hi all, >> >> $ref is a reference to a hash. Hash contains a component called "a" which is >> an array. I would like to iterate all elements of said array. >> >> I would like to do something along the lines of: >> foreach my $elem @%$ref{a} >> { >> print "$elem\n"; >> } >> >> Which, I think it clear, does not work. I also tried: >> foreach my $elem @(%$ref){a} >> { >> print "$elem\n"; >> } >> >> which complains about: >> Bareword "a" not allowed while "strict subs" in use >> >> and: >> foreach my $elem @(%$ref){'a'} >> { >> print "$elem\n"; >> } >> >> which complains about: >> Global symbol "$elem" requires explicit package name at line 3 (i.e. - >> inside the for). >> >> Any help would be appreciated. >> >> Thanks, >> Shachar >> >> -- >> Shachar Shemesh >> Lingnu Open Source Consulting Ltd. >> http://www.lingnu.com >> >> -- >> Shachar Shemesh >> Lingnu Open Source Consulting Ltd. >> http://www.lingnu.com >> >> _______________________________________________ >> Linux-il mailing list >> Linux-il@cs.huji.ac.il >> http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il >> >> > _______________________________________________ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il