system("cp $datei $zielverzeichnis");
close FILEHANDLE;
1 2 3 4 5 6 7 8 9 10 11 12 13
my $ret = system("cp $datei $zielverzeichnis"); if ($ret != 0 { if ($? == -1) { print "execute failed with $!\n"; } elsif ($? & 127) { printf "child died with signal %d, %s coredump\n", ($? & 127), ($? & 128) ? 'with' : 'without'; } else { printf "child exited with value %d\n", $? >> 8; } }
system("cp $datei $zielverzeichnis");
2015-07-15T16:06:28 tibowskiCode (perl): (dl )system("cp $datei $zielverzeichnis");
2015-07-15T16:06:28 tibowskiWeil beim vorherige system-Aufruf das externen Programms eben keinen Returncode bei einem Fehler zurück gab oder die Shell nicht korrekt gestartet ist.Da würde mich jetzt noch interessieren, ob mir jemand sagen kann, wieso der Fehler erst bei der nächsten Ansprache des "system" zum Tragen kommt?!
1 2 3 4 5 6
my $datei = "Datei"; my $zielverzeichnis = "/home/user"; my $execstr = "cp $datei $zielverzeichnis"; print "$execstr\n"; # system($execstr);
1 2
# Return-Wert beachten, NICHT system( $command, @args ) or die $!; system( $command, @args ) == 0 or die $?
1 2 3
my @cpCommand = ("/bin/cp", $datei, $ziel); use Data::Dumper; print Dumper \@cpCommand; # hier dein print system(@cpCommand);