gpt4 book ai didi

function - 我应该如何在Perl中定义“静态”子例程?

转载 作者:行者123 更新时间:2023-12-03 14:08:21 25 4
gpt4 key购买 nike

我曾经使用Java工作,所以也许这个问题是面向Java的Perl问题……无论如何,我已经使用Person创建了Moose包。

现在,我想添加一些“静态”子例程,即它们不引用特定的Person,但仍与Person程序包密切相关。例如,sub sort_persons获取一个Person对象的数组。

在Java中,我只需将这些函数声明为static。但是在Perl中...常用的方法是什么?

ps我认为我指的Perlish术语是“类方法”。

最佳答案

Perl中没有静态方法。适用于整个类的方法通常称为类方法。它们与实例方法的区别仅在于其第一个参数的类型(这是程序包名称,而不是对象)。像大多数Perl类中的new()一样,构造方法是类方法的常见示例。

如果只想将特定方法作为类方法调用,请执行以下操作:

sub class_method {
my ($class, @args) = @_;
die "class method invoked on object" if ref $class;
# your code
}

关于function - 我应该如何在Perl中定义“静态”子例程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3845722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com