perl 函数 左值属性

来源:互联网 发布:阿曼达·诺克斯 知乎 编辑:程序博客网 时间:2024/05/17 06:09
5.3 左值属性:除非你定义子过程返回一个左值,否则你不能从子过程中返回一个可以修改的标量值:[oracle@oadb 6]$ cat a6.pl my $val;sub canmod :lvalue  {$val;};sub nomod {$val;};canmod() = 5;print $val;nomod()=5;[oracle@oadb 6]$ perl a6.pl Can't modify non-lvalue subroutine call in scalar assignment at a6.pl line 11, near "5;"Execution of a6.pl aborted due to compilation errors.不能修改 非左值函数请求在标量赋值canmod() = 5; # 给 $val 赋值为 5nomod() = 5; # 错误子过程可以用一个&开头命名,不过调用子过程的时候这个趣味字符是可选的。子过程通常不认为是左值得,不过最近版本的Perl允许你从一个子过程返回一个左值赋予该子过程这样看起来可能像给你在给那个子过程赋值:

0 0
原创粉丝点击