
读《Perl语言入门》(第四版,我买的书,网上有个翻译质量很大的电子版)的第10章的例题,人见人爱的猜数游戏,用perl写下来一般这种:
题外话:玩Perl的高他们别鄙视我,我是perl新手啊,如果写的不够“perl”,多多指点。
这段代码转成ruby,可以这么写:
Code highlighting produced by Actipro CodeHighlighter (freeware)
-->$num=1+(rand100)

puts"Ihaveanumberguessit?"
while(true)
gets.chomp
nextunless~/\d+/
$_.to_i>$num?beginprint"Toohigh\n"end:

$_.to_i==$num?beginbreakend:beginprint"Toolow\n"end
end
看起来了吧,两者何其相似啊,包括perl里面人见人爱的$_,ruby也是支持的,唯一如此一点不同的地方就是last换成了break,然后是正则表达式左边多了个~,你完全可以将这个符号去掉,不过会有警告,最后就是Ruby中的应执行的表达式得放在begin...end里面,这一点让我琢磨了一段时间,还以为Ruby不支持呢。读《Perl语言入门》最大的真谛不仅妙趣横生的语言、古灵精怪的符号之外,就是寻找Ruby中的Perl痕迹,哦哦,那个味道比较重——骆驼的滋味。不过目前Ruby不鼓励这种的写法,毕竟,程序是帮人读的,因此可以改写一下:
Code highlighting produced by Actipro CodeHighlighter (freeware)
-->$num=1+(rand100)

puts"Ihaveanumberguessit?"
while(true)
guess=STDIN.gets
nextunlessguess=~/\d+/
if(guess.to_i>$num)

puts"Toohigh"
elsif(guess.to_i==$num)
break
else
puts"Toolow"
end
end
文章转自庄周梦蝶 ,原文发布时间2007-12-07
版权声明:本文内容由互联网用户自发贡献,版权归作者所有,本社区不拥有所有权ruby修改了perl,也不承担相关法律责任。如果您看到本社区中有涉嫌剽窃的内容,欢迎发送邮件到:yqgroup@service.aliyun.com进行举报,并提供相关证据,一经查实ruby修改了perl,本社区将立即删除涉嫌侵权内容。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-134238-1.html
日本军事储存能力比你想象强得多
那些所谓的创新公司靠圈钱过日子