【发布时间】:2023-03-26 14:01:01
【问题描述】:
我目前正在学习关于类型团和命名空间的 Perls 系统。所以我写了一个模块,它接受两个参数,一个常量的值和名称,并将常量导出给调用者。 $package 变量等于 caller[2]。
*{"$package::$name"} = sub () { return $value; };
上面的代码完成了将匿名子例程导出到调用者符号表的工作。因为我的目标是构建自己的常量实现,所以子程序有一个空原型,这意味着它是一个只读子程序。
但这是我的问题:原型不起作用。所以
print &TestConst; #works well
print TestConst(); #works well
print TestConst; #Name "main::TestConst" used only once: possible typo at testscript.pl line 7.
我的想法有问题吗?还有其他方法吗?
【问题讨论】:
标签: namespaces prototype perl typeglob