一段小程序(Perl vs. Ruby)

  读《Perl语言入门》(第四版,我买的书,网上有个翻译质量很高的电子版)的第10章的习题,人见人爱的猜数游戏,用perl写出来大概这样:

$num=int (1 + rand 100);
print "I have a number,guess it?:\n";
while(<>)
{
    chomp;
    next unless /\d+/;
    $_>$num? print "Too high\n" :
        $_==$num? last :print "Too low\n"; 
}

   题外话:玩Perl的高人们别鄙视我,我是perl新手啊,如果写的不够“perl”,多多指点。
  
   这段代码转成ruby,可以这样写:

$num=1+(rand 100)
puts "I have a number guess it?"
while(true)
   gets.chomp
   next unless ~/\d+/
     $_.to_i>$num?begin print "Too high\n" end:
       $_.to_i==$num? begin break end:begin print "Too low\n" end
    
end

    看出来了吧,两者何其相似啊,包括perl里面人见人爱的$_,ruby也是支持的,唯一那么一点不同的地方就是last换成了break,然后是正则表达式左边多了个~,你完全可以将这个符号去掉,不过会有警告,最后就是Ruby中的要执行的表达式得放在begin...end里面,这一点让我琢磨了一段时间,还以为Ruby不支持呢。读《Perl语言入门》最大的乐趣除了妙趣横生的语言、古灵精怪的符号之外,就是寻找Ruby中的Perl痕迹,哦哦,那个味道相当重——骆驼的味道。不过现在Ruby不鼓励这样的写法,毕竟,程序是给人读的,因此可以改写一下:

$num=1+(rand 100)
puts "I have a number guess it?"
while(true)
   guess=STDIN.gets
   next unless guess=~/\d+/
   if(guess.to_i>$num)
      puts "Too high"
   elsif(guess.to_i==$num)
      break
   else
      puts "Too low"
   end
end

文章转自庄周梦蝶  ,原文发布时间2007-12-07

时间: 2024-09-30 22:20:13

一段小程序(Perl vs. Ruby)的相关文章

php初学者写及时补给skype用户充话费的小程序_php技巧

其实加在一起有几十个,但因为需要操作的数据比较多,就在后面加了一段小程序来解决.可以处理昨天没有处理到的数据,具体如下: 复制代码 代码如下: $handle = mysql_connect("host", "user", "password"); if(!$handle || !(mysql_select_db("databasename", $handle))) exit(); $sql = 'select skype_i

Ruby编写HTML脚本替换小程序的实例分享_ruby专题

在一个文件里有很多以下内容: <p style="display:none">此题选D. .... .... .... </p> 而本人要实现的功能是将它替换成: <div style="display:none" class="sl_explain">此题选D. ..... ..... ..... </div> 这个东西看起来有点简单,但本人整整花了半天才实现此功能,主要是很久没写RUBY程序了,

PHP常用的小程序代码段_php技巧

本文实例讲述了PHP常用的小程序代码段.分享给大家供大家参考,具体如下: 1.计算两个时间的相差几天 $startdate=strtotime("2009-12-09"); $enddate=strtotime("2009-12-05"); 上面的php时间日期函数strtotime已经把字符串日期变成了时间戳,这样只要让两数值相减,然后把秒变成天就可以了,比较的简单,如下: $days=round(($enddate-$startdate)/3600/24) ;

使用Java小程序为网页上的照片添加效果

程序|网页 1.准备源文件 选择要放置到网页上的照片,用扫描仪扫描得到照片的图像文件,再用PhotoShop等图像处理软件处理成大小为300×300象素的图像,最后保存为或者使用ACESee等图像查看软件转换为.jpg格式,保存到新建的文件夹photo中(注意千万别使用汉字为这个文件夹命名).现在假设这些照片图像分别为photo1.jpg.photo2.jpg.photo3.jpg.其中photo1.jpg为主要照片,photo2.jpg和photo3.jpg为辅助照片,最好选择不同时期的照片以

广告过滤小程序

这几天,在使用某个软件试用版的过程中,经常弹出广告,真是不甚烦恼,如何写个小程序把他去掉呢?请和我一起来吧! 思路是这样的:首先需要知道要消灭窗体的标题(比如MyWindow),然后获取窗体的句柄,判断它的标题是否和需要消灭的窗体的标题一样,如果是的话将它关闭.道理很简单,实现也不难,看看下面的代码: CPoint MP; char str[256]; HWND hWnd; GetCursorPos(&MP); hWnd = ::WindowFromPoint(MP); ::SendMessag

独家 | 手把手教你用scrapy制作一个小程序 !(附代码)

目录 一.前言 二.原理 2.1 爬取流程 2.2 各部块的解释 2.3 scrapy数据流的分析 三.理解 四.实战 4.1 首先是安装scrapy 4.2 建立项目和下载pycharm以及pycharm的配置 4.3 提取标题名和作者名 4.4 scrapy流程解析 4.5 小项目难度加深 五.对scrapy建立项目的feedback 5.1 如何更快地找 bug 5.2 共存解释器可能导致的种种报错 六.知识补充 6.1 Spider中的类和方法 一. 前言 Scrapy是用于Python

c语言-用vc6.0编写一个整人的小程序(我想要详细的做法和解除的方法)

问题描述 用vc6.0编写一个整人的小程序(我想要详细的做法和解除的方法) 通过QQ等发给别人,在对面没有编辑环境的情况下也能整到他(比如让他骂自己不然就重启电脑:让他夸我不然锁住计算机屏幕等等!顺便告诉我怎么发给他,在对方打开时候就执行!) 解决方案 编译完之后的exe就可以直接发了吧 解决方案二: 你可以网上找一个相关的批处理文件,比如说隔一段时间把他的电脑的声音关掉等等,然后设置成开机运行就好 解决方案三: 改变VC6.0程序方法.

微信小程序自定义多功能模态对话框案例实战

   这段时间刚好在做微信小程序相关项目开发,发现微信官方提供的小程序弹窗功能有限, 有些功能根本没法实现,这篇文章主要介绍微信小程序项目实战之自定义模态对话框wxDialog,处理一些复杂的弹窗逻辑业务,采用了仿原生.wxui写法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下哈~~~ 先来个demo预览页面: api配置参数如下: var config = { type: '', //设置弹窗显示类型 ->默认:0 (0表示信息框,1表示页面层) title: '', //标题 conte

《微信小程序:开发入门及案例详解》—— 2.4 框架页面文件

2.4 框架页面文件 小程序中一个框架页面包含4个文件,同一框架页面的这4个文件必须具有相同的路径与文件名,进入小程序时或页面跳转时,小程序会根据app.json配置的路径找到对应的资源进行渲染. ◇ .js文件:页面逻辑文件,必要项. ◇ .wxml文件:页面结构文件,必要项. ◇ .wxss文件:页面样式文件. ◇ .json文件:页面配置文件. 与框架主体文件相比框架页面文件多了一种页面结构文件,其余3个文件和框架主体文件的功能类同,下面我们一一讲解每个文件作用. 2.4.1 页面配置文件