At 9:20 AM +0100 1/12/06, Frans Slothouber wrote: >I ran into the following bug today: > >If the following program > > DKWS38>type sys$login:tt.pl > > my $t = `show default`; > print "hello $t\n"; > >is run, while my current directory is set to >a directory I do not have access to, as in: > > DKWS38>set def foo$exe: > DKWS38>dir > %DIRECT-E-OPENIN, error opening foo$:[EXE]*.*;* as input > -RMS-E-PRV, insufficient privilege or file protection violation > >perl crashes with the following message: > > DKWS38>perl sys$login:tt.pl > > Fatal VMS error (status=98970) at >DISK$PROSY_USER:[PROSY.FRANS.PERL-INTRAFFIC-5_8_7]VMS.C;1, > line 6896 at sys$login:tt.pl line 1. > %RMS-E-PRV, insufficient privilege or file protection violation
I can't reproduce this with the latest development snapshot: $ DIR %DIRECT-E-OPENIN, error opening DISK$ALPHASYS:[000000]*.*;* as input -RMS-E-PRV, insufficient privilege or file protection violation $ RECA PERL -E $ perl -e "my $x=`show default`; print qq/hello $x\n/;" hello disk$alphasys:[000000] If you have the privs to do it, try $ set process/priv=CMKRNL $ set watch file/class=major then run the perl example again. Turn it off with $ set watch file/class=none That should tell you what it's trying to access that it can't. When you spawn a process with backticks, there is a a command file called vmspipe.com that it tries to locate, and if it can't find it, it will create a temporary version in sys$scratch, sys$login, and sys$disk:[] (trying each in order). It's possible it's trying to create one of these temporary files, though that shouldn't happen if vmspipe.com is available at a reasonable location in your installation tree. -- ________________________________________ Craig A. Berry mailto:[EMAIL PROTECTED] "... getting out of a sonnet is much more difficult than getting in." Brad Leithauser