Schrift
[thread]6233[/thread]

eval und Rückgabe?



<< |< 1 2 >| >> 15 Einträge, 2 Seiten
Math55
 2004-05-06 00:02
#82033 #82033
User since
2003-08-19
44 Artikel
BenutzerIn
[default_avatar]
hi, wenn ich diesen code habe:

Code: (dl )
eval{`tar -czf $filename @ok`}


wo steht dann die fehlermeldung, falls das ziellaufwerk zum beispiel voll ist?
in $filename steht der zielpfad+dateiname. mit $_ und $@ hab ichs schon probiert, geht aber nicht.....

DANKE:)
format_c
 2004-05-06 00:10
#82034 #82034
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Ich würde das nicht mit eval machen. Das nimmt man zu Code Evaluierung zur Laufzeit.
Ich würde system benutzen und die OS-Error Spezialvariable:
Code: (dl )
system("befehl") or warn "Konnte Befehl nicht ausführen: $!\n";


Gruß Alex
format_c
 2004-05-06 00:17
#82035 #82035
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Anders:
Code: (dl )
1
2
system("befehl");
warn "Fehlgeschlagen: $!\n" if $!;


Gruß Alex
betterworld
 2004-05-06 00:18
#82036 #82036
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
[quote=format_c,05.05.2004, 22:10]Das nimmt man zu Code Evaluierung zur Laufzeit.[/quote]
Nein, dazu nimmt man "eval string". Hier haben wir aber ein Exemplar von "eval block". Das nimmt man dazu, Fehler wie z. B. die() oder 1/0 abzufangen. Da so etwas hier offensichtlich nicht innerhalb des Blockes entsteht, ist eval{} zwecklos.

Mit den Backticks faengst Du stdout ab, nicht stderr. Die gewuenschten Fehler kommen aber nach stderr. Mach also:
Code: (dl )
$fehler = `tar czf $filename @ok 2>&1`


Edit: Aber falls Dich nicht die Fehlermeldung sondern die Tatsache, ob es ein Fehler ist, interessiert, nimm den Vorschlag von format_c\n\n

<!--EDIT|betterworld|1083788436-->
Math55
 2004-05-06 00:23
#82037 #82037
User since
2003-08-19
44 Artikel
BenutzerIn
[default_avatar]
hi, geht auch nicht. $! ist immer leer. :-(. eigenartig. wie könnte es noch gehen?

DANKE
Math55
 2004-05-06 00:37
#82038 #82038
User since
2003-08-19
44 Artikel
BenutzerIn
[default_avatar]
jetzt gehts :-) DANKE
format_c
 2004-05-06 00:42
#82039 #82039
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Mit ner Pipe in die halt nix rein oder raus geht.
Code: (dl )
1
2
open(PIPE,"/bin/tar -czf $filename @ok |") or die "Fehlgeschlagen: $!\n";
close PIPE;


Gruß Alex
format_c
 2004-05-06 00:43
#82040 #82040
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=Math55,05.05.2004, 22:37]jetzt gehts :-) DANKE[/quote]
Verrätst du uns auch woran es jetzt gelegen hat.

Gruß Alex
Math55
 2004-05-06 01:19
#82041 #82041
User since
2003-08-19
44 Artikel
BenutzerIn
[default_avatar]
hi, allerdings bekomme ich ja so alle ausgaben des befehls, selbst wenn es keine fehler sind......ne idee?

DANKE
format_c
 2004-05-06 01:23
#82042 #82042
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Schon mal mit der Pipe probiert?

Gruß Alex
<< |< 1 2 >| >> 15 Einträge, 2 Seiten



View all threads created 2004-05-06 00:02.