On Sat, Jul 17, 2010 at 11:00:16AM -0700, Nicholas Clark wrote: > I don't understand why running the script directly generates the > unbalanced string table warnings, whilst using require does not: > > $ cat 49472.pl > use strict; > sub MODIFY_CODE_ATTRIBUTE{} > sub f:Blah {$nosuchvar} > $ PERL_DESTRUCT_LEVEL=2 LC_ALL=en_GB.UTF-8 PERL_UNICODE="" ./perl -Ilib 49472.pl > Global symbol "$nosuchvar" requires explicit package name at 49472.pl line 3. > BEGIN not safe after errors--compilation aborted at 49472.pl line 3. > Unbalanced string table refcount: (1) for "open>" at (null) line 3 during global destruction. > Unbalanced string table refcount: (1) for "open<" at (null) line 3 during global destruction. > $ PERL_DESTRUCT_LEVEL=2 LC_ALL=en_GB.UTF-8 PERL_UNICODE="" ./perl -Ilib -e 'require qq{49472.pl}' > Global symbol "$nosuchvar" requires explicit package name at 49472.pl line 3. > BEGIN not safe after errors--compilation aborted at 49472.pl line 3. > Compilation failed in require at -e line 1. Note that the 'unbalanced' warnings only occur on unthreaded builds, and it's still present in blead/5.13.9. -- I before E. Except when it isn't.Thread Previous