Thread Problem mit HASH ref (48 answers)
Opened by bianca at 2010-05-02 13:09

bianca
 2010-05-02 13:09
#136613 #136613
User since
2009-09-13
7016 Artikel
BenutzerIn

user image
Guten Tag!

Habe gerade ein kleines Problemchen mit meinem Hash:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/perl -W
use strict;
use warnings;
my %hash;
$hash{test}{1} = 'test1';
$hash{test}{1}{test2} = 'test3';
$hash{test}{2} = 'test5';
foreach my $nr (
        grep {exists $hash{test}{$_}{test2}}
        keys %{$hash{test}}
) {
        print $nr;
}


Wirft:
Quote
Can't use string ("test1") as a HASH ref while "strict refs" in use at test14.pl line 6.

Wie lautet die korrekte Syntax, abzufragen, ob im Element noch eine dritte Ebene besteht?
Problem ist entstanden als ich aus dem Code no strict 'refs'; verbannen wollte :(

Danke

Edit:
Hab natürlich zwei Probleme: Oben bei der Definition in 6 taucht es auf und beim exists im grep in Zeile 8. Bräuchte dann auch eine Lösung für beide Probleme. Danke :)
So herum sieht man das Problem in Zeile 8:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/perl -W
use strict;
use warnings;
my %hash;
$hash{test}{1}{test2} = 'test3';
$hash{test}{1} = 'test1';
$hash{test}{2} = 'test5';
foreach my $nr (
        grep {exists $hash{test}{$_}{test2}}
        keys %{$hash{test}}
) {
        print $nr;
}

Quote
Can't use string ("test1") as a HASH ref while "strict refs" in use at test14.pl line 8.

Last edited: 2010-05-02 13:17:25 +0200 (CEST)
10 print "Hallo"
20 goto 10

View full thread Problem mit HASH ref