CC: | nodine [...] cpan.org |
Subject: | Side-effects when requiring Safe::World |
When trying to build Text-Restructured-0.003037 with perl 5.8.8 I see
the following strange behaviour:
$ /usr/perl5.8.8@RELEASE/bin/perl Makefile.PL -k
Here is the summary of the configuration:
URL for default cascading style sheet (or "none"): None
Run perl tainted (not required for safe operation): No
URL where documentation will be installed (or "none"): None
Warning: prerequisite Slay::Makefile::Gress 0 not found.
Writing Makefile for Text::Restructured
But Slay::Makefile::Gress is installed for this perl:
$ /usr/perl5.8.8@RELEASE/bin/perl -e 'require Slay::Makefile::Gress'
(no error)
The problem seems that while checking the prerequisites for
Text-Restructured, Safe::World is required before Slay::Makefile::Gress
, and this is causing problems. This can be checked using
$ /usr/perl5.8.8@RELEASE/bin/perl -e 'require Safe::World; require
Slay::Makefile::Gress'
Bareword "STDERR" not allowed while "strict subs" in use at
/usr/perl5.8.8@RELEASE/lib/site_perl/5.8.8/IPC/Run.pm line 1112.
BEGIN not safe after errors--compilation aborted at
/usr/perl5.8.8@RELEASE/lib/site_perl/5.8.8/IPC/Run.pm line 1225.
Compilation failed in require at
/usr/perl5.8.8@RELEASE/lib/site_perl/5.8.8/Slay/MakerRule.pm line 58.
BEGIN failed--compilation aborted at
/usr/perl5.8.8@RELEASE/lib/site_perl/5.8.8/Slay/MakerRule.pm line 58.
Compilation failed in require at
/usr/perl5.8.8@RELEASE/lib/site_perl/5.8.8/Slay/Maker.pm line 315.
BEGIN failed--compilation aborted at
/usr/perl5.8.8@RELEASE/lib/site_perl/5.8.8/Slay/Maker.pm line 315.
Compilation failed in require at
/usr/perl5.8.8@RELEASE/lib/site_perl/5.8.8/Slay/Makefile.pm line 120.
BEGIN failed--compilation aborted at
/usr/perl5.8.8@RELEASE/lib/site_perl/5.8.8/Slay/Makefile.pm line 120.
Compilation failed in require at
/usr/perl5.8.8@RELEASE/lib/site_perl/5.8.8/Slay/Makefile/Gress.pm line 18.
BEGIN failed--compilation aborted at
/usr/perl5.8.8@RELEASE/lib/site_perl/5.8.8/Slay/Makefile/Gress.pm line 18.
Compilation failed in require at -e line 1.
The problematic line in IPC::Run is using "select STDERR". I see that
Safe::World is redefining the CORE select, so this is possibly causing
the error.
Regards,
Slaven