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

使用它时将参数传递给perl包

发布时间:2020-12-16 06:26:35 所属栏目:大数据 来源:网络整理
导读:如何在使用包时传递一些参数,例如: use Test::More tests = 21; 我无法找到有关此专长的任何有价值的文件.传递这些论点是否有任何利弊? 解决方法 use My::Module LIST 做了两件事:1)它 require s My :: Module; 2)调用 My::Module-import(LIST) . 因此,您
如何在使用包时传递一些参数,例如:

use Test::More tests => 21;

我无法找到有关此专长的任何有价值的文件.传递这些论点是否有任何利弊?

解决方法

use My::Module LIST做了两件事:1)它 requires My :: Module; 2)调用 My::Module->import(LIST).

因此,您可以编写模块的导入例程来处理以任何方式传递的参数列表.如果您确实正在编写一个不向调用者的命名空间导出任何内容的面向对象模块,这将变得更加容易.

这是一个相当无意义的例子:

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');

输出:

$./imp.pl
Merhaba Perl!
Hello Perl!

(编辑:李大同)

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

    推荐文章
      热点阅读