perlprint has asked for the wisdom of the Perl Monks concerning the following question:

i have a subroutine of creating named pipe i run that in background and i intiate a process that connects to the pipe created in background by thread..but i have a problem in retriving the information written by process outside the thread ..

sub pipe { my $pipename = "pipe1"; #subroutine to + create pipe,aiting to connect and reading from it print $pipename."\n"; my $pipe = new Win32::Pipe($pipename); if (! $pipe) { die "Cannot create named pipe\n"; } print "pipe created\n"; $pipe->ResizeBuffer (10); print "waiting for the client to connect\n"; $pipe->Connect(); my $b = 0; while (($b = $pipe->Read())) { chomp $b; $data= $b; } $pipe->Disconnect(); print "pipe disconnected\n"; $pipe->Close(); print "pipe closed\n"; return $data; } my $thread = new Thread \&pipe; my $status_deployment = system ("cmd.exe /c $command_deplo +y"); print"$data"; #executing deployement return $status_deployment,$data;

the system command connects to the instance of pipe....i cannot get any info for the print statment in last lines

  • Comment on how to retrive back the return from a subroutine being run from a thread
  • Download Code

Replies are listed 'Best First'.
Re: how to retrive back the return from a subroutine being run from a thread
by Anonymous Monk on Sep 30, 2009 at 13:06 UTC
    Did you try writing to the pipe instead of print to stdout?