【发布时间】:2014-12-05 00:59:36
【问题描述】:
在 perl 中,我正在尝试创建一个变量 $foo,我可以在该变量上执行以下两项操作:
$foo->getBirthday(); # (A)
$foo->{'name'}; # (B)
我该怎么做?
我知道如果我创建一个 perl 对象,那么我可以有一个 getBirthday 子例程,但如果我这样做了;我怎样才能使用->{'name'} 语法呢?同样,如果我创建一个基本的 perl 哈希引用,那么我可以做 B,但我不知道我将如何完成 A。
谁能告诉我如何创建一个允许这两种语法的数据结构/对象?
我很确定这在某种程度上是合法的,因为我在其他人的代码中看到了它。 (不幸的是,我无法查看他们的源代码或运行他们的程序)
【问题讨论】:
-
我的 perl 生锈了,但我想说'不可能'
-
我不确定
perl是否遵循everything is an object成语,就像ruby一样。 -
我很确定这在某种程度上是合法的,因为我在其他人的代码中看到了它。 (不幸的是,我无法查看他们的源代码或运行他们的程序)
-
这很好,如果你从散列引用形成你的对象,那么它就是这样发生的。但是,如果您直接访问散列的内容,则您违反了一些规则,您应该编写访问器。
标签: perl