谢谢。 2011/12/23 joe jiang <[email protected]>
> 这次介绍的是 Scott Smith 写的 Getopt::Complete 模块,它能帮助你设计更加易于记忆的命令行接口。 > > 如果你喜欢在命令行做大多数事情的话,没准有一件事还没有尝试过,那就是用 w3m 浏览器查阅圣经。做这样的事情,最好的网站(目前来说)可能还是 > YouVersion.com。因为他们有专门为手机浏览器设计的页面 m.youversion.com。当然,那里还有圣经的手机应用可以下载。 > > 现在的问题是,要准确拼凑 URL 字符串很不容易,不过有了 Getopt::Complete 就不是什么大问题了。 > > 如果你装好了这个模块,又有这样一段可执行脚本(命名为 youversion)在可执行路径下: > > =begin code > > #!/usr/bin/perl > > use Getopt::Complete ( > book => [qw(gen exod lev num deut josh judg ruth 1sam 2sam 1kgs > 2kgs 1chr 2chr ezra neh esth job ps prov eccl song isa jer lam ezek dan hos > joel amos obad jonah mic nah hab zeph hag zech mal matt mark luke john acts > rom 1cor 2cor gal eph phil col 1thess 2thess 1tim 2tim titus phlm heb jas > 1pet 2pet 1john 2john 3john jude rev)], > translation => [qw(cunpss cnvs ccb csb niv nlt esv kjv nkjv net > web msg cev ncv)], > chapter => undef, > 'verse' => undef, > ); > > system qq(w3m > http://zh-cn.m.youversion.com/bible/verse/@{[$ARGS{translation} || > q(cunpss)]}/@{[$ARGS{book} || q(heb)]}/@{[$ARGS{chapter} || > 1]}/$ARGS{verse}); > > =end code > > 那么你就可以在输入 youversion 这个词(包括空格)以后按下 TAB 键两次,这时候就会自动补齐 --。然后呢?再次双 TAB! > > =begin code > > % youversion -- > --book= --chapter= --translation= --verse= > > =end code > > 现在你看到了所有的可选参数,输入 b 然后再次双 TAB,你会看到自动补齐了 book=。没错,再次双 TAB。 > > =begin code > > % youversion --book= > 1chr 2chr 3john esth heb jonah mark phlm zech > 1cor 2cor acts exod hos josh matt prov zeph > 1john 2john amos ezek isa jude mic ps > 1kgs 2kgs col ezra jas judg nah rev > 1pet 2pet dan gal jer lam neh rom > 1sam 2sam deut gen job lev num ruth > 1thess 2thess eccl hab joel luke obad song > 1tim 2tim eph hag john mal phil titus > > =end code > > 现在列出了六十六个可选书名。我应该不用再教你怎么补齐其中一个了吧? > > 当然,并非每个参数都是必须的,有些参数是自动设为一的,比如章节号码。 > > 于是,你可以继续不断尝试输入 TAB 和字母数字,最后也许你会输入这样的一串: > > =begin code > > % youversion --book=luke --chapter=2 --verse=11 > > =end code > > 那么回车之后你应该看到: > > =begin code > > 今天在大卫的城里,为你们生了救主,就是主基督。 > > =end code > > 提前祝大家圣诞快乐!神祝福 ... > > -- > 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。 > 要向此网上论坛发帖,请发送电子邮件至 [email protected]。 > 要取消订阅此网上论坛,请发送电子邮件至 [email protected]。 > 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。 > -- Hao Wu Phone: 605-299-7610 Mail: 301 Funchess Hall, Auburn University, AL, 36849, USA -- 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。 要向此网上论坛发帖,请发送电子邮件至 [email protected]。 要取消订阅此网上论坛,请发送电子邮件至 [email protected]。 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
