F$PARSE will leave the <> intact. And if you're specifically subtracting "]" then you're not subtracting a ">"
So I'd like to revise my previous command to: $(NOECHO) WRITE TMP "read " , "$(PERL_ARCHLIB)"-"]"-">" , ".auto" , "$(FULLEXT)"-"["-"<" , ".packlist" But this still won't work if one value uses "<>" and the other uses "[]". I'll look into SYS$PARSE, but that would mean writing an executable, which violates "using only *very* commonly available VMS tools." -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] Sent: Wednesday, March 27, 2002 10:23 AM To: John Boucher Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED] Subject: RE: VMS (non-perl) File::Spec->catfile equivalent? John Boucher wrote: > This of course will not work if the values aren't formatted as expected, > i.e. "<>" rather than "[]", missing or extra dots, missing colons, etc. > VMS doesn't have a built-in catfile, and F$PARSE won't correct for help with > the punctuation. > A routine I have to take a file specification and recursively translate any > logical names has a whole mess of loops to do things like replace "][" with > ".". SYS$PARSE may handle the latter. I didn't know that f$parse() could not handle <> verses [], but my suspicion that it did led me to include it. Note that it may be a moot point: most of the MMS macros that are being manipulated are generated by configure.com, and though we don't explicitly try to accomodate "<" and ">" much in configure.com, it does contain several hard coded "[", and "]" delimiters. Peter Prymmer