Thomas Engelke
05-06-2003, 07:15
Hallo!
Ich versuche, eine Entwicklungsumgebung aus einem Win32-Perl-Script heraus zu starten. Dazu benötige ich eine Möglichkeit, auf der Shell diverse Statements abzusetzen und dann das Script (inklusive des dazugehörigen DOS-Fensters) zu schließen.
Dazu wollte ich zuerst innerhalb eines Loops das jeweilige Statement mit
system("statement")
ausführen und das Script beenden. Ich bemerkte, system würde auf das Ende des Childprozesses warten. Also perldoc -> exec gefunden. Dann bin ich dazu übergegangen, wie in perlfunc angegeben (exec LIST) ein Array mit den Kommandozeilen zu bauen.
my @runme;
while ($instanzen) {
push @runme, "c:\\dlc91d\\bin\\prowin32.exe -ininame D:\\dev\\prg\\91d.ini -pf D:\\dev\\prg\\91d.pf -p D:\\dev\\prg\\pp_perl.p";
$instanzen--;
};
Dieses will ich dann per
exec(@runme) or die "Cannot run statements ...\n";
ausführen. Dies ergibt einen Fehler, sobald das Array mehr als einen Eintrag beinhaltet. Es scheint nicht an der Art der Einträge zu liegen, 2 "CLS" erzeugen genau denselben Fehler:
<Fehlermeldung>
c:\dlc91d\bin\prowin32.exe -ininame D:\dev\prg\91d.ini -pf D:\dev\prg\91d.pf -p D:\dev\prg\pp_perl.pc:\dlc91d\bin\prowin32.exe -ininame D:\dev\prg\91d.ini -pf D:\dev\prg\91d.pf -p D:\dev\prg\pp_perl.pCan't exec c:\dlc91d\bin\prowin32.exe -ininame D:\dev\prg\91d.ini -pf D:\dev\prg\91d.pf -p D:\dev\prg\pp_perl.p": Invalid argument at path.pl line 145, <STDIN> chunk 4.
Cannot run statements ...
</Fehlermeldung>
Es scheint mir, als habe ich den Abschnitt exec in perlfunc nicht richtig interpretiert bzw. verstanden. Kann mir da jemand helfen?
Vielen Dank!
AD!
Ich versuche, eine Entwicklungsumgebung aus einem Win32-Perl-Script heraus zu starten. Dazu benötige ich eine Möglichkeit, auf der Shell diverse Statements abzusetzen und dann das Script (inklusive des dazugehörigen DOS-Fensters) zu schließen.
Dazu wollte ich zuerst innerhalb eines Loops das jeweilige Statement mit
system("statement")
ausführen und das Script beenden. Ich bemerkte, system würde auf das Ende des Childprozesses warten. Also perldoc -> exec gefunden. Dann bin ich dazu übergegangen, wie in perlfunc angegeben (exec LIST) ein Array mit den Kommandozeilen zu bauen.
my @runme;
while ($instanzen) {
push @runme, "c:\\dlc91d\\bin\\prowin32.exe -ininame D:\\dev\\prg\\91d.ini -pf D:\\dev\\prg\\91d.pf -p D:\\dev\\prg\\pp_perl.p";
$instanzen--;
};
Dieses will ich dann per
exec(@runme) or die "Cannot run statements ...\n";
ausführen. Dies ergibt einen Fehler, sobald das Array mehr als einen Eintrag beinhaltet. Es scheint nicht an der Art der Einträge zu liegen, 2 "CLS" erzeugen genau denselben Fehler:
<Fehlermeldung>
c:\dlc91d\bin\prowin32.exe -ininame D:\dev\prg\91d.ini -pf D:\dev\prg\91d.pf -p D:\dev\prg\pp_perl.pc:\dlc91d\bin\prowin32.exe -ininame D:\dev\prg\91d.ini -pf D:\dev\prg\91d.pf -p D:\dev\prg\pp_perl.pCan't exec c:\dlc91d\bin\prowin32.exe -ininame D:\dev\prg\91d.ini -pf D:\dev\prg\91d.pf -p D:\dev\prg\pp_perl.p": Invalid argument at path.pl line 145, <STDIN> chunk 4.
Cannot run statements ...
</Fehlermeldung>
Es scheint mir, als habe ich den Abschnitt exec in perlfunc nicht richtig interpretiert bzw. verstanden. Kann mir da jemand helfen?
Vielen Dank!
AD!