Ivor wrote:

> I have a module which I want to run on VMS. The module itself is now fine (I
> have bitten the bullet with File::Spec::Functions, using its subs throughout.

> The problem I am having is with the module's test suite. The first test is one
> which clears out any previous test session files. Here is the code:


> # This is a special 'test' to clear out the residue from any
> # previous tests that were run, prior to rerunning the tests.

> # Note: this needs to be portable, so we can't use `rm -rf test`.
> #########################

> use Test::More  tests => 1;
> use File::Find;

> find( {
>       bydepth => 1,
>       wanted => sub { (-d $_) ? rmdir($_) : unlink($_); },
>       }, 'test');

> rmdir 'test';

> ok(!(-d 'test'),"Test directory removed");

> ---------------------------------------------

> This works fine on Unix and Windows.

> I have two problems with this on VMS. The old chestnut about protected
> directories (you have to do a set prot=o:d before you can delete). This
> I can work around with adding some extra code if $^O is VMS.

> The more serious problem is that the code does not handle file multiversions.
> How can I get File::Find to see them. Alternatively I could test $^O and
> do something completety different, such as spawning out `del [.test...]*.*;*`
> but I feel that this is a) cheating and b) not in the spirit of portability.

> Has anybody already written something that fits the bill? Is it possible to
> tell File::Find (or indeed a dirhandle) that you want to see all the back
> versions?

> Any help would be appreciated.

Have you tried

use vmsish;

?

I haven't, in this particular case, but this kind of thing is what's it for.

-- Alan

-- 
===============================================================================
 Alan Winston --- [EMAIL PROTECTED]
 Disclaimer: I speak only for myself, not SLAC or SSRL   Phone:  650/926-3056
 Paper mail to: SSRL -- SLAC BIN 99, 2575 Sand Hill Rd, Menlo Park CA   94025
===============================================================================

Reply via email to