以下两行perl的目的是什么?
my $host = shift || 'localhost';
my $port = shift || 200;
Run Code Online (Sandbox Code Playgroud)
那应该返回localhost和端口10.什么是shift关键字?
这段代码是一种为$host和提供默认值的方法$port.它通常位于脚本或子例程的开头,@ARGV并@_分别从中获取值.
那应该返回localhost和端口10.
不,||运算符是短路的OR,这意味着如果LHS操作数返回真值,则忽略RHS操作数.基本上,它意味着这个(并且只有这个):"如果是真的则选择左侧值,否则选择右侧值."
shift ARRAY将返回第一个值ARRAY,或:
如果省略了ARRAY,则将@_数组移动到子程序和格式的词法范围内,将@ARGV数组移到子程序之外,并且也移动到由eval STRING,BEGIN {},INIT {},CHECK {}建立的词法范围内. ,UNITCHECK {}和END {}构造.
引自http://perldoc.perl.org/functions/shift.html
当然,还会shift从移位的数组中删除值.因此,您可以shift像这样连续使用两个,以便进行非常方便的参数处理.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           8513 次  |  
        
|   最近记录:  |