Perl:无法通过包找到对象方法栏

前端之家收集整理的这篇文章主要介绍了Perl:无法通过包找到对象方法栏前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是这个网站的新手,所以请耐心等待,如果这个问题已经在其他地方得到了回答.我试图从模块“codons1.pm”调用子程序“bar”,我遇到错误
无法通过包“codons1.pm”找到对象方法“bar”(也许你忘了加载“codons1.pm”?).主脚本如下:

use strict;
use warnings;
my $i = 1;
my $pack = "codons$i\.pm";
require $pack;
(my %temp) = $pack->bar();
print keys %INC ;

感谢(Perl objects error: Can’t locate object method via package),我能够使用%INC验证模块是否已加载.
该模块看起来像:

package codons1;
sub bar{ #some code; 
return (%some_hash);}
1;

我使用$i,以便我可以通过循环加载多个类似的模块.欢迎任何建议,并提前感谢.

解决方法

你的包是codons1,你正试图打电话给codons1.pm->吧.以下任一项都可以正常工作:

my $pack = "codons$i";
require "$pack.pm";
$pack->bar();

要么

my $pack = "codons$i";
eval "require $pack";
$pack->bar();

猜你在找的Perl相关文章