Thread Mit "defined" wird hash key angelegt. (6 answers)
Opened by BobderHund at 2012-04-25 20:36

Gast BobderHund
 2012-04-25 20:36
#157848 #157848
Hallo,

ich möchte gerne überprüfen ob ein Hash existiert oder nicht.
Dies überprüfe ich mit "defined".

In meinem Beispiel existiert der Hash nicht.
Aber nach einer "if defined" abfrage wird er anscheinend erzeugt.

Anbei mein Test Script.
Bei der ersten Schleife wird nichts zurückgegeben und bei der If defined abfrage wird "no" ausgegeben.
Doch bei der zweiten schleife wird der hash ausgegeben.
Wie kann ich das erzeugen dieses Hashes unterbinden?

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/perl -w

foreach $key (keys %value_xml){
    if($key eq "IAFIM"){
        foreach $dis (sort keys %{$value_xml{$key}}){
            print "\n4: $key - $dis";
        }
    }
}

if (defined $value_xml{"IAFIM"}{"PLMN-PLMN/MRBTS-999977/LNBTS-999977/LNCEL-1"}{"ocAcBarAC"}) { print "yes"; }else{ print "no";}

foreach $key (keys %value_xml){
    if($key eq "IAFIM"){
        foreach $dis (sort keys %{$value_xml{$key}}){
            print "\n4: $key - $dis";
        }
    }
}


Vielen Dank.

Gruß

modedit Editiert von GwenDragon: tab-Schrittweite auf 4 gesetzt
Last edited: 2012-04-26 09:37:48 +0200 (CEST)

View full thread Mit "defined" wird hash key angelegt.