如何解决Perl:如何使用严格的perl文件中其他pl文件中定义的常量?
我们在严格模式下有一些perl文件,而有些则没有。一些常量(全局变量)是在非严格模式下的perl库(.pl)中定义的,例如 “ $ XXXX ='....';”
当我尝试在严格模式下使用此常量/全局变量(在非严格模式下的perl文件中定义)以严格模式处理perl文件时,出现编译错误“全局符号“ $ XXXX”需要显式包名称”
我是perl的新手。到目前为止,在我看来,该软件包仅在perl模块(.pm)中可用,而我无法将软件包添加到perl库(.pl)文件中,对吗?
我猜最好的方法是将所有常量放入模块中,但这需要更改所有使用常量的文件。现在,我们希望文件更改的数量最少。我想知道在保持原始的严格或非严格模式的同时还有其他解决方法吗?
解决方法
(部分)Exporter的用途。
在MyConsts.pm
中:
package MyConsts;
use strict;
use warnings;
# Load the Exporter module
use parent 'Exporter';
# Define the symbols that will be exported
our @EXPORT = qw($Important_Constant);
# Declare and set the variables.
# Note that they must be *package* variables
# (so use "our",not "my")
our $Important_Constant = 10;
1;
在程序中:
#!/usr/bin/perl
use strict;
use warnings;
use feature 'say';
use MyConsts;
say $Important_Constant;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。