One of the reasons that the lib/cpanplus/t/00_cpanplus-internals-utils.t is failing is that it is attempting to rename a directory.

That is failing on VMS for two reasons.

1. The C<rename()> in the VMS CRTL on 8.3 by default is not renaming directories (Behavior varies with VMS version).

2. The old directory is created with out delete access.

This exposes an inconsistency in Perl on VMS, where C<unlink()> will follow UNIX conventions and delete a file as long as it has write access to the parent directory, and C<rename()> which currently follows VMS rules.

It really should be a case where C<rename()> and C<unlink()> are both either following the VMS protection rules or both following UNIX rules.

Changing unlink() to follow VMS protection rules might result in breaking existing applications. So could a change in rename() to follow UNIX rules.

C<rename> also needs some work so that the when Perl on VMS is running in a POSIX/UNIX mode, it makes sure that only one version of the file is left after the rename completes.

So should C<rename()> always follow UNIX protection conventions, or should that be another feature?

Should the same thing be done for C<unlink()>

-John
[EMAIL PROTECTED]
Personal Opinion Only

Reply via email to