Leser: 26
2010-02-06T12:52:19 biancaHabe folgenden Ablauf:
- Hauptprogramm required ein anderes script und ruft darin eine sub auf
- sub erzeugt einen typischen Fehler Use of uninitialized value
- Hauptprogramm schaut, ob !-z error.log; Bedingung ist false
Kann es sein, dass der Webserver das error.log erst schreibt/schließt, wenn das Hauptprogramm beendet ist?
Gibt es eine Möglichkeit, wie das Hauptprogramm sofort nach Ausführung der sub im required Script erkennt, ob da was ins error.log kommen wird?
danke
2010-02-28T14:46:52 Escape
2010-02-28T14:49:38 pq
2010-02-06T12:52:19 biancawurde das Problem beschrieben.Habe folgenden Ablauf:
- Hauptprogramm required ein anderes script und ruft darin eine sub auf
- sub erzeugt einen typischen Fehler Use of uninitialized value
1
2
3
4
5
6
7
$ perl -wle'my $x;
eval { print "\$x = $x" };
print "error: <$@>"'
Use of uninitialized value $x in concatenation (.) or string at -e line 2.
$x =
error: <>
$
2010-02-28T15:01:07 pq"Use of uninitialized value" ist eine warnung und kein fehler, mit dem das programm abbricht. du möchtest deine aussage bitte überprüfen.
Code: (dl )1
2
3
4
5
6
7$ perl -wle'my $x;
eval { print "\$x = $x" };
print "error: <$@>"'
Use of uninitialized value $x in concatenation (.) or string at -e line 2.
$x =
error: <>
$
$@ ist leer, wie du siehst.
2010-02-28T15:08:04 EscapeSo wie Du das jetzt schreibst ist es klar ...
allerdings bezog sich die ursprüngliche Frage auf die Einbindung von Scripts (und deren Funktionen) - da greift Dein Beispiel dann nicht mehr.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ cat foo.pl
package foo;
use strict;
use warnings;
my $x;
tu_was();
sub tu_was {
my $y = $x + 23;
}
1;
$ perl -wle'
eval { require "foo.pl" };
print "error: <$@>"'
Use of uninitialized value $x in addition (+) at foo.pl line 9.
error: <>
2010-02-28T15:12:35 pq2010-02-28T15:08:04 EscapeSo wie Du das jetzt schreibst ist es klar ...
allerdings bezog sich die ursprüngliche Frage auf die Einbindung von Scripts (und deren Funktionen) - da greift Dein Beispiel dann nicht mehr.
ich warte immer noch darauf, dass du deine aussage überprüfst und zeigst, inwiefern ein einfaches eval auf warnungen wie diese reagiert (welche ja im ursprungsposting angegeben war).
2010-02-28T14:49:38 pqdas erkennt keine warnungen. $@ wird nur gesetzt, wenn der code im eval stirbt.
2010-02-28T15:01:07 pq"Use of uninitialized value" ist eine warnung und kein fehler, mit dem das programm abbricht.