- 求职 : 软件工程师
- 论坛徽章:
- 3
|
本帖最后由 104359176 于 2017-08-09 14:20 编辑
以下的代码, 两个函数的内容相同,就是名字不同,返回结果也不同:
- use 5.024;
- if (is_a('b')) { say 'ok!' } else { say 'not ok!' }
- if (is_aa('b')) { say 'ok!' } else { say 'not ok!' }
- sub is_a { my $a = shift; return length($a) == 1 and $a eq 'a' }
- sub is_aa { my $a = shift; return length($a) == 1 and $a eq 'a' }
复制代码
输出:- Administrator@JZQB659LXCACD19 E:\ssqq\perl-spp
- $ perl test.pl
- not ok!
- ok!
复制代码
另外我发现 return 的优先级比 and 的要高,如果 return 后面有 and, 要用括号扩起来,就没事了。
- sub is_aa { my $a = shift; return (length($a) == 1 and $a eq 'a') }
复制代码
|
|