Thread fehler abfangen mit eval (13 answers)
Opened by supersucker at 2005-06-17 19:58

betterworld
 2005-06-18 02:57
#55525 #55525
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Du hast murphys Zeile schon genau richtig interpretiert. _ _ WARN _ _ ist kein richtiges Signal wie z. B. INT, sondern einfach nur ein Handler fuer Warnungen, der bei Perl auf dieselbe Weise angegeben wird wie Handler fuer Signale. Siehe vielleicht perldoc perlvar oder perldoc warnings, da muesste das irgendwo drinstehen.

Aber ich muss sagen, dass ich diese Vorgehensweise nicht nur unleserlich finde, sondern auch fehlerträchtig. Denn Warnungen sind nun einmal Warnungen und keine Fehler. Wenn Du Dich nun irgendwo in dem eval-Block vertippst und einen Code erzeugst, der eine andere Warnung hervorruft, wird der eval-Block abgebrochen. Das ist nicht gut.

Ich wuerde eher versuchen, vor dem substr-Aufruf explizit auf die Laenge des Strings zu pruefen. Wenn man es moeglichst kurz schreiben moechte, geht das vielleicht auch mit regulaeren Ausdruecken:
Code: (dl )
my ($teilstring) = m/^.{$k}(.{$teilstringlaenge})/ or die;
(ungetestet)\n\n

<!--EDIT|betterworld|1119049347-->

View full thread fehler abfangen mit eval