How to pass optional parameters to a Perl function?

前端 未结 3 1480
时光取名叫无心
时光取名叫无心 2020-12-09 03:45

I want to pass several parameters, one of which is optional, to a function. The only way to do it that I know is using a list (@) as a parameter. Thus, it contents nothing o

3条回答
  •  隐瞒了意图╮
    2020-12-09 04:35

    Prototypes (the ($$@) part of your sub declaration) are optional themselves. They have a very specific use, and if you don't know what it is, it is better to not use it. From perlsub:

    ...the intent of this feature is primarily to let you define subroutines that work like built-in functions

    Just remove the prototype from your sub declaration, and you can use whatever arguments you like.

    sub someFunction {
        my ( $oblig_param1, $oblig_param2, $option_param ) = @_;
        if (defined $option_param) {
            # do optional things
        }
        $option_param //= "default optional value";
        ....
    } 
    

提交回复
热议问题