On 22 Aug 2004 at 2:28, Pavel wrote:

> Hello Alan,
> 
> Sunday, August 22, 2004, 1:24:52 AM, you wrote:
> 
> AS> On 22 Aug 2004 at 0:20, Pavel wrote:
> 
> >> Hello
> >> 
> >> I am trying to start perl script from PAR
> >> script1.pl that runs without parameters and was converted to exe
> >> 
> >> script2.pl runs with parameters and should have the same environment
> >> as script1.pl
> >> 
> >> I cannot chande or modify script2.pl so I need use it "as is"
> >> 
> >> "system", "exec", and using of `` dont help me because they start new
> >> process in another enviroment etc.
> 
> AS> Not sure this is true. Doing:
> 
> AS>     system 'script2.pl', @ARGV;
> 
> AS> works for me.
> 
> ok, it works in common environment ,but not with par. Try:
> pp -l script.pl -o test.exe -e "system 'script.pl';"
> 
> if you try to run test.exe on computer without perl installed it
> will not run, but dialog "open with..." appears instead.

True. I didn't know all of your pre-conditions.


> my approach was use "eval". this works with par:
> 
> ...
> eval{
> # foreign code here
> print "blabla";
> }
> 
> but if I have
> $code = 'print "blabla"';
> I cannot evaluate this with "eval".
> 

Why can't you "eval $code" ?

> I have got answer from Alexandr, he suggested 'require':
> 
> @ARGV = ("-parameter1=foo","-parameter2=bar");
> require "script2.pl";
> 
> so it working up to this code in script2.pl:
> 
> $retour=`$command  2>&1`;

This may depend on what the $command is.

> 
> that spawn command interpreter. So it dont working again :-((
> 
> anyway thanks!
> 

This works:

inside.pl:

    #!perl -w
    use strict;

    my $results = `cmd /C dir @ARGV`;
    print $results;

outside.pl:

    #!perl -w
    use strict;

    local $/;
    open FH, "<$ENV{PAR_TEMP}/inside.pl";
    my $code = <FH>;
    close FH;

    @ARGV = ( "/W", "c:\\windows", "c:\\windows\\system" );
    eval $code;

pp command:

    pp -o test.exe -l inside.pl outside.pl

and the output of test.exe is a dir list of c:\windows and c:\windows\system, so the 
command interpreter is not the problem itself.

Is this anything like what you are trying to do? Are you trying to use "pp -g" on 
script1.pl?

Alan Stewart

Reply via email to