Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]6439[/thread]

or die anweisung wird immer ausgeführt



<< >> 6 Einträge, 1 Seite
d4mi4n
 2004-07-28 17:04
#85056 #85056
User since
2004-07-28
4 Artikel
BenutzerIn
[default_avatar]
hiho,
hallo erstmal, bin neu hier und find das forum echt klasse, hat mir schon geholfen
aber nu was wa sich nicht verstehe:

ich habe ein perlscript unter freebsd, dort gibt es iene anweiung
Code: (dl )
system "tar -zcvf $zieldatei $quelle\n" or die "fehler!\n";

es läuft eine weile und am schluss kommt immer "fehler" und die ausgabe die ich nach dem or die ganz normal mit print ausgeb, das dürfte doch eigentlich nicht sein
führe ich den tar befehl ganz normal in der shell aus gehts genausoweite wie beim script allerdings ohne fehlermeldung
Ishka
 2004-07-28 17:07
#85057 #85057
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
system gibt dir den Rückgabewert des Befehls. Und in der shell ist 0 wahr und alles andere falsch. Das liegt daran, daß was falsches einen Fehler anzeigt und man verschiedene Fehlercodes haben möchte.
edit: Naja -- bei mir gibts immer 256*Rückgabewert aus, müßte mal die Doku genauer lesen. Aber im Prinzip ist es das.
edit2: Willkommen auf dem Forum :)\n\n

<!--EDIT|Ishka|1091020159-->
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
renee
 2004-07-28 17:17
#85058 #85058
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@d4mi4n: Herzlich Willkommen!

Du kannst aber
Code: (dl )
system(...) and die "..."; 
machen. Man beachte das and!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
coax
 2004-07-28 17:33
#85059 #85059
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
@renee,

das and halte ich fuer verwirrend.

Code: (dl )
    system(" Kommandozeilenbefehl ") == 0 or die "system failed, ErrorCode: $?\n";

Erst wird geprueft ob die Ausfuehrung von system erfolgreich war (wenn der Rueckgabewert gleich 0 ist) ansonsten wird eine Fehlermeldung mit den Fehlercode ($?) deines Kommandozeilenbefehls ausgegeben.

Vielleicht moechtest du ja auch das Modul Archive::Tar zum Packen deiner Dateien, statt eines externen Programms verwenden. :)
,,Das perlt aber heute wieder...'' -- Dittsche
betterworld
 2004-07-29 01:35
#85060 #85060
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
[quote=d4mi4n,28.07.2004, 15:04]system "tar -zcvf $zieldatei $quelle\n" or die "fehler!\n";
[/quote]
Das \n in system() muss da eigentlich gar nicht sein.\n\n

<!--EDIT|betterworld|1091050671-->
d4mi4n
 2004-07-29 09:35
#85061 #85061
User since
2004-07-28
4 Artikel
BenutzerIn
[default_avatar]
morgen, vielen dank, hat prima geklappt
<< >> 6 Einträge, 1 Seite



View all threads created 2004-07-28 17:04.