分页: 1 / 1

google 字典perl 脚本

发表于 : 2010-10-23 17:06
zoujichun
依赖:w3m
用法:dict.pl someword

代码: 全选

#!/usr/bin/env perl

use strict;
use warnings;

sub usage {
    print "$0 someword\n";
    exit 1;
}
&usage if (@ARGV < 1);
my $word = $ARGV[0];

$_ = `w3m -cookie -dump 'http://www.google.com.hk/dictionary?langpair=en|zh-CN&q=$word&hl=zh-CN' 2>/dev/null`
    or die "Network Error!\n";

if (/(^在.*找到.*)^更多.*»/ms){
    print $1;
}else {
    warn "Invalued word!\n";
    exit 1;
}

Re: google 字典perl 脚本

发表于 : 2010-10-23 19:41
eexpress

代码: 全选

☛ cat bin/g-translate.pl 
#!/usr/bin/perl

$icon="$ENV{HOME}/图片/图标/国旗/cn-en-128.png";
#$icon="/home/exp/.icons/Mashup/apps/config-language.png";
use Getopt::Long;
GetOptions('n'=>\$notify);
my $out,$in,$str;
# 无参数时,使用剪贴板内容。
$in=join('+',@ARGV);if(!$in){$in=`xsel -o`;} if(!$in){exit;}
$in=`echo "$in"|uni2ascii -a J -s`;
$in=~s/ /+/g; $in=~s/["']//g;
chomp $in;
if($in=~/%/){$str="zh-CN%7Cen";}else{$str="en%7Czh-CN";}
$out="curl -e http://www.my-ajax-site.com 'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=$in&langpair=$str' 2>/dev/null";
$out=`$out`;
$out=~/translatedText":"(.*?)"/;
if($notify){`notify-send -i '$icon' 'google翻译' "$1"`;}
else{print $1;}
我的这个,是加到面板的图标的。lz也试试。

Re: google 字典perl 脚本

发表于 : 2010-10-23 22:16
zoujichun
eexpress 写了:

代码: 全选

☛ cat bin/g-translate.pl 
#!/usr/bin/perl

$icon="$ENV{HOME}/图片/图标/国旗/cn-en-128.png";
#$icon="/home/exp/.icons/Mashup/apps/config-language.png";
use Getopt::Long;
GetOptions('n'=>\$notify);
my $out,$in,$str;
# 无参数时,使用剪贴板内容。
$in=join('+',@ARGV);if(!$in){$in=`xsel -o`;} if(!$in){exit;}
$in=`echo "$in"|uni2ascii -a J -s`;
$in=~s/ /+/g; $in=~s/["']//g;
chomp $in;
if($in=~/%/){$str="zh-CN%7Cen";}else{$str="en%7Czh-CN";}
$out="curl -e http://www.my-ajax-site.com 'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=$in&langpair=$str' 2>/dev/null";
$out=`$out`;
$out=~/translatedText":"(.*?)"/;
if($notify){`notify-send -i '$icon' 'google翻译' "$1"`;}
else{print $1;}
我的这个,是加到面板的图标的。lz也试试。
这代码,有性格。

咨询个问题,perl 如何实现less 或者 more 的功能,如果超出一页,则自动分页,盼解答。

Re: google 字典perl 脚本

发表于 : 2011-02-24 15:11
Drdi
好例子

刚开始学perl mark

Re: google 字典perl 脚本

发表于 : 2011-03-05 13:39
Drdi
zoujichun 写了:
eexpress 写了:

代码: 全选

☛ cat bin/g-translate.pl 
#!/usr/bin/perl

$icon="$ENV{HOME}/图片/图标/国旗/cn-en-128.png";
#$icon="/home/exp/.icons/Mashup/apps/config-language.png";
use Getopt::Long;
GetOptions('n'=>\$notify);
my $out,$in,$str;
# 无参数时,使用剪贴板内容。
$in=join('+',@ARGV);if(!$in){$in=`xsel -o`;} if(!$in){exit;}
$in=`echo "$in"|uni2ascii -a J -s`;
$in=~s/ /+/g; $in=~s/["']//g;
chomp $in;
if($in=~/%/){$str="zh-CN%7Cen";}else{$str="en%7Czh-CN";}
$out="curl -e http://www.my-ajax-site.com 'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=$in&langpair=$str' 2>/dev/null";
$out=`$out`;
$out=~/translatedText":"(.*?)"/;
if($notify){`notify-send -i '$icon' 'google翻译' "$1"`;}
else{print $1;}
我的这个,是加到面板的图标的。lz也试试。
这代码,有性格。

咨询个问题,perl 如何实现less 或者 more 的功能,如果超出一页,则自动分页,盼解答。


同问!!

还有我想把lz的代码中那段网址截取出来

perl -nwe "/(www.*?)'/;print $1" dict

这样怎么全部都显示出来了呢?

而且我看书上代码段两边是用的单引号 但我只能用双引号不然会出错 :em20