perl – 如何在另一个模块中使用哈希
发布时间:2020-12-16 06:11:48 所属栏目:大数据 来源:网络整理
导读:for Ex : package test1 ; my %hash = ( a= 10,b = 30 ) ;1;in Script : use test1 ;print %hash ; # How to make this avilable in script without sub 解决方法 良好的编程习惯规定您不允许外部代码直接混淆模块的数据,而是必须通过中介,例如访问器例程. T
for Ex : package test1 ; my %hash = ( a=> 10,b => 30 ) ; 1; in Script : use test1 ; print %hash ; # How to make this avilable in script without sub 解决方法
良好的编程习惯规定您不允许外部代码直接混淆模块的数据,而是必须通过中介,例如访问器例程.
TIMTOWTDI,有和没有出口. Moose示例看起来很长,但是这个示例还允许设置数据,而不是仅仅从Test1读取数据,其他三个示例需要相当多的额外代码来处理这种情况. unsugared 模 package Test1; { my %hash = (a => 10,b => 30); sub member_data { return %hash; } } 1; 程序 use Test1 qw(); Test1::member_data; # returns (a => 10,b => 30) 驼鹿 模 package Test1; use Moose; has 'member_data' => (is => 'rw',isa => 'HashRef',default => sub { return {a => 10,b => 30}; }); 1; 程序 use Test1 qw(); Test1->new->member_data; # returns {a => 10,b => 30} # can also set/write data! ->member_data(%something_new) 子::出口商 模 package Test1; use Sub::Exporter -setup => { exports => [ qw(member_data) ] }; { my %hash = (a => 10,b => 30); sub member_data { return %hash; } } 1; 程序 use Test1 qw(member_data); member_data; # returns (a => 10,b => 30) 出口商 模 package Test1; use parent 'Exporter'; our @EXPORT_OK = qw(member_data); { my %hash = (a => 10,b => 30) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |