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:
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-->