在perl中可以使用包名称来调用方法,如下所示:
my $cls = 'PackageName';
$cls->method()
调用PackageName->method()
使用包变量的正确语法是什么,例如: G。 $PackageName::SOME_VAR
以同样的方式,包名称为$cls
变量?
答案 0 :(得分:2)
您需要使用以下语法。
use strict;
use warnings;
use feature 'say';
package Foo;
our $bar = 123;
package main;
{
my $package = 'Foo';
no strict 'refs';
say ${"${package}::bar"};
}
外${ ... }
用于参考。语法说明将符号表中的值与给定名称一起作为标量。内部${package}
只是词汇变量$package
,花括号{}
作为名称分隔符。
关闭严格的引用是很重要的。请记住在尽可能小的范围内做到这一点。