如何在使用包时传递一些参数,例如:
use Test::More tests => 21;
我无法找到有关此功能的任何有价值的文档。通过这样的论点有什么优点和缺点吗?
use My::Module LIST https://metacpan.org/pod/perlfunc#use-Module-LIST做两件事:1)它require https://metacpan.org/pod/perlfunc#require-EXPRs My::Module
; 2) 调用My::Module->import(LIST) https://metacpan.org/pod/perlfunc#import-LIST.
因此,您可以编写模块的import
例程来处理以任何您想要的方式传递的参数列表。如果您确实正在编写一个不向调用者的命名空间导出任何内容的面向对象模块,那么这会变得更加容易。
这是一个毫无意义的例子:
package Ex;
use strict;
use warnings;
{
my $hello = 'Hello';
sub import {
my $self = shift;
my $lang = shift || 'English';
if ($lang eq 'Turkish') {
$hello = 'Merhaba';
}
else {
$hello = 'Hello';
}
return;
}
sub say_hello {
my $self = shift;
my $name = shift;
print "$hello $name!\n";
return;
}
}
__PACKAGE__;
__END__
以及使用它的脚本:
#!/usr/bin/env perl
use strict;
use warnings;
use Ex 'Turkish';
Ex->say_hello('Perl');
Ex->import;
Ex->say_hello('Perl');
Output:
$ ./imp.pl
Merhaba Perl!
Hello Perl!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)