At 11:56 PM -0400 6/3/06, John E. Malmberg wrote:
>John E. Malmberg wrote:
>>I have discovered that Perl on OpenVMS has components that expect UNIX style 
>>shell macros in file specifications to be translated intact through vmsify() 
>>and unixify().

What components of Perl, specifically?

>>
>>On the OpenVMS ODS-5 filesystem, "./$(xxxx)" is a legal filename and is 
>>expressed in native terms as "[]$^(xxxx^).".
>>
>>Perl expects that it will get translated to "[]$(xxxx)" though so that it can 
>>be passed through to make type programs.
>
>Correction:
>I first assumed that the "xxxx" was restricted to the ASCII
>Alpha-Numeric character set and beginning with an Alpha character
>because that was the only examples I had seen of it until today.

The only unexpanded macro that can be safely "passed through to make
type programs" on VMS is one that you know will expand to a complete
(not partial) and syntactically valid VMS filespec, or one where you
have taken care to ensure that the components will assemble
themselves in a valid way after expansion.  If you want to perform
conversions or concatenations or other operations on a string that is
a filespec with a macro embedded in it or a macro that has only part
of a filespec in it, your best bet is to expand the macros first.
That's why eliminate_macros() started out in MM_VMS rather than
File::Spec (probably before File::Spec even existed).

I infer you have encountered a situation where the parentheses in a
macro reference have acquired caret escapes (possibly from a trip
through SYS$PARSE ?).  In theory, the solution is simple: don't do
it, i.e., don't treat a macro as if it were a filespec because it
isn't.  In practice, that advice may be hard to follow, depending on
the context, but without know the context, it's hard to say more.

I'm not sure what any of this has to do with what characters can be
part of a macro name, but you will find what the Open Group says
about that for UNIX make utilities here:

http://www.opengroup.org/onlinepubs/009695399/utilities/make.html#tag_04_84_13_04

I assume you have access to the MMS documentation if that's the make
type utility you are concerned with.


-- 
________________________________________
Craig A. Berry
mailto:[EMAIL PROTECTED]

"... getting out of a sonnet is much more
 difficult than getting in."
                 Brad Leithauser

Reply via email to