设为首页 收藏本站
查看: 620|回复: 0

[经验分享] 标 题: (zz)Perl Puzzles

[复制链接]

尚未签到

发表于 2017-5-18 08:16:39 | 显示全部楼层 |阅读模式
:(zz)PerlPuzzles
发信站:水木社区(SatMay2101:21:092005),转信

http://www.mathdogs.com/people/mkc/perl-puzzles.html

PerlPuzzles

WhendiscussingtherelativemeritsofPythonversusPerl,oneargumentIhearrepeatedlyinfavorofPerlisthattherearealotmorePerlprogrammersthanPythonprogrammersandthatit'sthereforealoteasiertohireorreplaceprogrammersasneededifoneusesPerl.

Oneanswertothispointisthatifweallthoughtthatway,we'dallbeusingWindowsrightnow.ButIhaveanotheranswer,whichis:

AlmostnobodyreallyknowsPerl.

That'scertainlyanoddthingtoassertconsideringhowmanypeoplecallthemselvesPerlprogrammers.WhatImeanbythestatementisthatPerlissuchalarge,arcane(
神秘),quirky,enigmatic(费解),equivocal(模棱两可)languagethatveryfewpeoplehavesufficientmasteryofittoavoidgettingintotroubleonaregularbasis.By"trouble",Imeanwritingprogramsthatdon'treallymeanwhattheauthorthinkstheymean,orwritingprogramswithsubtle,catastrophic(灾难性的)failuremodes.

Isthereanytruthtothisassertion?AsanunscientifictestI'veputtogetherthiscollectionofPerlpuzzles.Tryyourhandatthemandsendmeanemail(anonymouslyifyoulike)orpostbacktothelistdescribingyourlevelofPerlexperienceandhowyoudidwiththepuzzles.Iwillreportontheresults(inaggregateonly).

Rules

Brieflyanswereachquestionfrommemory,withoutconsultinganybook,reference,Perlinterpreter,etc.Youmustaddressthesalient(
显著)pointofeachpuzzleinorderforyouranswertobeconsideredcorrect;asentenceortwoissufficientineachcase.Considerallofthepossibilities.AssumearecentversionofPerl5,whereitmatters.(Ifyou'vealreadyseensomeofthesepuzzlesatmyrecenttalkoronalist,pleaseanswerasyouwouldhaveprevioustothatexposure.)

ThePuzzles

1.Whatdoesthisdo?

$foo=$foo[1]

2.Whatdoesthisprint?

@a=();
$h{'a'}='b';
push@a,%h;
print"@a";

3.Inthiscode

@x=('a','b','c');
$y=scalar('a','b','c');
$z=scalar@x;

whatare$yand$zsetto?

4.Whatdoesthisdo?

$c='foo';
$a="$c=\'\\\'\n";
$b='$c=\'\\\'\n';

5.Whatdoesthisdo?

while(<STDIN>){
chomp;
unless($_){
print"emptyline\n";
}
}

6.Characterizethepossibleoutcomesofthiscode

@s=sortfoo(1,4,3,2);

assumingthatfooisauser-definedsubroutine.

(Thisquestionissemi-obsolete.Itwaspromptedbyanissuethatexisteduptoversion5.004butprobablydoesn'texistinversions5.005andup.Seetheanswerkeyformoreinfo.)

7.Whatdoesthisdo?

$[=42;

8.Whatdoesthisdo?

$x=(sort=>(4,8,6));
$y=sort=>(4,8,6);

9.Whatdoesthisdo?

print(1+2)+3;
print+(1+2)+3;

10.Whatdoesthisdo

$mt=stat($file)[8];

assumingthat$fileisavalidfilehandle?

11.WhatwillthisPerlregularexpressionmatch?

/$foo[bar]/

Characterizeallofthepossibilities.

12.Giventhissubroutine

subsomefunc{
keys%somehash,0;
}

andassumingthat%somehashisdefined,whatisthevalueofsomefunc()?

13.Whatdoesthisdo?

$SIG{PIPE}=handler;

14.Howmightthisexpressionbeevaluated?

x+2

Enumerateallofthepossibilities.

15.Whatdoesthisdo?

@foo[1]=<STDIN>;

16.Whatdoesthisdo?

$i=0;
do{
$done=foo();
if($done){last;}
$i++;
print"x";
}while($i<10);

17.Explainwheneachof"exists"or"defined"willbeprinted.

print"exists"ifexists$foo{$bar};
print"defined"ifdefined$foo{$bar};

18.Whatdoesthisdo?

for($i=0;$i<10;$i++){
if(<STDIN>){print;}
}

19.Whatdoesthisdo?

$f=<foo[bar]>;

20.Whatdoesthisprint?

$_="foobarbaz";
--$b{(/(\w+)/)[0]};
--$b{/(\w+)/};
print%b;

21.Whatdoesthisprint?

print-0.5**-0.5;

22.Whatdoesthisprint?

@a=(0=>0);
print~$a[0],"",~$a[1];

23.Whatdoesthisprint?

$a[0]=7;
$a[1]=8;
@b=(5x@a);
@c=((5)x@a);
print"@b@c";

24.Whatdoesthisdo?

$print_blanks=1;
while(<>){
nextunlesslength&$print_blanks;
print;
}

25.Whatdoesthisdo?

$n=5;
while(<>){
if(1..$n){print;}
}

26.Whatdoesthisdo?

$sos=1_1_1xxx1_1_1...1_1_1xxx1_1_1;

Hereistheanswerkey.
http://www.mathdogs.com/people/mkc/perl-puzzles-key.html

I'vealsotakenacutatasimilarsetofPythonpuzzles.
http://www.mathdogs.com/people/mkc/python-puzzles.html

Acknowledgements:MostofthesepuzzlesareinspiredbyorliftedfromProgrammingPerlbyLarryWalletal.KudostothemforpointingouttheweaknessesaswellasstrengthsofPerl.Also,thankstoAPforpointingoutseveralerrors.

Copyright2001MikeColeman

Lastmodified:FriJun1323:43:54CDT2003

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-378580-1-1.html 上篇帖子: The Perl Tutorial: Operators (3) 下篇帖子: Perl语言入门读书笔记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表