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

Relais
 2006-06-30 21:19
#67743 #67743
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
Willkommen @Legine!

Ja, ich habe verstanden, worum es in der Perldoc geht.
Ich bin mir nicht ganz sicher, was Du mißverstanden hast, aber es geht so:
Das "Nichts", welches im Pattern Match gefunden wird, ist ein definiertes nichts. Mit defined() wirst Du es also nicht als Falsch erkennen.

Das bedeutet, wie es in der Einleitung schon heißt, daß Du mit defined() auf dem falschen Dampfer bist. Du kannst aber einen Leeren String immer noch mit einem anderen Leeren String vergleichen, ebenso wie die Zahl Null mit der Zahl null. Beispiel:
Code: (dl )
defined $1 and $1 ne ""


edit: noch besser ersetzt Du das .* vielleicht durch ein .+ - welches dann mindestens ein Zeichen matchen muß. Natürlich nur, wenn das für Deine Aufgabe in Frage kommt.

edit2: "Warum der Aufstand um das defined()? An dieser Stelle vermutlich, weil der Perldoc-Autor dieses Fettnäpfchen entweder öfters beobachtet hat, oder selber viel Zeit damit verbrachte, nehme ich mal an. defined() an sich ist vielerorts sehr hilfreich, wenn man es erst als Werkzeug schätzen gelernt hat, sollte man dann auch die Grenzen beachten.\n\n

<!--EDIT|Relais|1151688290-->
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming

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