相关疑难解决方法(0)

Perl子例程参数

我最近一直在阅读有关Perl的内容,并且对于Perl如何处理传递给子例程的参数感到有些困惑.

在Python,Java或PHP等语言中,函数定义采用(伪代码)形式:

function myFunc(arg1, arg2) {
    // Do something with arg1 and arg2 here
}
Run Code Online (Sandbox Code Playgroud)

然而在Perl中,它只是:

sub mySub {
    # @_ holds all arguments passed
}
Run Code Online (Sandbox Code Playgroud)

据我了解,这是唯一的方法.

  • 如果我想限制调用者只传递2个参数怎么办?

  • 这不仅仅是Perl在其他语言(即Python,C等)中不允许任何变量数量参数吗?

  • 在某些时候这不会成为问题吗?

  • 其他语言中的所有默认参数号检查怎么样?是否必须在Perl中明确地做到这一点?例如

    sub a_sub {
        if (@_ == 2) {
            # Continue function
        }
        else {
            return false
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

perl

40
推荐指数
6
解决办法
7万
查看次数

标签 统计

perl ×1