Aquariophile: undef und if exists bei Hash geht nicht

Hallo!

Frage 1:

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

  1. 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];

    1. 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

      1. Geil hey!
        Danke!