Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
@INC未读取$PERL5LIB_Perl_Module_Tcsh - Fatal编程技术网

@INC未读取$PERL5LIB

@INC未读取$PERL5LIB,perl,module,tcsh,Perl,Module,Tcsh,我正在尝试使用$PERL5LIB将目录添加到@INC数组中。我正在使用tcsh shell,并在.cshrc脚本中添加了以下命令 set PERL5LIB = /home/user/perl5/lib/perl5 在$echo$PERL5LIB显示添加到$PERL5LIB变量的路径之前,这似乎一直有效。但运行脚本仍然会出现相同的错误: Can't locate Spreadsheet/ParseExcel.pm in @INC (@INC contains: /usr/local/lib64/

我正在尝试使用
$PERL5LIB
将目录添加到@INC数组中。我正在使用tcsh shell,并在.cshrc脚本中添加了以下命令

set PERL5LIB = /home/user/perl5/lib/perl5
$echo$PERL5LIB
显示添加到
$PERL5LIB
变量的路径之前,这似乎一直有效。但运行脚本仍然会出现相同的错误:

Can't locate Spreadsheet/ParseExcel.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at regs_gen.pl line 55. BEGIN failed--compilation aborted at regs_gen.pl line 55.
显然,
$PERL5LIB
没有附加到@INC数组中。我已经能够在Perl中使用-I命令行参数运行我的脚本,如下所示,但我正在寻找一个更方便的解决方案

perl -I /home/user/perl5/lib/perl5 scriptname.pl
感谢您的帮助

perl-V

大写“-V”看起来像你的朋友在这里记录的

它的尾随行包括%ENV和@INC的有用部分

...
Built under linux
Compiled at Mar  1 2016 17:15:04
%ENV:
  PERL5LIB="/home/ron/lib"
  PERLBREW_BASHRC_VERSION="0.78"
  PERLBREW_HOME="/home/ron/.perlbrew"
  ... (more environment variables)
@INC:
  /home/ron/lib
  /etc/perl
  /usr/local/lib/perl/5.18.2
  /usr/local/share/perl/5.18.2
  ... (more @INC paths)
  /usr/local/lib/site_perl
  .
perl-V

大写“-V”看起来像你的朋友在这里记录的

它的尾随行包括%ENV和@INC的有用部分

...
Built under linux
Compiled at Mar  1 2016 17:15:04
%ENV:
  PERL5LIB="/home/ron/lib"
  PERLBREW_BASHRC_VERSION="0.78"
  PERLBREW_HOME="/home/ron/.perlbrew"
  ... (more environment variables)
@INC:
  /home/ron/lib
  /etc/perl
  /usr/local/lib/perl/5.18.2
  /usr/local/share/perl/5.18.2
  ... (more @INC paths)
  /usr/local/lib/site_perl
  .

谢谢成功了!但我有一个问题。setenv允许子shell访问定义的变量。那么这是否意味着将$PERL5LIB变量附加到@INC是作为perl命令完成的,这就是为什么setenv可以工作而set不能工作的原因?变量PERL5LIB需要传递给Perl子shell。谢谢!成功了!但我有一个问题。setenv允许子shell访问定义的变量。那么这是否意味着将$PERL5LIB变量附加到@INC是作为perl命令完成的,这就是为什么setenv可以工作而set不能工作的原因?变量PERL5LIB需要传递给Perl子shell。