in reply to Re^3: Can't locate IO/Scalar.pm in @INC (@INC contains: /opt/rocks/lib/perl5/5.8.8/
in thread Can't locate IO/Scalar.pm in @INC (@INC contains: /opt/rocks/lib/perl5/5.8.8/

I also found that directories in @INC mentioned in error message and that gotten by using "perl -V" are some different.

from error message:
Can't locate IO/Scalar.pm in @INC (@INC contains:
/home/donghe/iprscan/lib
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8
/usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_per /5.8.6
/usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.8 /
usr/lib/perl5/vendor_perl/5.8.7
/usr/lib/perl5/vendor_perl/5.8.6
/usr/lib/perl5/vendor_perl/5.8.5
/usr/lib/perl5/vendor_perl
/usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8
.)

from perl -V
@INC: /usr/lib/perl5/site_perl/5.8.8//i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.8/
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.8
/usr/lib/perl5/site_perl/5.8.7
/usr/lib/perl5/site_perl/5.8.6
/usr/lib/perl5/site_perl/5.8.5
/usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.8
/usr/lib/perl5/vendor_perl/5.8.7
/usr/lib/perl5/vendor_perl/5.8.6
/usr/lib/perl5/vendor_perl/5.8.5
/usr/lib/perl5/vendor_perl
/usr/lib/perl5/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/5.8.8

if I put Scalar.pm in '/home/donghe/iprscan/lib', this problem is solved! however '/home/donghe/iprscan/lib' is not included in the @INC showed by using 'perl -V'. do you know the reason?

  • Comment on Re^4: Can't locate IO/Scalar.pm in @INC (@INC contains: /opt/rocks/lib/perl5/5.8.8/

Replies are listed 'Best First'.
Re^5: Can't locate IO/Scalar.pm in @INC (@INC contains: /opt/rocks/lib/perl5/5.8.8/
by ikegami (Patriarch) on Apr 24, 2009 at 02:58 UTC
    perl -V lists the hardcoded initial value for @INC. The error message includes @INC as it was when the require was executed. @INC can be modified directly, or by using env var PERL5LIB, env var PERLLIB, module lib or the command line option -I (via command line, shebang or env var PERLOPTS).
Re^5: Can't locate IO/Scalar.pm in @INC (@INC contains: /opt/rocks/lib/perl5/5.8.8/
by syphilis (Archbishop) on Apr 24, 2009 at 03:02 UTC
    Did you show the entire output of 'perl -V' ?
    Usually the current working directory ('.') is in @INC, and if '/home/donghe/iprscan/lib' is your current working directory, then '/home/donghe/iprscan/lib/IO/Scalar.pm' would be found by use IO::Scalar;. (Note that the @INC, as reported by the error message *does* include '.')

    However, it can never make any sense that '/home/donghe/iprscan/lib/Scalar.pm' would be found by attempting to use IO::Scalar;

    And whatever happened to the perl that's in /opt (referenced in your original post) ?

    Cheers,
    Rob