大佬教程收集整理的这篇文章主要介绍了尝试了解Perl排序函数的结果,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Perldoc表示第二个参数可以是子程序名称或代码块.我看到func()作为一个调用,而不是一个名字.我根本不认为这是DWIMMY.
为了进一步探索如何运作,我写道:
use Strict; use warnings; sub func { return qw/ c b a /; } my @a; @a = sort func(); print "1. sort func(): @a\n"; @a = sort &func; print "2. sort &func: @a\n"; @a = sort +func(); print "3. sort +func(): @a\n"; @a = sort (func()); print "4. sort (func()): @a\n"; @a = sort func; print "5. sort func: @a\n";
输出,没有生成警告:
1. sort func(): 2. sort &func: a b c 3. sort +func(): a b c 4. sort (func()): a b c 5. sort func: func
数字1是我的行为 – 没有输出.
我感到惊讶的是,2作品,而1没有.我以为他们是等同的
我明白3和4,我用4来解决我的问题.
我真的很困惑5,特别是没有警告.
有人可以解释1& 2,为什么5输出函数的名称?
并且#5解析为sort(“func”),排序包含(bareword)字符串func的列表.也许这里应该有一个警告,但没有.
分离输出:
$perl -MO=Deparse -e '@a1 = sort func();' -e '@a2=sort &func;' \ -e '@a3=sort +func();' -e '@a4=sort (func());' -e '@a5=sort func;' @a1 = (sort func ()); @a2 = sort(&func); @a3 = sort(func()); @a4 = sort(func()); @a5 = sort('func'); -e syntax OK
以上是大佬教程为你收集整理的尝试了解Perl排序函数的结果全部内容,希望文章能够帮你解决尝试了解Perl排序函数的结果所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。