This is a famous issue on VMS.
User mode is entered when you run an image, and user-mode logical names are
deassigned during image rundown.
You get to run exactly ONE image after you've defined a user-mode logical.
Typing "define" does not run a user-mode image. There's a handful of DCL
commands implemetend entirely within DCL (which runs in supervisor mode),
which do not require images to be run, and thus "preserve" (apparently) the
user mode logical name. It's not all smoke and mirrors, it just seems to be.
HTH.
[EMAIL PROTECTED]
-----Original Message-----
From: Carl [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, May 23, 2000 4:08 PM
To: jesper.naur
Cc: VMSPERL mailing list
Subject: Re: Perl 5.6.0 [.lib]vmsish test FAILED on test 7,
[.pragma]warnings test FAILED on test 216.
$lurk = 0;
"jesper.naur" wrote:
[snip]
> This file is executed using backticks. Although the spawned process
> has PERLSHR defined from the beginning, the innocent-looking
> 'set message' and 'define/nolog' each involve the execution of an
> image, which cost us the PERLSHR logical name.
Just to clarify, 'define/nolog' does not clobber logicals, otherwise you
couldn't define more than a single user mode logical name at a time:
$ define /user foo bar
$ define /nolog /user fal baz
$ show logical f* /proc
(LNM$PROCESS_TABLE)
"FAL" = "BAZ"
"FOO" = "BAR"
$ show logical f* /proc ! since 'show' runs an image, user modes are
gone
(LNM$PROCESS_TABLE)
%SHOW-S-NOTRAN, no translation for logical name F*
'set message' is the culprit.
Regards,
Carl B.
--
Carl Braesicke - "I keep forgetting to take my Ginko."
OpenVMS Systems Administrator
Texas A&M University-Corpus Christi
mailto:[EMAIL PROTECTED] 361.825.2796
$lurk = 1;