Upgraded XPP from 9.2.2 to 9.4.0 and now a perl program can not find strict.pm

We upgraded our XPP from 9.2.2 to 9.4.0 and a perl program that has been working for at least the last 7 years is complaining about finding strict.pm.

The program works if I compile it and run it with the XPP perl.

But when background process runs it - there is an error

Can't locate strict.pm:   /root/perl5/lib/perl5/warnings.pm: Permission denied at /opt/xyvision/xz/procs/site/APT.pl line 105.

Can't locate warnings.pm:   /root/perl5/lib/perl5/warnings.pm: Permission denied at /opt/xyvision/xz/procs/site/APT.pl line 106.

Is there something wrong with our global variables?

Is there something wrong with our @INC for XPP.

I do see the PM files in XPP perl....

find /opt/xyvision/xz/etcxyvision -name "strict.pm"
/opt/xyvision/xz/etcxyvision/common/perl/lib/5.28.1/strict.pm

find /opt/xyvision/xz/etcxyvision -name "warnings.pm"
/opt/xyvision/xz/etcxyvision/common/perl/lib/5.28.1/encoding/warnings.pm
/opt/xyvision/xz/etcxyvision/common/perl/lib/5.28.1/warnings.pm

Parents
  • At first glance I'd have to guess that the "environment" of background processing is running the wrong version of Perl, and that it's using some "system" version of Perl located at /root/perl5 rather than the XPP Perl at /etc/xyvision/common/perl (which is probably linked on your system to /opt/xyvision/xz/etcxyvision/common/perl).

    Is background processing running on the same "machine" as when you are running this script with XPP Perl?

    Is there any PER5LIB environment variable that might have a different value in the background versus foreground environment?

    What is the exact command that you are running when you run it with XPP Perl versus the exact command that is being run by background processing?

    Jonathan Dagresta
    RWS Group/
    XPP Development

Reply
  • At first glance I'd have to guess that the "environment" of background processing is running the wrong version of Perl, and that it's using some "system" version of Perl located at /root/perl5 rather than the XPP Perl at /etc/xyvision/common/perl (which is probably linked on your system to /opt/xyvision/xz/etcxyvision/common/perl).

    Is background processing running on the same "machine" as when you are running this script with XPP Perl?

    Is there any PER5LIB environment variable that might have a different value in the background versus foreground environment?

    What is the exact command that you are running when you run it with XPP Perl versus the exact command that is being run by background processing?

    Jonathan Dagresta
    RWS Group/
    XPP Development

Children