in reply to Re^8: Flummoxed by strict.pm
in thread Flummoxed by strict.pm

When you launch Perl via the .pl association, @INC contains only ".". When you launch Perl via the PATH, it contains the three items it should. You appear to have two Perls installed.

What do you get from

>assoc .pl .pl=Perl >ftype Perl Perl="C:\Perl64\bin\perl.exe" "%1" %*

(Replace "Perl" in the second command with what's right of the "=" in the output of the first.)

If you don't get the same output, you can fix it using

ftype Perl="C:\Perl64\bin\perl.exe" "%1" %*

(Again, replace "Perl" with the appropriate value.)

Update: Cleanup. Added fix.

Replies are listed 'Best First'.
Re^10: Flummoxed by strict.pm
by CaptainRob (Novice) on May 08, 2010 at 16:13 UTC

    Thanks ikegami for providing some insight

    This is what I got:

    C:\>assoc .pl File association not found for extension .pl C:\>.pl=Perl '.pl' is not recognized as an internal or external command, operable program or batch file. C:\>assoc .pl=Perl Access is denied. Error occurred while processing: .pl. C:\>ftype Perl File type 'Perl' not found or no open command associated with it. C:\>ftype Perl="C:\Perl64\bin\perl.exe" "%1" %* File type 'Perl' not found or no open command associated with it. C:\>cd.. C:\>cd perl64 C:\Perl64>cd bin C:\Perl64\bin>assoc .pl File association not found for extension .pl C:\Perl64\bin>

    I am probably misinterpreting what you're asking me to do. But thanks for your interest and patience

      What? As far as I know, the following would indicate that your Windows doesn't know how to execute .pl files:
      C:\>assoc .pl File association not found for extension .pl

      But you showed it executing a .pl right here:

      C:\Perl64\bin>entities_99.pl Can't locate strict.pm in @INC (@INC contains: .) at C:\Perl64\bin\ent +ities_99.pl line 2. BEGIN failed--compilation aborted at C:\Perl64\bin\entities_99.pl line + 2.
      Is that actually what you typed? I noticed you just typed "en" later on. What's "en"?

        Thanks again for pursuing this thread, ikegami

        So that I would be sure that I had perl working, I did a hello world as follows:

        #!/usr/bin/perl -w print "Hello, world!\n";

        For which I got this:

        C:\Perl64\bin>Hello_world_test.pl Hello, world!

        Naturally, I added a 'use strict;' line as follows to the script:

        #!/usr/bin/perl -w use strict; print "Hello, world!\n";

        For which I got:

        C:\Perl64\bin>Hello_world_test.pl Can't locate strict.pm in @INC (@INC contains: .) at C:\Perl64\bin\Hel +lo_world_t est.pl line 2. BEGIN failed--compilation aborted at C:\Perl64\bin\Hello_world_test.pl + line 2.

        I can find strict.pm in lib, but apparently Perl can't

        Does this suggest an approach? If you are bored with this thread, I shall certainly understand.