[Chicago-talk] concurrent processes?

Brian Katzung briank at kappacs.com
Tue Mar 9 11:55:39 PST 2010


Richard,

Did I miss part of the discussion? It seems as if we're throwing out "1 
foot solutions" without seeing the "30,000 foot view".

How about if we take a few steps backwards.

In the bigger picture, what are you trying to accomplish, and why do you 
believe it requires launching an interactive windows session and a new 
terminal window rather than just prompting in the original execution 
context?

  - Brian

Richard Reina wrote:
> That stops the error message but the rest of the program does not execute.
>
>
> ---- Chicago.pm chatter <chicago-talk at pm.org> wrote:
>   
>> The man page of exec() explains this:
>>
>> Since it's a common mistake to use exec instead of system, Perl warns
>> you if there is a following statement which isn't die, warn, or exit
>> (if -w is set - but you always do that). If you really want to follow
>> an exec with some other statement, you can use one of these styles to
>> avoid the warning:
>>
>>     exec ('foo')   or print STDERR "couldn't exec foo: $!";
>>     { exec ('foo') }; print STDERR "couldn't exec foo: $!";
>>
>>
>> On Tue, Mar 9, 2010 at 12:37 PM, Richard Reina
>> <richard at rushlogistics.com> wrote:
>>     
>>> Shawn thanks for your reply. It looks promising but the program crashes with:
>>>
>>> Statement unlikely to be reached at test_exec.pl line 5.
>>>        (Maybe you meant system() when you said exec()?)
>>>
>>> Do I need some added syntax to use exec?
>>>
>>> ---- Chicago.pm chatter <chicago-talk at pm.org> wrote:
>>>       
>>>> Replace system w/ exec.  system() forks, exec does not.
>>>> shawn.c.carroll at gmail.com
>>>> Perl Programmer
>>>> Soccer Referee
>>>>
>>>>
>>>>
>>>> On Tue, Mar 9, 2010 at 12:14, Richard Reina <richard at rushlogistics.com> wrote:
>>>>         
>>>>> I have a program that opens a terminal so that the user can enter some info.  Like this:
>>>>>
>>>>>
>>>>> system(q{gnome-terminal --geometry=80x12+0-30 -x perl -e 'require "./data_entry1.pl"; my $co=get_input();'});
>>>>>
>>>>> # do something with $co
>>>>>
>>>>> The code works in that it opens a small terminal at the bottom of the screen where the user can enter info.  However, the program continues to execute without waiting for the value of $co. Is there a way to make the program wait until the terminal session has been terminated so that the value of $co can be obtained?
>>>>>
>>>>> Been banging my head on this one since 6:30am so any help would be greatly appreciated.
>>>>>
>>>>> Thanks
>>>>> Richard
>>>>>
>>>>>
>>>>>
>>>>> ---- Chicago.pm chatter <chicago-talk at pm.org> wrote:
>>>>>           
>>>>>> On Mar 8, 2010, at 7:27 AM, Richard Reina wrote:
>>>>>>
>>>>>>             
>>>>>>> system("gnome-terminal -x perl -e 'print "Hello World\n"; sleep 4;'");
>>>>>>>               
>>>>>> You have double quotes inside of that string.  You need to do either:
>>>>>>
>>>>>> system("gnome-terminal -x perl -e 'print \"Hello World\n\"; sleep 4;'");
>>>>>>
>>>>>> or
>>>>>>
>>>>>> system(q{gnome-terminal -x perl -e 'print "Hello World\n"; sleep 4;'});
>>>>>>
>>>>>> --
>>>>>> Andy Lester => andy at petdance.com => www.theworkinggeek.com => AIM:petdance
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Chicago-talk mailing list
>>>>>> Chicago-talk at pm.org
>>>>>> http://mail.pm.org/mailman/listinfo/chicago-talk
>>>>>>             

-- 
Brian Katzung, Kappa Computer Solutions, LLC
Leveraging UNIX, GNU/Linux, open source, and custom
software solutions for business and beyond
Phone: 877.367.8837 x1  http://www.kappacs.com




More information about the Chicago-talk mailing list