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
===============================================================================