How about using LIB$GET_FOREIGN ?
This returns the command line parameters without expanding file names. The
command line is converted to upper-case, unless protected by double-quotes.
[It is the CRTL which later converts it to lower-case.] The command name
itself is not included, so for example:
$ type test.pl:
use GetForeign;
print CommandLine;
$ perl test.pl *.pl
TEST.PL *.PL
In case it is of use, I can send you some code. It's very crude, but it
works for me. [It uses XS, so you need a C compiler.]
HTH
--
Sebastian Bazley <[EMAIL PROTECTED]>
The opinions expressed herein are my own, and are not necessarily endorsed
by my employer ...
> -----Original Message-----
> From: Williams, Ivor [mailto:[EMAIL PROTECTED]]
> Sent: 30 March 2000 17:05
> To: 'vmsperl'
> Subject: Extremely non-portable hack required
>
>
> Hi,
>
> Any of you know of a way of getting to the raw DCL command
> line in perl,
> before it has been globbed, argv chunked and otherwise mangled?
>
> I am looking at something which will fake a particular DCL
> command without
> the users or scripts knowing the difference. However, the
> environmental
> stuff seems to get in the way. For example, to disable
> wildcard expansion or
> globbing as Unixers call it requires an additional pair of
> quotes (which
> need to be doubled up to pass in the quotes, and an extra
> layer of quotes
> put roung the outside, looks pretty horrible really but it works!).
>
> $ perl munge.pl dir/size=all """*.c"""
>
> What would be really handy is something like this:
>
> use VMS::RawDCL;
>
> $command = VMS::RawDCL::command_line;
> $command =~ s/^\w+//; #Remove the MUNGE command itself
>
> print "You typed $command\n";
> open DCL,"$command|" or die "Failed to spawn $!\nStopped";
> print "Here are the results\n";
>
> while (<DCL>)
> {
> print;
> }
>
___________________________________________________________________________
This email is confidential and intended solely for the use of the
individual to whom it is addressed. Any views or opinions presented are
solely those of the author and do not necessarily represent those of
Sema Group.
If you are not the intended recipient, be advised that you have received this
email in error and that any use, dissemination, forwarding, printing, or
copying of this email is strictly prohibited.
If you have received this email in error please notify the Sema Group
Helpdesk by telephone on +44 (0) 121 627 5600.
___________________________________________________________________________