jameshow has asked for the wisdom of the Perl Monks concerning the following question:
I am struggling with a large legacy module that compiles for one user and not for another user on the same system. I've run Deparser against the same file using the two different users and it produces unexpectedly different output.
root # perl -MO=Deparse webDB.pm package webDB; sub BEGIN { use strict 'refs'; require vars; do { 'vars'->import('$VERSION', '@ISA', '@EXPORT', '@EXPORT_OK') }; } use strict 'refs'; require Exporter; @ISA = 'Exporter'; @EXPORT = (); @EXPORT_OK = (); $VERSION = '1.00'; use DBI;
root has no trouble with this module, reporting syntax ok. But another user...
cabocron # perl -MO=Deparse webDB.pm Undefined subroutine &webDB::getRecord called at webSubs.pm line 1233. Compilation failed in require at webDB.pm line 26. BEGIN failed--compilation aborted at webDB.pm line 26. package webDB; sub BEGIN { use strict 'refs'; require vars; do { 'vars'->import('$VERSION', '@ISA', '@EXPORT', '@EXPORT_OK') }; } use DBI; ...
What would cause Deparser to produce different output for the same file, but different users? And what happened to Exporter for the second user?
I've looked at the environment and they seem identical. I also checked that both users are using the same perl executable. I have also been unsuccessful in creating a generic case, and this problem only occurs on our live server, not our development environment (naturally).
Any wisdom of the monks would be appreciated.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Deparse produces different output for a different user
by runrig (Abbot) on Oct 06, 2010 at 22:18 UTC | |
by jameshow (Initiate) on Oct 07, 2010 at 14:39 UTC |