gpt4 book ai didi

perl - 我如何编写一个既可以作为普通子程序又可以作为类方法工作的 Perl 子程序?

转载 作者:行者123 更新时间:2023-12-01 07:09:01 24 4
gpt4 key购买 nike

我正在编写一个本质上是静态的函数。我想将它插入到模板工具包中,它会传递类名。本质上,它正在做

ClassName->function( $args.. )

但我希望它做类似的事情
ClassName::function( $args.. )

里面
sub function {
}

处理这两种情况的正确方法是什么?

最佳答案

一般来说,没有。 sub要么被编写为作为方法调用,要么不是。

看看如何File::Spec::Functions通过将包名称添加到参数列表来处理这种情况。

现在,在一个非常具体的、有限的情况下 , 你可以做:

shift if $_[0] eq __PACKAGE__;

sub 时,作为子文件中的第一行丢弃第一个参数被称为类方法。

关于perl - 我如何编写一个既可以作为普通子程序又可以作为类方法工作的 Perl 子程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1038975/

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