undef und if exists bei Hash geht nicht
Aquariophile
- perl
Hallo!
Darf man _ALLES_ mit undef belegen,
und dann mit if(exists ...) abfragen??
Bei einem Test mit Array gings naemlich
(weiss aber gar nicht ob man es bei Arrays überhaupt machen "darf")
Aber das untere Script geht leider nicht:
(Frage 2)
Wie muss ich es machen dass es geht?
==========================================================
#!/usr/bin/perl
print "Content-type: text/html\n\n";
my %hash = ( "inge" => "21",
"tom" => "14",
"Nicole" => "32",
"Roman" => "63",
"Jakob" => "14",
"Anna" => "12"
);
%hash["inge","Roman","Anna"] = (undef,undef,undef);
print "Wenn man <u>undef</u> macht, ist es trotzdem noch da\n" if exists $array[
3];
%hash["inge","Roman","Anna"] = ();
print "Wenn man den Inhalt auf leer setzt, ist der key noch da\n" if exists $arr
ay[3];
delete @array[0,3,5];
print "Key wurde geloescht!\n" if exists $array[3];
==========================================================
Danke!
Aquariophile
Sorry hab die falsche version vom Script gepostet,
diese ist Richtig:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
my %hash = ( "inge" => "21",
"tom" => "14",
"Nicole" => "32",
"Roman" => "63",
"Jakob" => "14",
"Anna" => "12"
);
%hash["inge","Roman","Anna"] = (undef,undef,undef);
print "Wenn man <u>undef</u> macht, ist es trotzdem noch da\n" if exists $hash[Anna];
%hash["inge","Roman","Anna"] = ();
print "Wenn man den Inhalt auf leer setzt, ist der key noch da\n" if exists $hash[Anna];
delete %hash["inge","Roman","Anna"];
print "Key wurde geloescht!\n" if exists $hash[Anna];
Hi Auqua,
exists EXPR
Given an expression that specifies a hash element or array
element, returns true if the specified element in the hash or
array has ever been initialized, even if the corresponding
value is undefined. The element is not autovivified if it
doesn't exist.
print "Exists\n" if exists $hash{$key};
print "Defined\n" if defined $hash{$key};
print "True\n" if $hash{$key};
Was Du suchst ist wohl defined... probier mal ein bisschen
Gruß Horst
Geil hey!
Danke!