Thread Komplexe Datenstruktur in Perl aufbauen (29 answers)
Opened by Matthias at 2010-02-26 12:54

sid burn
 2010-02-26 16:37
#133745 #133745
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
2010-02-26T15:26:04 GwenDragon
Ja, weiß ich doch, dass defined den Wert des Keys prüft, während exists schaut, ob der Key existent ist. So ganz dusselig bin ich ja nun nicht. ;)


Hmm du schriebst doch

Quote
Hmm. Ich hatte jahrelang im Kopf, dass es sinnvoll ist, zum Testen der Existenz eines Hashelements exists zu verwenden. Falsch gelernt. *grübel*.


Und das ist ja nicht falsch gelernt. Die existenz kannst du ausschließlich über "exists" erreichen. ;) Hast also alles richtig gelernt.

Quote
Lol. Schön, dass auch andere (langjährige) Programmierer über sowas noch staunen. Ein typischer Fall von perltrap oder ein Bug?

Klar, nobody is perfect. ;) Man lernt im Leben immer dazu, auch manchmal Dinge wo man meinst das man sie schon kennt.

Ansonsten wenn ich mich richtig erinnere greift hier Autovivification nicht da ja kein Wert zugewiesen wird. Beim reinen auslesen von werten werden keine keys erzeugt. Bei tiefen leveln also "$hash{foo}{bar}" ist das aber noch anders da hier ein implizierter schreibzugriff enthalten ist.

Ein Bug ist es nicht, aber denke bei "perltrap" könnte man darauf hinweisen. Auch wenn ich nicht genau sehe wo das probleme machen könnte. Wer programmiert den schon so mit der erwatung das ein "defined $hash{foo}" auch unbedingt den key "foo" anlegt, und wenn nicht es probleme im programmcode geben kann?
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de

View full thread Komplexe Datenstruktur in Perl aufbauen