【发布时间】:2011-03-28 04:01:22
【问题描述】:
来自新手用户的第一篇文章。我在谷歌上搜索的每一个问题似乎都会把我带到这里,而且我总是能得到很好的答案。所以当我开始思考 Perl 中祝福的用法时,这自然是我的第一站。
我刚刚进入 Perl 的 OOP,今天才读到帖子询问 bless 是做什么的。我现在明白它会将标量/哈希/数组引用到一个对象,如果你愿意的话,可以“附加”它。
在我在 Perl 中看到的大多数类示例中,它们似乎没有我在其他语言中看到的属性...
{ package Person;
my $property = "This is what I'm talking about :)";
sub new { ... }
...
}
所以,我创建了一个带有属性的愚蠢类来看看会发生什么。我立即给该属性值“NIL”,然后“Not Nil!”在构造函数中。使用方法 LIST,我能够打印该属性,并且正如我所料,它打印了 'Not Nil!'
我的问题是,如果属性的工作方式与我预期的一样(在正文中声明),那么为什么要使用 bless 呢?当您可以简单地将标量/哈希/数组创建为属性,或者创建您想要的任何引用作为属性时,拥有该引用的额外好处是什么?
我希望我能很好地解释我想要问的问题,用 Perl 非常绿色:)
【问题讨论】:
-
我想知道他们什么时候会开始实施“smite”...
-
哇,我真的没有意识到我的问题是如此愚蠢......对不起?......我现在会接受你的建议 Hamish。
-
我不确定@Hamish Grubijan 在说什么,但你的问题并不愚蠢。我的猜测是,他是说 Perl 在这个网站上并不是一种受人尊敬的语言,但欢迎提出 Perl 问题 :)
-
@NiRC - 安定下来……Hamish 开了个有点失败的玩笑,Perl 上 98%,你身上 2%……就像“Perl 太糟糕/可怕,你应该在你被卷入更深之前停止尝试处理它”。
-
@Jim Lewis:七年前。 search.cpan.org/~ibb/Acme-Damn-0.02/Damn.pm Smite 不是别名之一,也许你应该提出请求。