相关疑难解决方法(0)

为什么Perl 5的功能原型很糟糕?

另一个Stack Overflow问题中, Leon Timmermans断言:

我建议你不要使用原型.它们有它们的用途,但对大多数情况并非如此,绝对不是在这个例子中.

为什么这可能是真的(或其他)?我几乎总是为我的Perl函数提供原型,而且我从来没有见过其他任何人说使用它们的坏事.

perl prototype function

116
推荐指数
4
解决办法
2万
查看次数

如何欺骗原型检查?

想为一些外来的perl模块写一个简单的包装器.简化示例:

use 5.014;
use warnings;

#foreign package
package Some {
    sub func {
        my($x,$y) = @_;
        return $x.$y;
    }
};

#my own packages
package My {
    #use Some ();
    sub func { Some::func(@_); }
}

package main {
    #use My;
    say My::func("res","ult");
}
Run Code Online (Sandbox Code Playgroud)

这工作正常并打印result.

但现在我遇到了一个使用原型的模块,例如上面的内容如下:

package Some {
    sub func($$) {     # <-- prototype check
        my($x,$y) = @_;
        return $x.$y;
    }
};
Run Code Online (Sandbox Code Playgroud)

当试图使用My包装器包时 - 它说:

Not enough arguments for Some::func at ppp line 16, near "@_)" …
Run Code Online (Sandbox Code Playgroud)

perl

3
推荐指数
1
解决办法
66
查看次数

标签 统计

perl ×2

function ×1

prototype ×1