sách gpt4 ai đã đi

perl - 给定 Perl 中的包名,如何从包中调用子程序?

In lại 作者:行者123 更新时间:2023-12-04 16:54:43 27 4
mua khóa gpt4 Nike

给定一个包含表示包名称的字符串的变量,我如何调用包的特定子例程?

这是我想出的最接近的事情:

package MyPackage;

sub echo {
print shift;
}

my $package_name = 'MyPackage';
$package_name->echo('Hello World');

1;

这段代码的问题是子程序作为类方法被调用;包名作为第一个参数传入。我想从包名调用子例程,而不隐式传入特殊的第一个参数。

1 Câu trả lời

听起来您实际上并不想将其作为方法调用,而是作为常规子例程调用。在这种情况下,您可以使用符号引用:

my $package_name = 'MyPackage';
{
no strict 'refs';
&{ $package_name . '::echo' }( 'Hello World' );
}

关于perl - 给定 Perl 中的包名,如何从包中调用子程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10890558/

27 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com