perl – 在@INC中什么时候引用子程序?
发布时间:2020-12-15 22:04:06 所属栏目:大数据 来源:网络整理
导读:正如标题所说,我不清楚这样一个子程序将被调用.从 perldoc perldoc可以写: push @INC,my_sub;sub my_sub { my ($coderef,$filename) = @_; # $coderef is my_sub ...} 但是这究竟在哪里呢?所需的包或需要的脚本(或包)?我已经尝试了一些哨兵打印声明,但
正如标题所说,我不清楚这样一个子程序将被调用.从
perldoc
perldoc可以写:
push @INC,&;my_sub; sub my_sub { my ($coderef,$filename) = @_; # $coderef is &;my_sub ... } 但是这究竟在哪里呢?所需的包或需要的脚本(或包)?我已经尝试了一些哨兵打印声明,但没有这么清楚,有一些我没有得到. 解决方法
Perl在@INC中调用子程序引用,当它遍历@INC以查找模块时.也就是说,当您尝试使用或需要加载模块时,您将触发它,并且Perl在以前的@INC位置找不到该模块.
BEGIN { push @INC,sub { print "Oops: There was an error looking for $_[1]n"; }; } eval "use Cat::Burglar"; eval "use Local::NotThere"; require Cat::Burglar; 在尝试加载模块之前,您需要确保您的子程序引用位于@INC中.请记住,use是一个编译时功能,而且这是一个运行时功能.与添加其他“常规”@INC条目一样,您可能希望在程序中尽早在BEGIN块中执行此操作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |