[EMAIL PROTECTED] wrote:
Is there any way to turn off the period to underscore translation in the VMSIFY
routine?

I am using the HP kit of Perl 5.8.6 and as the following example shows, a
period in a directory name is being converted to an underscore.

Which kit?  The special one for the SYMLINK SDK or the normal one?

use VMS::Filespec;

$udir1 = '../dir1/dir.period/file';
$udir2 = '../dir1/dir^.period/file';

$vdir1 = vmsify($udir1);
$vdir2 = vmsify($udir2);

printf "$vdir1\n$vdir2";

$ perl test.pl
[-.dir1.dir_period]file
[-.dir1.dir^_period]file

Even when the exta period is escaped it gets translated to an underscore.  This
happens if I invoke VMSIFY directly and also happens behind the scenes (the
Unix filespec is being passed to the copy function in the program where I
discovered this issue).

Is there any way to turn this off or am I going to have to modify code?

Some of the support is in the current blead perl. It is not complete, but is getting better all the time. Activation of the support requires setting the DECC$ feature logicals.

The patches needed for the core modules to honor the DECC$ for Perl 5.8.7 have previously been posted to this mailing list, but were not in a format suitable for inclusion into the main perl code. With out that support, what is present in blead is not real useful.

$ perl test.pl
[-.dir1.dir_period]file
[-.dir1.dir^_period]file
$ define decc$efs_charset enable
$ perl test.pl
[-.dir1.dir^.period]file
[-.dir1.dir^^.period]file

$ perl --version

This is perl, v5.8.7 built for VMS_AXP

Also, it would appear that the Perl version of vmsify is not the same as the C
version (e.g. there is no underscore translation in the Perl version).  Is this
a known issue?

Yes. That version of vmsify is for non-VMS systems only. Neither can properly handle EFS character sets, and both are also getting some of the ODS-2 translations wrong.

-John
[EMAIL PROTECTED]
Personal Opinion Only

Reply via email to