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.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.