Thread verwirrende aussagen auf perldoc.perl.org: bezogen auf defined (4 answers)
Opened by legine at 2006-06-30 18:16

legine
 2006-06-30 18:16
#67742 #67742
User since
2006-06-30
32 Artikel
BenutzerIn
[default_avatar]
Hallo,

Mein erster Beitrag hier ^^.

Ich habe ein verständnisproblem mit folgender Aussage aus der Perldocumentation bezüglich defined:
Quote
Note: Many folks tend to overuse defined, and then are surprised to discover that the number 0 and "" (the zero-length string) are, in fact, defined values. For example, if you say

Code: (dl )
"ab" =~ /a(.*)b/;


The pattern match succeeds, and $1 is defined, despite the fact that it matched "nothing". It didn't really fail to match anything. Rather, it matched something that happened to be zero characters long. This is all very above-board and honest. When a function returns an undefined value, it's an admission that it couldn't give you an honest answer. So you should use defined only when you're questioning the integrity of what you're trying to do. At other times, a simple comparison to 0 or "" is what you want.


Mein Problem ist nun:
Wenn ich nach einem failed matching ausschauhalten möchte, würde das defined, aber auf obigen fall auch anspringen, oder sehe ich das Falsch? (zumindest in meinen Beispiel würde ein defined genauso gut funktionieren wie ein ($var eq "").
Wenn ja warum dann der Aufstand um das defined. Ich verstehe das nicht so ganz. Habt ihr ne Idee was Jon Allen (nehme mal an das er das Geschrieben hat) damit aussagen will?

Grüße
Legine

View full thread verwirrende aussagen auf perldoc.perl.org: bezogen auf defined