2011/12/7 Fayland Lam <fayland@gmail.com>:
> http://perlchina.github.com/advent.perlchina.org/2011/Imager_QRCode.html
>
> =for advent_year 2011
>
> =for advent_day 7
>
> =for advent_title Imager::QRCode
>
> =for advent_author CGI.NET
>
> M<Imager::QRCode> 有趣的二位码生成模块。
>
> 随着电子商务的兴起,二维码这种东西越来越多的出现在我们的生活中,想不想给你的用户也拥有一份属于自己网站的二维码呢?那用Imager::QRCode就没错了。
>
> Imager::QRCode是一套基于开源二维码生成库libqrencode的模块,这两个的作者都是日本人。
>
> Imager::QRCode自带了libqrencode的源码,并且在安装的时候会自动编译,所以你不用去专门下载libqrencode而只需要使用CPAN正常安装即可。
>
> 需要说明的是Imager::QRCode依赖Imager模块,并且生成的图片格式也是依赖Imager模块能产生的格式。所以如果你希望生成GIF格式的文件却发现没有任何效果不妨先检查下你所装的Imagerm模块是否能正常生成GIF格式的文件。
>
>
> Imager::QRCode使用的方法非常简单:
>
> =begin code
>
> #!/usr/bin/perl -w
> use Imager::QRCode;
> my $qrcode = Imager::QRCode->new(
> size => 2,
> margin => 2,
> version => 1,
> level => 'M',
> casesensitive => 1,
> lightcolor => Imager::Color->new(255, 255, 255),
> darkcolor => Imager::Color->new(0, 0, 0),
> );
> my $img = $qrcode->plot("You infomation here!");
> $img->write(file => 'qrcode.gif', type=>'gif') or die $img->errstr;
>
> =end code
>
> 有关Libqrencode的信息可以访问 L<http://fukuchi.org/works/qrencode/index.html.en>
> 更多的使用方法请参阅 perldoc M<Imager::QRCode>。
>
> 谢谢。
>
>
> --
> Fayland Lam // http://www.fayland.org/
>
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
> 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
> 要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
2011年12月7日星期三
Re: [PerlChina] 2011 CN Perl Advent Day 7: Imager::QRCode
很不错呀
[PerlChina] 2011 CN Perl Advent Day 7: Imager::QRCode
=for advent_year 2011
=for advent_day 7
=for advent_title Imager::QRCode
=for advent_author CGI.NET
M<Imager::QRCode> 有趣的二位码生成模块。
随着电子商务的兴起,二维码这种东西越来越多的出现在我们的生活中,想不想给你的用户也拥有一份属于自己网站的二维码呢?那用Imager::QRCode就没错了。
Imager::QRCode是一套基于开源二维码生成库libqrencode的模块,这两个的作者都是日本人。
Imager::QRCode自带了libqrencode的源码,并且在安装的时候会自动编译,所以你不用去专门下载libqrencode而只需要使用CPAN正常安装即可。
需要说明的是Imager::QRCode依赖Imager模块,并且生成的图片格式也是依赖Imager模块能产生的格式。所以如果你希望生成GIF格式的文件却发现没有任何效果不妨先检查下你所装的Imagerm模块是否能正常生成GIF格式的文件。
Imager::QRCode使用的方法非常简单:
=begin code
#!/usr/bin/perl -w
use Imager::QRCode;
my $qrcode = Imager::QRCode->new(
size => 2,
margin => 2,
version => 1,
level => 'M',
casesensitive => 1,
lightcolor => Imager::Color->new(255, 255, 255),
darkcolor => Imager::Color->new(0, 0, 0),
);
my $img = $qrcode->plot("You infomation here!");
$img->write(file => 'qrcode.gif', type=>'gif') or die $img->errstr;
=end code
有关Libqrencode的信息可以访问 L<http://fukuchi.org/works/qrencode/index.html.en>
更多的使用方法请参阅 perldoc M<Imager::QRCode>。
谢谢。
Fayland Lam // http://www.fayland.org/
--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
2011年12月6日星期二
[PerlChina] 2011 CN Perl Advent Day 6: BerkeleyDB
http://perlchina.github.com/advent.perlchina.org/2011/BerkeleyDB.html
--
Fayland Lam // http://www.fayland.org/
--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
=for advent_year 2011
=for advent_day 6
=for advent_title BerkeleyDB
=for advent_author Fayland Lam
M<BerkeleyDB> 是个高性能的数据库。
当您需要操作一个极其巨大的文件,需要构造一个 super big 的 hash 或者 array 的时候,内存可能就是您最大的烦恼所在。而 BerkeleyDB 可以通过硬盘空间来保存该 hash 或者 array,到时候可以快速定位和 sort 之类,来完成您的需求。
BerkeleyDB 的详细介绍和设计可以参阅 A<http://www.aosabook.org/en/bdb.html|The Architecture of Open Source Applications> 的章节。
在 Ubuntu 之类的系统下可以通过 $ sudo apt-get install libberkeleydb-perl 来安装,FreeBSD 可以到 /usr/ports/databases/p5-BerkeleyDB 来 make install, Win32 下不支持,其它的可以 Google 得到安装指南。
在单线程的情况下,一个简单的例子如下:
=begin code
use FindBin qw/$Bin/;
use BerkeleyDB;
my $berkeleydb_temp_file = "$Bin/tmp.berkeleydb"; # temp file for BerkeleyDB
tie my %data, 'BerkeleyDB::Hash',
-Filename => $berkeleydb_temp_file,
-Flags => DB_CREATE|DB_TRUNCATE
or die "Cannot create file: $! $BerkeleyDB::Error\n";
open(my $fh, '<', 'RealBigFile.log') or die "Can't open: $!";
while (my $line = <$fh>) {
## some code that %data will be a real very big hash
## we just need the first line and the last line which matches the $pattern
my $pattern = get_pattern($line);
if (exists $data{"start_$pattern"}) {
$data{"end_$pattern"} = $line;
} else {
$data{"start_$pattern"} = $line;
}
}
close($fh);
# now working on the %data
=end code
你可以不停的 ls -ls 来查看 tmp.berkeleydb 的大小,顺便 monitor 下内存。
BerkeleyDB 对多线程的支持也很不错,支持数千并发线程,最大 256TB 数据。在多线程的情况下,需要使用 BerkeleyDB::Env cds_lock 保证数据安全。简单的例子如下:
=begin code
my $env = new BerkeleyDB::Env
-Home => $tmp_dir,
-Flags => DB_CREATE|DB_INIT_CDB|DB_INIT_MPOOL
or die "cannot open environment: $BerkeleyDB::Error\n";
my $db = tie my %data, 'BerkeleyDB::Hash',
-Filename => $berkeleydb_temp_file,
-Flags => DB_CREATE,
-Env => $env
or die "Cannot create file: $! $BerkeleyDB::Error\n";
my $pm = new Parallel::ForkManager(4);
foreach my $i (1 .. 1000) {
$pm->start and next; # do the fork
my $lock = $db->cds_lock();
$data{$i} = $i * 2;
$db->db_sync();
$lock->cds_unlock();
$pm->finish; # Terminates the child process
}
$pm->wait_all_children;
=end code
更多的使用方法请参阅 perldoc M<BerkeleyDB>。
谢谢。
Fayland Lam // http://www.fayland.org/
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
2011年12月5日星期一
[PerlChina] 2011 CN Perl Advent Day 5: Data::MessagePack
http://perlchina.github.com/advent.perlchina.org/2011/MessagePack.html
--
Fayland Lam // http://www.fayland.org/
--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
=for advent_year 2011
=for advent_day 5
=for advent_title Data::MessagePack
=for advent_author Fayland Lam
很多时候我们经常会碰到,要将某个对象或者变量保存起来,然后在另外的时间或者地点重新使用它。这种用途非常广泛,但是您可能没有发现。比如当您用 Cache 模块的时候,我们都需要将要保存的东西先转化成 binary 或者文本格式,然后再保存到缓存里。
在计算机世界,这种做法叫做 B<serialize>。
Perl 里最常见的是 M<Storable>。Storable 很古老但却最常用。它的缺点之一是不垮语言的。你无法用其他语言来 deserialize 出保存的东西。但是它很强大,可以 serialize 复杂的模块实例。
另外常用的有 M<JSON> 甚至 M<YAML>。JSON 更流行一些。它们的优点在于不 deserialize 也可以直接看到内容。
而今天我们要介绍的是 M<Data::MessagePack>。它相对 JSON 的优点在于小(节省内存)而且快速。它也是跨语言的,大部分流行的语言支持都可以在 A<http://msgpack.org/> 里找到。
它的 RPC 实现是 M<AnyEvent::MPRPC>。
使用例子摘抄 perldoc:
=begin code
use Data::MessagePack;
my $mp = Data::MessagePack->new();
$mp->canonical->utf8->prefer_integer if $needed;
my $packed = $mp->pack($dat);
my $unpacked = $mp->unpack($dat);
=end code
更多更详细的可以查阅模块文档和 msgpack.org 网站。
谢谢。
Fayland Lam // http://www.fayland.org/
--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
2011年12月4日星期日
Re: [PerlChina] 2011 CN Perl Advent Day 2 - qr/Moo?/
小牧今晚会把老的导上去。
--
---------------------------
Achilles Xu
--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
在 2011年12月4日 下午4:47,Qiang (James) <shijialee@gmail.com>写道:
On 12/02/2011 07:07 PM, cnhack TNT wrote:
> advent.perlchina.org <http://advent.perlchina.org> 谁在管理?能否更新上
> 去啊。。。现在居然跳到某个公司的页面去了。。。
>
现在服务器由 Achilles 提供,我把这个问题和他说了,修复好后就可以看到以前
的 advent 了。
Qiang
>
>
> 2011/12/2 Fayland Lam <fayland@gmail.com <mailto:fayland@gmail.com>>
> <mailto:perlchina@googlegroups.com>。>
> http://perlchina.github.com/advent.perlchina.org/2011/Moooo.html
>
> =for advent_year 2011
>
> =for advent_day 2
>
> =for advent_title qr/Moo?/
>
> =for advent_author Woosley Xu
>
> 每个人都喜欢面向对象编程,于是每个人都喜欢L<Moose>。但是有些时候,Moose
> 的加载速度成为了我们应用的瓶颈。这时候L<Mouse>出现了,L<Class::Accessor>
> 出现了。但这还不够,L<Mouse>仍然过于沉重,L<Class::Accessor>仍然只能提供
> 有限的特性。这时候,L<Moo>和L<Mo>出现了。
>
> L<Moo>与L<Mouse>最大的区别是:它完全不提供任何B<meta object protocol>,
> 因此它的速度更快,体积更小。在将来的1.0版本,它计划可以和L<Any::Moose>一
> 起使用。
>
> 如果你仍然觉得L<Moo>太过重量级,那么L<Mo>是你的下一个选择。L<Mo>核心只提
> 供B<new>,B<extends>,B<has>这些功能,但你可以按照需求加载你所需要的功能
> 。
>
> =begin code
>
> use Mo qw'build default builder coerce is required';
>
> sub BUILD {
> my $self = shift;
> ...
> }
>
> =end code
>
> 你还可以轻松的将L<Mo>压缩,然后包括到你的模块中去。
>
> =begin code
>
> >cat A.pm
>
> package A;
> # use Mo qw 'build default';
>
> >mo-inline A.pm
>
> >cat A.pm
>
> package A;
> # use Mo qw 'build default';
> # The following line of code was produced from the previous line by
> # Mo::Inline version 0.27
> no
> warnings;my$M=__PACKAGE__.::;*{$M.Object::new}=sub{bless{@_[1..$#_]},$_[0]};*{$M.import}=sub{import
> warnings;$^H|=1538;my($P,%e,%o)=caller.::;shift;eval"no
> Mo::$_",&{$M.$_.::e}($P,\%e,\%o,\@_)for@_;return
> if$e{M};%e=(extends,sub{eval"no
> $_[0]()";@{$P.ISA}=$_[0]},has,sub{my$n=shift;my$m=sub{$#_?$_[0]{$n}=$_[1]:$_[0]{$n}};$m=$o{$_}->($m,$n,@_)for
> sort keys%o;*{$P.$n}=$m},%e,);*{$P.$_}=$e{$_}for
> keys%e;@{$P.ISA}=$M.Object};*{$M.'build::e'}=sub{my($P,$e)=@_;$e->{new}=sub{$c=shift;my$s=bless{@_},$c;my@B;do{@B=($c.::BUILD,@B)}while($c)=@{$c.::ISA};exists&$_&&&$_($s)for@B;$s}};*{$M.'default::e'}=sub{my($P,$e,$o)=@_;$o->{default}=sub{my($m,$n,%a)=@_;$a{default}or
> return$m;sub{$#_?$m->(@_):!exists$_[0]{$n}?$_[0]{$n}=$a{default}->(@_):$m->(@_)}}};@f=qw[build
> default];use strict;use warnings;
>
> =end code
>
> 从 Moose 到 Moo 到 Mo,下一个会是 M ? :)
>
> 谢谢
>
>
> --
> Fayland Lam // http://www.fayland.org/
>
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论
> 组”论坛。
> 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
> 要取消订阅此网上论坛,请发送电子邮件至
> perlchina+unsubscribe@googlegroups.com
> <mailto:perlchina%2Bunsubscribe@googlegroups.com>。
> 若有更多问题,请通过
> http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
>
>
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
> 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
> 要取消订阅此网上论坛,请发送电子邮件至
> perlchina+unsubscribe@googlegroups.com。
> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN
> 访问此网上论坛。
--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
---------------------------
Achilles Xu
--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
Re: [PerlChina] perlchina@googlegroups.com 的摘要 - “1 个主题”有 2 个帖子
不错,赞一个!
2011-12-05
罗学
发件人: perlchina
发送时间: 2011-12-04 16:38:11
收件人: 摘要收件人
抄送:
主题: [PerlChina] perlchina@googlegroups.com 的摘要 - "1 个主题"有 2 个帖子
网上论坛: http://groups.google.com/group/perlchina/topics
- Fayland Lam <fayland@gmail.com> Dec 03 08:24PM +0800
http://perlchina.github.com/advent.perlchina.org/2011/Firefox.html
=for advent_year 2011
=for advent_day 3
=for advent_title WWW::Mechanize::Firefox
=for advent_author Fayland Lam
M<WWW::Mechanize::Firefox> 是个非常强大的工具。
第一步是安装。安装该模块之前,需要安装一个 firefox 的 A<
https://addons.mozilla.org/en-US/firefox/addon/mozrepl/|mozrepl> addon.
Install 完毕后,重启然后启动 MozRepl (Tools -> MozRepl -> Start), 然后 cpan
WWW::Mechanize::Firefox, 在安装的过程中,你可以看着 firefox, 你会发现它不停的打开 tab 然后做些测试,关掉
tab。如果某些 tests fail, 你可以 force install 该模块。
接下来做什么呢?大部分你用 firefox 加你双手能完成的任务,该模块都可以帮你自动化。
简单的比如登录,填写表单,提交然后解析 HTML。对比 M<WWW::Mechanize>, 它可以无视 JavaScript 的阻拦。
复杂的如运行 JavaScript, 模拟鼠标点击,触发 JavaScript 事件,截屏,保存文件,更改 firefox 配置等等。详细的可以参阅
M<WWW::Mechanize::Firefox::Examples>
下面是一个非常无聊的例子。但是除了该模块,你很难用其他模块来实现它。
=begin code
use strict;
use warnings;
use WWW::Mechanize::Firefox;
my $mech = WWW::Mechanize::Firefox->new();
$mech->get('
http://www.google.com/codesearch#search/&q=WWW::Mechanize::Firefox&type=cs'
);
print $_->{innerHTML} . "\n" foreach $mech->selector('div.GEQUXKXGJB
span:first-child');
=end code
谢谢。
--
Fayland Lam // http://www.fayland.org/
- Michael Zeng <galaxy2004@gmail.com> Dec 04 08:19AM +0800
厉害啊 , 能控制firefox
2011/12/3 Fayland Lam <fayland@gmail.com>
--
Yours Sincerely
Zeng Hong
您收到此邮件是因为您订阅了 Google 网上论坛 perlchina。
您可以通过电子邮件发帖。
要取消订阅此网上论坛,请发送一封空邮件。
有关更多选项,请访问此网上论坛。
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
Re: [PerlChina] Re: 写完 Advent Day 4 后,悲剧了。
谢谢!
很好用
--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
很好用
在 2011年12月4日 下午6:48,joe jiang <lamp.purl@gmail.com>写道:
Hi I have made one for the 4th day:)
=for advent_year 2011
=for advent_day 4
=for advent_title Getopt::Euclid
=for advent_author Joe Jiang
写脚本的时候,最麻烦的两件事,无非是写文档和设计用户接口。有了 Getopt::Euclid,这两件事情居然开始变得十分有趣了。应该说,文档驱>动的程序,这样的创意并不少见,可是用来作为用户接口,这真的还是让人觉得十分恰当。
相比其他的脚本参数分析模块,这个模块的知名度比较低,不过它的作者 Damian Conway 还是十分知名的。现在的维护者 Florent Angly 看起来
也是参数模块这方面的爱好者,一同被他收纳的还有 Getopt::Declare。
具体的使用方法可以参考以下的测试代码:
=begin code
#!/usr/bin/perl -wl
use Getopt::Euclid;
print for @{$ARGV{-i}};
=head1 NAME
demo-euclid - testing of module Getopt::Euclid
=head1 VERSION
This documentation refers to demo-euclid version 0.0.1
=head1 USAGE
demo-euclid [options] -i[n][file] <file>
=head1 REQUIRED ARGUMENTS
=over
=item -i[n][file] <file>
Specify input file
=for Euclid:
repeatable
file.type: readable
file.default: '-'
=back
=end code
有了以上的代码,你就可以这样测试一下了:
=begin code
$ perl demo-euclid.pl --version
This is demo-euclid.pl version 0.0.1
=end code
看上去还不错,这个工具脚本已经可以自动汇报版本号了!然后再测试一下正式的功能:
=begin code
$ perl demo-euclid.pl -i /etc/passwd -i /etc/group
/etc/passwd
/etc/group
=end code
这正是我们的工具需要的功能,也就是分行(因为 #! 行的末尾有个 l 选项)打印文件名。另外,文件不存在,或者不可读的时候,脚本还会自>动报错:
=begin code
$ perl demo-euclid.pl -i /etc/pass
Invalid "-i[n][file] <file>" argument.
<file> must be readable but the supplied value ("/etc/pass") isn't.
(Try: demo-euclid.pl --help)
$ perl demo-euclid.pl --help
Usage:
demo-euclid.pl -i <file>
...
=end code
看上去还挺专业的,连相应的帮助信息也有了。衷心希望你会喜欢上这个小模块!
2011/12/4 Michael Zeng <galaxy2004@gmail.com>//comfort 重要的东西注意备份啊,--
2011/12/4 cnhack TNT <cnhacktnt@gmail.com>
准备生成 html 后再 commit 的。。。。
2011/12/4 Fayland Lam <fayland@gmail.com>
童鞋要注意经常 git commit or svn ci。Thanks--
2011/12/4 cnhack TNT <cnhacktnt@gmail.com>
原文是《使用 AnyEvent::HTTP 的高速代理验证程序》55555....
2011/12/4 cnhack TNT <cnhacktnt@gmail.com>
欲哭无泪啊,写了一下午的 Day 4, 最后生成 html 的时候直接按 tab 做了这么个操作:cnhacktnt@Apollo:proxy$ pod2advent ae_proxy.pod > ae_proxy.pod
愣了一下,直接就悲剧了啊,还没 ci 到 git 里, 写的东西都没了。。。vim也退出了,连临时文件都没了。。。555,我敲了好几个小时啊。。。!
原文是《使用 AnyEvent::HTTP 的告诉代理验证程序》,现在只剩下代码了,算了,附上代码吧(见附件).
使用方式是,收集一部分待验证的 HTTP 代理地址,按如下格式存成 proxy.txt 文件:
然后使用如下命令:cat proxy.txt | perl ae_proxy.pl | tee ,result就可以看到结果了,验证8000多个代理,耗时28秒。(如果待验证代理数量不足最大并发数,至少也要5秒,因为超时时间为5秒)哭死!哭死!哭死!血泪的教训,同学们打命令别太快了。。。。。--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
--
Fayland Lam // http://www.fayland.org/
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
Yours Sincerely
Zeng Hong--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
订阅:
博文 (Atom)