One of several problems which resulted in our failure to migrate from perl 5.005_03 is
in the evaluation of certain ENV variables. This was first discovered as an incorrect
return value from the CGI::self_url function which was traced to $ENV{PATH_INFO}
returning the $ENV{PATH} value when PATH_INFO is not defined.
In fact $ENV{PATHanything} is returning $ENV{PATH} when PATHanything is not defined.
This behavior can be observed with HOME and TERM, as well as PATH.
$ show log PATH*
(LNM$PROCESS_TABLE)
"PATH" = "MyPath"
"PATHETIC" = "EnvVariable"
(LNM$JOB_81375E80)
(LNM$GROUP_000320)
(LNM$SYSTEM_TABLE)
(LNM$SYSCLUSTER_TABLE)
(DECW$LOGICAL_NAMES)
$ perl -e "foreach $s (sort keys %ENV) {print ""\$ENV{$s} = $ENV{$s}\n"" if ($s =~
/^PATH/i)}"
$ENV{PATH} = MyPath
$ENV{PATHETIC} = EnvVariable
$ perl -e "$s='PATH_INFO'; print ""\$ENV{$s} = $ENV{$s}\n"""
$ENV{PATH_INFO} = MyPath
$ perl -e "$s='PATHETIC'; print ""\$ENV{$s} = $ENV{$s}\n"""
$ENV{PATHETIC} = EnvVariable
$ perl -e "$s='PATHETICALLY_RETURNS_WRONG_VALUE'; print ""\$ENV{$s} = $ENV{$s}\n"""
$ENV{PATHETICALLY_RETURNS_WRONG_VALUE} = MyPath
$ perl -v
This is perl, v5.6.1 built for VMS_AXP
...
$ WRITE SYS$OUTPUT "VMS Version " + f$getsyi ("version")
VMS Version V7.3-1
This was using the 5.6.1 prebuilt binary with addition of patch level 2.
My search turned up no mention of any issue of this nature. I suspect the root of this
problem to reside in vms.c which I see is labeled 5.7.0 through all the perl-5.6.1 and
later source distributions, yet I do detect differences in the code. Does this problem
still exist in later versions?
Greg Snow