in reply to perl 5.6.0-5.6.1 upgrade problem

I suggest you use truss on the program that is failing, and then look for a series of lines that will be something like access("/path/strict.pm")    = ENOENT.

eg,

$ truss -f -o /tmp/truss.out perl /usr/apache/htdocs/mrbs/badpw.pl

If the generated truss.out is too confusing, then mail it to me (compressed :-)) at sam at vilain dot net. If you search for "strict.pm" you'll probably find out what you're looking for.

Replies are listed 'Best First'.
Re: Re: perl 5.6.0-5.6.1 upgrade problem
by Bukowski (Deacon) on Aug 07, 2001 at 18:27 UTC
    OK truss is beyond me (for the time being!) I have sent the files to Sam. If anyone else is interested in looking at them I have put them on a site
    the tarball decompresses to a truss/ directory with two truss outputs - one with strict commented out from the script and one with the strict left in (truss.out.strict_on)
    I assumed these would be useful for comparison
    dan (god I love this site :))
      It looks like it's loading it correctly:
      18076: stat64("/usr/local/lib/perl5/5.6.1/sun4-solaris/strict.pmc", 0 +xFFBEF068) Err#2 ENOENT 18076: open64("/usr/local/lib/perl5/5.6.1/sun4-solaris/strict.pm", O_ +RDONLY) Err#2 ENOENT 18076: stat64("/usr/local/lib/perl5/5.6.1/strict.pmc", 0xFFBEF068) Er +r#2 ENOENT 18076: open64("/usr/local/lib/perl5/5.6.1/strict.pm", O_RDONLY) = 4 18076: brk(0x00104800) = 0 18076: fstat64(4, 0xFFBEC950) = 0 18076: brk(0x00108800) = 0 18076: ioctl(4, TCGETA, 0xFFBEC8DC) Err#25 ENOTTY 18076: read(4, " p a c k a g e s t r i".., 8192) = 2624 18076: brk(0x00109800) = 0 18076: brk(0x0010A800) = 0 18076: read(4, 0x0010480C, 8192) = 0 18076: llseek(4, 0, SEEK_CUR) = 2624 18076: close(4) = 0

      You can see at the top of the snippet (from truss.out.strict_on) that it is trying to "stat" and "open" strict.pm in different locations, and the last one succeeds (returning a file handle number, 4). The following lines show perl reading in the file and closing it again.

      Did you actually get an error when you ran the script with truss? You really need to stick the truss in the place where the script is giving you the error.

      Update: He found his problem. It was permissions on the directory strict.pm was in.