Nicholas Clark wrote:
> On Tue, Aug 26, 2008 at 12:39:16PM +0100, Steve Hay wrote:
>> Nicholas Clark wrote:
>
>>> Mmm. What happens if you run its little test program from the
>>> command line:
>>>
>>> $ ./perl -Ilib
>>> use constant foo => q(a);
>>> index(q(a), foo);
>>> local *g=${::}{foo};print "ok";
>>> __END__
>>> ok
>>>
>>> And does it work better if that "ok" becomes "ok\n" ?
>>
>> It outputs "ok".
>> If I change "ok" to "ok\n" then it outputs "ok
>> ".
>
> Odd. So try something else: If you change t/op/local.t from
>
> like( runperl(stderr => 1,
> prog => 'use constant foo => q(a);' .
> 'index(q(a), foo);' .
> 'local *g=${::}{foo};print "ok";'), "ok",
> "[perl #52740]");
>
> to
>
> like( runperl(stderr => 1,
> prog => 'use constant foo => q(a);' .
> 'index(q(a), foo);' .
> 'local *g=${::}{foo};print "ok\n";'), "ok",
> "[perl #52740]");
>
>
> does that make t/op/local.t pass?
No, it didn't. But #34228 does.
It seems that runperl() is a little flaky when it comes to handling
quotes in different shells. Perhaps it is best to always use q() and
qq().
Thread Previous
|
Thread Next