Hi!
Ich verwende ein system-aufruf um aus ein Perl-Skript ein Programm zu starten. Leider leuft das Skript erst weiter, nach dem das Program wider geschlossen (beendet) wirt. Wie kann man das anders machen?
mfg Rübezahl
Das Skript:
#! /usr/bin/perl -w
use strict;
use Tk;
use File::Find;
my $zwischen;
my @liste;
my $zufall;
my $ausgabe;
my $anzahl;
my $durchlauf;
my $mw;
my $print;
$mw = MainWindow->new;
$mw->title("scheiß");
$mw->Button(-text => "Verzeichnis aktuallisieren",
-command => \&suchen)->pack;
$anzahl = "1";
foreach my $p (1, 2, 3, 4){
$mw->Radiobutton(-text => $p,
-value => $p,
-variable => \$anzahl)->pack;
};
$mw->Button(-text => "Start",
-command => \&rotiene)->pack;
MainLoop;
sub rotiene {
chomp($anzahl);
open(LISTE, " /backup2/backup/cd/liste.txt") || die "dateihandel fehlgeschlagen";
@liste = <LISTE>;
close(LISTE);
for ($durchlauf =0; $durchlauf < $anzahl ; ++$durchlauf ){
srand;
$zufall = int( rand(@liste));
$ausgabe = $liste[$zufall];
system "gqview $ausgabe \&";
print $ausgabe;
};
};
sub suchen {system ("find /backup2/backup/cd/ -type d > /backup2/backup/cd/liste.txt");
};
perl "system()"
Re: perl
Ich meinte den zweiten system-aufruf mit "gqview".
Kurtz vor'm Einschlaffen bin ich selb'st drauf gekommen. Ich hab das Licht noch mal angknipst und den Rächner angeschmissen.
Tatsächlich! Ich hatte vergessen mit chomp() die Varieable $ausgabe vom "
" zu bereinigen, deshalb glaubte die Bash, "&" sei ein seperater Befehl, den Sie nicht kenne.
Was lerne ich daraus? Fehlermeldungen ernst nehmen, da ich nicht vor einem Win-Rächner sitze, haben die durch aus Gehalt.
Kurtz vor'm Einschlaffen bin ich selb'st drauf gekommen. Ich hab das Licht noch mal angknipst und den Rächner angeschmissen.
Tatsächlich! Ich hatte vergessen mit chomp() die Varieable $ausgabe vom "
" zu bereinigen, deshalb glaubte die Bash, "&" sei ein seperater Befehl, den Sie nicht kenne.
Was lerne ich daraus? Fehlermeldungen ernst nehmen, da ich nicht vor einem Win-Rächner sitze, haben die durch aus Gehalt.