ok then I think system is more ideal for most situations.

thanks, 

Derek B. Smith
OhioHealth IT
UNIX / TSM / EDM Teams






"Wiggins d Anconia" <[EMAIL PROTECTED]>
06/25/2004 12:40 PM

 
        To:     u235sentinel <[EMAIL PROTECTED]>, [EMAIL PROTECTED]
        cc: 
        Subject:        Re: 'system' and parallel execution (was: Re: How to call a 
perl 
script....)


> 
> Exec will shell out and run whatever exec called.  At least I believe 
> the correct term is "shell out".  Learning Perl says in page 196 that 
> exec  locates the program you called and jumps to it.  There is no perl 
> process anymore.  So I guess it's more of an exit Perl and run this 
> command sort of thing.. 

Correct. 

perldoc -f exec

For more.

So once you do that, Perl is gone.  System 
> however returns you back to Perl.  If you want Perl not to wait you can 
> open a process as a file handle.  I haven't tried it however it suggests 

> this will run Perl and your process in parallel.


Yes, alternatively you can use fork+exec to have a forked process that
is non-blocking, the reason to use pipes is so that the two can
communicate more easily, this isn't always desired. 

> 
> Something to try
>

perldoc perlipc
perldoc perlfork
perldoc IPC::Open3

Explains most of this, much better than I can.

http://danconia.org
 
> 
> 
> [EMAIL PROTECTED] wrote:
> 
> >from what I remember reading and was told as a best practice using exec 

> >/.../..../ was recommended over system.  For this reason exec does not 
> >create a child and therefore does not have to wait.  the perl process 
> >itself runs the command or program.  what are the pros and cons of 
each?
> >
> >thanks
> >
> >
> >Derek B. Smith
> >OhioHealth IT
> >UNIX / TSM / EDM Teams
> >
> >
> >
> >
> >
> >
> >u235sentinel <[EMAIL PROTECTED]>
> >06/25/2004 11:58 AM
> >
> > 
> >        To: 
> >        cc:     [EMAIL PROTECTED]
> >        Subject:        Re: 'system' and parallel execution (was: Re:
How to call a perl 
> >script....)
> >
> >
> >
> >
> >Wiggins d Anconia wrote:
> >
> > 
> >
> >>Not exactly, it has been forked and does technically run in parallel,
> >>however 'system' blocks your current process waiting for the child to
> >>finish, so your process is in fact running, but it won't be doing any
> >>work except for waiting for a signal from the child.
> >>
> >>There are other ways to have parallel execution,
> >>
> >>perldoc perlipc
> >>perldoc -f fork
> >>perldoc -f system
> >>
> >> 
> >>
> >Ok.  I'll read those in a minute.  After reviewing Learning Perl, I 
> >realize I need to open the process as a file handle for parallel 
> >operations.  Called a "piped open". (page 201 Oreilly Learning Perl).
> >
> > 
> >
> >>Will get you started. "Network Programming with Perl" by Lincoln Stein
> >>also has excellent chapters on this subject, though lacks a chapter
> >>(probably because of its age) on POE.
> >>
> >>
> >> 
> >>
> >Haven't purchased that book yet (it's on my amazon wish list however). 
> >I'll check it out.
> >
> >Thanks!
> >
> >
> >
> > 
> >
> 
> 



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>




Reply via email to