perl-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stas Bekman <s...@stason.org>
Subject Re: [mp2] apache/subprocess on Win32
Date Wed, 04 Jun 2003 07:15:04 GMT
Randy Kobes wrote:
> Hi,
>    On Win32, the apache/subprocess tests fail on Win32.
> This is due to the following: currently, the tests do
> something like
> 
>    @argv = qw(potentially something);
>    $command = catfile $target_dir, "some_script.pl";
>    Apache::SubProcess::spawn_proc_prog($r, $command, \@argv);
> 
> The problem on Win32 is that $command isn't associated with Perl.
> To fix this, one could do one of two things.
> 
> - create a "some_script.bat" with pl2bat, use
>    $command = catfile $target_dir, "some_script.bat";
> and insert a
>    $r->subprocess_env->set(PATH => $Config{bin});
> before invoking the script.
> 
> - use
>     $command = $Config{perlpath}; # or perhaps better $^X
>     @list = ("some_script.pl", @argv);
>     Apache::SubProcess::spawn_proc_prog($r, $command, \@list);
> (the potentially nicer looking
>     $command = "$Config{perlpath} some_script.pl";
>     Apache::SubProcess::spawn_proc_prog($r, $command, \@argv);
> doesn't work - I think it interprets $command as one single
> command - Win32 is famous for problems with quoting command-line
> things).
> 
> Either of the above works - does anyone have a strong
> preference one way or another?

I prefer 2nd, since it doesn't force us to modify the filename. However I'd 
check whether $Config{perlpath} works everywhere. Perhaps check perl test 
suite to see what it uses? I remember there was a discussion of may be using 
$^X. or both.

otherwise +1

> Incidentally, for both, subtests 3 and 4 need
> some massaging for line endings - either have
>    my $value = "some text\r\n";
> or use
>    $output =~ s!\r!!;
> Although, with perlio the :crlf filter would be
> available, which would be neater ...

what about mac? there is no \r there. I guess we need to do what CGI.pm does 
or is there a standard module that defines $CRLF?

In any case we could probably always write "\r\n" (e.g. "some text\r\n") and 
then after reading the output do:

s/[\r\n]{1,2}/\r\n/;

and only then compare. Will that work?


__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Mime
View raw message