加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-16 06:23:32 所属栏目:大数据 来源:网络整理
导读:我是这个网站的新手,所以请耐心等待,如果这个问题已经在其他地方得到了回答.我试图从模块“codons1.pm”调用子程序“bar”,我遇到错误: 无法通过包“codons1.pm”找到对象方法“bar”(也许你忘了加载“codons1.pm”?).主脚本如下: use strict;use warning
我是这个网站的新手,所以请耐心等待,如果这个问题已经在其他地方得到了回答.我试图从模块“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();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读