On Tue, Aug 26, 2008 at 02:30:47PM +0100, Steve Hay wrote: > Nicholas Clark wrote:
> > 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(). Yes. I wondered that. But I looked at the code and thought that it was always using a temporary file. Hence I didn't try committing that change blind yesterday. I wonder what I missed. (And if it was using -e, I was going to make test.pl default to warning if it found ' or " with an option to turn that warning off) Nicholas Clark