美元是什么在Perl函数定义中是什么意思?
我得到了以下代码:美元是什么在Perl函数定义中是什么意思?,perl,Perl,我得到了以下代码: sub-deg2rad($;$){my$d=\u-DR*$\u[0];$\u[1]?$d:rad2rad($d)} 谁能告诉我是什么$的意思是?子声明后面括号中的内容称为原型。它们在本节中进行了解释。通常,您可以使用它们进行编译时参数检查 特定的($;$)用于强制参数 分号(;)将强制参数与可选参数分开。它在@或%之前是多余的,它吞噬了其他所有东西 因此,这里必须使用至少一个参数调用sub,但是可能有第二个参数 如果用三个参数调用它,它将抛出一个错误 use constant
sub-deg2rad($;$){my$d=\u-DR*$\u[0];$\u[1]?$d:rad2rad($d)}
谁能告诉我是什么$代码>的意思是?子声明后面括号中的内容称为原型。它们在本节中进行了解释。通常,您可以使用它们进行编译时参数检查 特定的
($;$)
用于强制参数
分号(;)将强制参数与可选参数分开。它在@或%之前是多余的,它吞噬了其他所有东西
因此,这里必须使用至少一个参数调用sub,但是可能有第二个参数
如果用三个参数调用它,它将抛出一个错误
use constant _DR => 1;
sub rad2rad {@_}
sub deg2rad ($;$) { my $d = _DR * $_[0]; $_[1] ? $d : rad2rad($d) }
print deg2rad(2, 3, 4);
__END__
Too many arguments for main::deg2rad at scratch.pl line 409, near "4)"
Execution of scratch.pl aborted due to compilation errors.
请注意,原型不适用于方法调用,如
$foo->frobnite()
一般来说,原型在现代Perl中被认为是不好的做法,只有在您确切知道自己在做什么时才应该使用
所采用的简明扼要的方式很好地概括了这一点:
他们被认为是坏习惯的最重要原因是 那些不知道自己在做什么的人正在尝试使用 因为他们不是
有关该主题的详细解释和讨论,请参阅及其答案。它们被视为不良做法的部分原因是单词
原型。在其他编程语言中,它意味着其他东西,这很有帮助。谢谢!他们被认为是坏习惯的最重要原因是,那些不知道自己在做什么的人,正试图利用他们来做他们不知道的事情。(它们是电动工具;请阅读手册,除非你是认真的,否则不要使用。)