gpt4 book ai didi

perl - 我如何从一个 Perl 模块的子例程中获取它的名称?

转载 作者:行者123 更新时间:2023-12-02 05:51:44 24 4
gpt4 key购买 nike

假设我有一个 Perl 模块My::Module:

package My::Module;

sub foo {
return $module_name;
}

我应该用什么替换 $module_name 以获得 My::Module

最佳答案

package My::Module;

sub foo {
return __PACKAGE__;
}

[更新] 以下可能是您正在寻找的内容:

package My::Module;

sub new {
my $self = {};
bless $self;
return $self;
}

sub foo {
my $self = shift;
return (caller(0))[3];
}

1;


# test 1: calling foo directly.
print "1: ", My::Module::foo, "\n";
# test 2: instantiating object, then calling method of object instance.
my $x = My::Module->new;
print "2: ", $x->foo(), "\n";

输出:

$ perl test.pl
1: My::Module::foo
2: My::Module::foo

关于perl - 我如何从一个 Perl 模块的子例程中获取它的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13370982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com