Thread IPC::Open3: aus einem CGI-Script heraus aufrufen (9 answers)
Opened by steffenw at 2004-05-25 00:14

steffenw
 2004-05-26 16:55
#2589 #2589
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
:) Sieht gut aus, danke @Esskar.

hier die Methode aus dem Modul:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
sub ProcessStart
{ my ($self, %arg) = @_;
 $arg{perl} or croak qq~Argument "perl" ist nicht angegeben.~;
 $arg{script} or croak qq~Argument "script" ist nicht angegeben.~;
 $arg{arg} ||= [];
 ref $arg{arg} eq 'ARRAY' or croak qq~Argument "arg" ist keine Arrayreferenz.~;
 my $cmd = "$arg{perl} -c $arg{script}";
 open(PIPE, "$cmd 2>\&1 |")   # Rückgabewert = Prozeßnummer
 or croak qq~"$cmd", Compilierung fehlgeschlagen:\n$!~;
 my @line = <PIPE>;
 close PIPE;
 @line == 1 and $line[0] =~ /OK/
 or croak "Compilierung fehlgeschlagen:\n" . join '', @line;
Win32::Process::Create
( my $process,
$arg{perl},
join(' ', 'perl', $arg{script}, @{$arg{arg}}),
0,
DETACHED_PROCESS,
'.',
) or croak Win32::FormatMessage Win32::GetLastError;
 my $pid = $process->GetProcessID();
 push @line, qq~Prozeß "$$" hat Hintergrundprozeß "$pid" gestartet und wartet auf Ergebnis oder Fehler.~;
 return wantarray ? ($process, \@line) : $process;
}
\n\n

<!--EDIT|steffenw|1085579172-->
$SIG{USER} = sub {love 'Perl' or die};

View full thread IPC::Open3: aus einem CGI-Script heraus aufrufen