Operating System - OpenVMS
1752380 Members
5971 Online
108788 Solutions
New Discussion юеВ

perl library path on vms alpha

 
SOLVED
Go to solution
dodger_1
Occasional Advisor

perl library path on vms alpha

Hi Guys,

i have the following perl version on vms-alpha 8.3 -

> perl -version
"This is perl, v5.8.6 built for VMS_AXP"

when i execute a script, including a module via "use blabla.pm" (located in DNFS3167:<$RDSUNIX.SHARE_RDSTST.LIB>), i get the following error:

Can't locate c_tool_newdb.pm in @INC (@INC contains: /DNFS3167/<$RDSUNIX/SHARE_R
DSTST/LIB perl_root:[lib.VMS_AXP.5
_8_6] perl_root:[lib] perl_root:[lib.site_perl.VMS_AXP] perl_root:[lib.site_perl
] /perl_root/lib/site_perl .) at ada_perftst_newdb.plx line 3.
BEGIN failed--compilation aborted at ada_perftst_newdb.plx line 3.
%RMS-E-FNF, file not found

I defined PERLLIB and PERL5LIB (consisting only my lib-directory), via:

define PERLLIB DNFS3167:<$RDSUNIX.SHARE_RDSTST.LIB>

define PERL5LIB DNFS3167:<$RDSUNIX.SHARE_RDSTST.LIB>

">dir PERL5LIB" - shows me the correct directory content ...

Does anyone know, what my problem is?
Except PERL5LIB/PERLLIB there are only 2 more logicals:

"PERLSHR" = "RDS2T$DKA0:[SYS0.SYSCOMMON.PERL5_8_6]PERLSHR.EXE"
"PERL_ROOT" = "RDS2T$DKA0:[SYS0.SYSCOMMON.PERL5_8_6]"

Greets and many thanks!!,
Simon
7 REPLIES 7
Craig A Berry
Honored Contributor
Solution

Re: perl library path on vms alpha

Looks like the angle bracket syntax has caused trouble. When it tells you:

@INC contains: /DNFS3167/<$RDSUNIX/SHARE_RDSTST/LIB

you can see that it has translated the path to Unix syntax but failed to recognize the the '<' as a directory delimiter. This is reproducible like so in Perl 5.10.0 (the latest released version):

$ perl -e "print VMS::Filespec::unixify('foo:');"
/foo/
When I get home tonight I'll check if it still looks that way in the unreleased development code (there has been a lot of work done lately in the area of filespec handling).

In the meantime I would simply suggest using square bracket syntax or even putting PERL5LIB directly into Unix syntax:

$ define PERL5LIB "/DNFS3167/$RDSUNIX/SHARE_RDSTST/LIB"
Hoff
Honored Contributor

Re: perl library path on vms alpha

OpenVMS doesn't work particularly well with angle brackets around directories. While it arguably should handle this case correctly, various OpenVMS tools fail when presented with this directory syntax. Application support varies. Widely.

C is its own quagmire around filename syntax and filename translation and filename translation controls, and keeping whatever filename syntax used as simple as feasible is best. There's no way I'd want to get near a C application with angle brackets; that's just asking for parsing failures.

Best to avoid angle bracket syntax entirely.

dodger_1
Occasional Advisor

Re: perl library path on vms alpha

Hey,

thanks! Tomorrow i will try your suggest to avoid <> brackets ... i'll tell you more about the result, tomorrow! greets

Simon
dodger_1
Occasional Advisor

Re: perl library path on vms alpha

Hey guys,

so it is... problem fixed!

Replaced <> through []

Greets!
Simon
dodger_1
Occasional Advisor

Re: perl library path on vms alpha

perl 5.8 and vms alpha 8.3

in perllib/perl5lib library path - use [] instead of <> brackets in directory assignments!
Jan van den Ende
Honored Contributor

Re: perl library path on vms alpha

Simon,

first, let me welcome you to the VMS forum!

Secondly, for the way to say "Thanks" here, please see

http://forums1.itrc.hp.com/service/forums/helptips.do?#33

Proost.

Have one on me.

jpe
Don't rust yours pelled jacker to fine doll missed aches.
Craig A Berry
Honored Contributor

Re: perl library path on vms alpha

A fix, including a regression test, has been checked in to the Perl sources. See

http://perl5.git.perl.org/perl.git/commitdiff/5ad5b34c

This will likely next appear in Perl 5.10.1 (due any month now) or maybe 5.10.2. But avoiding angle brackets when not necessary is certainly the better part of valor.