【发布时间】:2017-10-01 03:31:16
【问题描述】:
我想对从变量生成的包名称调用方法。我想我以前做过,但似乎我忘记了如何做。这是我想要实现的破碎版本。
my $var = 'Page';
my $p = My::Package::$var->new();
【问题讨论】:
-
你真的不想这样做。
-
为什么?它有什么问题?
-
看看重复的问题,阅读Why it's stupid to "use a variable as a variable name",尤其是第二部分。
-
我刚读过它们,它们似乎不适用于我的情况。不过,谢谢。
-
当您使用类名时,这不是很重要,但最好不要将类名分成几位,这主要反映了它们在磁盘上的文件结构。你可以写
my $class = 'My::Package::Page'和my $p = $class->new。 (你甚至可以写my $var = 'Page'和my $p = "My::Package::$var"->new但这太可怕了。)但是现在你有一个对象$p,如果不检查它的类你不知道它的方法。
标签: perl