Perl高级编程
文章平均质量分 52
Perl高级编程
优惠券已抵扣
余额抵扣
还需支付
¥39.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
scan724
这个作者很懒,什么都没留下…
展开
-
perl 通过信号控制执行超时
DBI connect('//192.168.137.1:1521/','',...) failed: ORA-12170: TNS: 连接超时 (DBD ERROR: OCIServerAttach) at check_oracle.pl line 16.Cannot conenct db: ORA-12170: TNS: 连接超时 (DBD ERROR: OCIServerAttach)原创 2024-01-27 13:59:17 · 753 阅读 · 0 评论 -
perl 解析日志
perl解析日志原创 2023-02-09 15:41:25 · 455 阅读 · 0 评论 -
perl 读取OS环境变量
perl原创 2023-01-03 20:18:47 · 943 阅读 · 1 评论 -
perl 采集端口访问关系
use Data::Dumper;use LWP::UserAgent;my $ua = LWP::UserAgent->new;$ua->timeout(10);$ua->env_proxy;$ua->agent("Mozilla/8.0");if ( $#ARGV < 1 ){ print "Usage perl collect_netstat.pl Ipaddr Port :!\n"; exit(-1); };my...原创 2022-05-21 22:41:17 · 231 阅读 · 0 评论 -
perl引用
[root@yyjk ~/sbin/perl]#perl a1.plARRAY(0x10d7160)1234aa4aaARRAY(0x10ec090)ARRAY(0x10ec090)[root@yyjk ~/sbin/perl]#cat a1.pl$arr1=[1,2,3,4];@arr2=('a','b','c','d');print $arr1;print "\n";print @{$arr1};print "\n";$hash{'aa'}=@arr2;print %hash原创 2022-05-20 13:03:05 · 158 阅读 · 0 评论 -
perl Parallel::ForkManager
[oracle@yyjk tmp]$ cat p2.pluse DBI; use Crypt::RC4::XS;use HTTP::Date qw(time2iso str2time time2iso time2isoz); use Net::SMTP;use Encode;use JSON;use Sys::SigAction qw( set_sig_handler );use Net::Ping;use POSIX;no warnings;use Parallel::For...原创 2021-06-16 19:54:53 · 235 阅读 · 0 评论 -
Perl文件句柄和文件描述符
缺省打开的句柄STDIN,STDOUT,STDERR,文件描述符为0,1,2 不能调用open就可以直接访问 STDIN: 键盘输入,控制台 STDOUT:屏幕,显示屏 STDERR: 错误输出,显示屏 文件句柄就是程序里代表Perl进程与外界之间的I/O联系的名字,也就是说它是这种联系的名称,不一定是文件名文件描述符: 访问文件时用来代表文件的数字。原创 2015-01-06 09:23:54 · 867 阅读 · 0 评论 -
Perl DBI使用绑定变量
sh-3.2$ cat a7.pl#!/usr/bin/perl use strict;use DBI;my $dbName = 'orcl'; my $dbUser = 'test'; my $dbUserPass = 'test'; my $dbh = DBI->connect("dbi:Oracle:$dbName", $dbUser, $dbUserPass) or原创 2015-01-05 16:48:27 · 778 阅读 · 0 评论 -
Perl自动格式输出select 结果
#!/usr/bin/perl use strict;use DBI;my $dbName = 'orcl'; my $dbUser = 'test'; my $dbUserPass = 'test'; my $dbh = DBI->connect("dbi:Oracle:$dbName", $dbUser, $dbUserPass) or die "can't connec原创 2015-01-05 11:10:49 · 742 阅读 · 0 评论 -
Ping 1000个包看丢跑率
use warnings; use Net::Ping; $J=0;for ($i = 1;$i <= 1000;$i++){ if ($#ARGV <0){ print "请输入一个参数\n"; exit(-1); } $host = $ARGV[0]; $p = Net::Ping->new("icmp");原创 2014-12-31 14:44:36 · 8926 阅读 · 1 评论 -
正则单行和多行处理
m 将待匹配串视为多行,^符号匹配字符串的起始或新的一行的起始;$符号匹配任意行的末尾。以下例只匹配第一行为a,否则无匹配;sh-3.2$ cat a6.pl $line='abc';if ($line =~ /^(.*)$/m){print $&."\n"};sh-3.2$ perl a6.pl a当成多行处理,只能匹配到a$& ---匹配的内容s 将待匹配串视原创 2015-01-05 14:04:04 · 741 阅读 · 0 评论 -
Perl-DBI<1>
[oracle@jhoa 3]$ perl dbi.pl sh-3.2$ csh: c: command not foundsh-3.2$ cat dbi.pl #!/usr/bin/perl use strict; use DBI; my $dbName = 'orcl'; my $dbUser = 'test'; my $dbUserPass = 'test';原创 2015-01-06 09:31:34 · 631 阅读 · 0 评论 -
Net::Ping 模块详解
NAME Net::Ping - check a remote host for reachability检查远程主机是否可达SYNOPSIS简介 use Net::Ping; $p = Net::Ping->new(); print "$host is alive.\n" if $p->ping($host);原创 2015-01-23 15:01:12 · 1794 阅读 · 0 评论 -
Perl Net::ping
use Net::Ping;while (1==1){ $host="202.101.172.35"; $p = Net::Ping->new("icmp"); print "$host is lost.\n" unless $p->ping($host,2); } $p->close();$proto sp原创 2015-01-23 09:39:53 · 1053 阅读 · 0 评论 -
Perl 懒惰匹配
[grid@devrac1 ~]$ cat sum.pl if ( $#ARGV print "please input your file!\n"; exit(-1); } $logfile= $ARGV[0]; my %log;open (LOG ,"while () {chomp;if ($_ =~ /^\[\原创 2015-02-16 10:46:25 · 855 阅读 · 0 评论 -
perl 统计IP
[root@june3 ~]# grep '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' log.txt | awk -F ':' '{print $1}'| awk '{a[$1]=a[$1]+1} END{for (i in a) print i,a[i]}' 1.1.1.1 42.2.2.2 610.1.1.1 3原创 2015-02-15 21:40:54 · 590 阅读 · 0 评论 -
Perl 域名转换为IP
use HTTP::Date qw(time2iso str2time time2iso time2isoz);use Net::Ping;use Socket;my @array=( "www.baidu.com" );while (1==1){my $CurrTime = time2iso(time()); foreach $host (@a原创 2015-03-03 18:12:38 · 571 阅读 · 0 评论 -
Perl <> 符号
<> 行输入符读取数据流[oracle@dwh1 perl]$ cat 4.pl #!/usr/bin/perlprint "This is my first perl program\n";$a=<>; ## 从控制台读入字符窜print $a;[oracle@dwh1 perl]$ perl 4.pl This is my first perl programaaaaaaaa原创 2014-12-30 15:03:11 · 683 阅读 · 0 评论 -
利用hash 数组打印标题
##使用hash数组my %hash=("1","HOST", "2","FILESYSTEM", "3","TYPE", "4","SIZE#", "5","USED", "6","AVAIL", "7","USE", "8","MOUNTED", "9",原创 2015-01-28 22:07:55 · 533 阅读 · 0 评论 -
Perl 自增问题
[root@june3 ~]# cat 2.shfor((i=1;i<=10;i++))doecho $idoneecho "last \$i is $i\n";[root@june3 ~]# sh ./2.sh12345678910last $i is 11\n$i最后的值是11--------------------------------------原创 2015-02-17 13:19:07 · 1504 阅读 · 0 评论 -
Perl 利用hash 数组累加
[root@june3 ~]# cat a2.pl %log;foreach (1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,5,6) {print "\$log{$_} is $log{$_} \n";$log{$_}++;};while(my($ip, $times) = each %log) { print "$ip $times\n";原创 2015-02-17 08:52:34 · 2304 阅读 · 0 评论 -
Perl 正则详述
模式匹配,在字符串中寻找特定序列的字符指定模式:由斜线包含,/def/即模式def。匹配操作符 =~、!~模式匹配的3种类型:m//模式匹配,s///匹配并替换(类似linux的sed命令),tr///逐一替换,翻译+: 一个或多个相同的前导字符(模式). 如:/de+f/ 匹配的是def,deef,deeeef等。如/d原创 2015-02-16 10:44:44 · 521 阅读 · 0 评论 -
Perl-正则<2>
[oracle@jhoa 1]$ cat 5.pl my $string = "This string contains the number 25.11.";if ($string =~ /-?(\d+)\.?(\d+)/){print "\$1 is $1\n"};if ($string =~ /-?(\d+)\.?(\d+)/){print "\$2 is $2\n"};[orac原创 2014-12-22 15:24:47 · 554 阅读 · 0 评论 -
Perl-正则<1>
正则表达式:a # 匹配字母a\$ #匹配字母$\n #匹配换行符[a-z] #匹配任何一个小写字母. #匹配除\n以外的任意字符\1 #反向引用所匹配到的第一组捕获内容* 匹配0个、1个或多个相同字符?匹配0个或1个该前一个字符abc* 表示匹配abc abd abccc ab+:一个或多个相同的前导字符(模式)grep:正则表达式只对简单变量匹配,原创 2014-12-21 21:54:32 · 476 阅读 · 0 评论 -
Perl日期处理
[root@june2 ~]# cat 2.pl use POSIX qw(strftime);my $yesterday = strftime "%Y-%m-%d", localtime(time-86400);my $today = strftime "%Y-%m-%d", localtime;my $tomorrow = strftime "%Y-%m-%d", localtime原创 2014-12-20 15:50:03 · 613 阅读 · 0 评论 -
Perl 排序
[oracle@june2 2]$ cat 1.pl my @elements = sort qw(hydrogen helium lithium athton);print "\@elements is @elements\n";[oracle@june2 2]$ perl 1.pl @elements is athton helium hydrogen lithium---去除ui原创 2014-12-20 21:59:28 · 446 阅读 · 0 评论 -
Perl--子程序传参
[oracle@june2 ~]$ cat 11.pl #!/usr/bin/perl#use strict; #use warnings; use File::Path; use File::Copy; #use Net::FTP; sub printlog { print "\@_ is @_\n"; my ($LogInfo)= @_;原创 2014-12-20 11:23:20 · 768 阅读 · 0 评论 -
Perl 回调函数和闭包
在计算机程序设计中,回调函数,或简称回调(Callback),是指通过函数参数传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序。就是向函数的参数为 一个函数的引用[oracle@jhoa 3]$ cat a1.pl $cd = sub {print "hello world"};print "\$cd id $cd\n";sub test {原创 2015-01-09 15:08:07 · 1147 阅读 · 0 评论 -
2个半小时 学PERL
http://qntm.org/files/perl/perl.html 2个半小时 学PERLPerl是一个动态的,动态类型,高级,脚本(解释)语言与PHP和Python语言很像,Perl的语法内嵌了很多古老的shell脚本工具,这是对它的混乱符号的过度使用而著名其中大部分是不能google到的,Perl的脚本语言遗产使它非常适合编写胶水代码:把原创 2015-01-08 14:56:33 · 1090 阅读 · 0 评论 -
Perl use和require区别
use 发生在编译期间,代码没有运行use是在当前默认的@INC里面去寻找,一旦模块不在@INC中的话,use是不可以引入的,但是require是可以指定路径require 是编译时引入[oracle@dwh1 lib]$ pwd/oracle/dev/lib[oracle@dwh1 lib]$ cat Mypack.pm use strict;use warnings;原创 2015-01-09 10:21:23 · 1229 阅读 · 0 评论 -
perl ^符号
[oracle@june2 perl]$ cat a4.pl my $a = "abe";if ($a =~ /a[^d]e/){print "1111111\n"};[oracle@june2 perl]$ perl a4.pl 1111111[oracle@june2 perl]$ cat a4.pl my $a = "ade";if ($a =~ /a[^d]e/){pri原创 2014-12-22 21:12:47 · 1751 阅读 · 0 评论 -
temp
捕获变量: $1,$2,$3在使用正则表达式解析并捕获文本时,经常用到捕获变量$1,$2,$3等,依次类推。捕获变量与正则表达式中的圆括号相对应。正则表达式内的没对圆括号都会捕获括号内匹配的文本,并将其存储到捕获的变量中。[oracle@june2 perl]$ cat a5.pl my $a = 'http://www.perl.org/index.html';if ($a原创 2014-12-22 21:52:20 · 430 阅读 · 0 评论 -
Perl $#ARGV
[oracle@dwh1 ~]$ cat 4.plif ($#ARGV <0){ print "请输入一个表名参数";print "\$#ARGV is $#ARGV\n"; exit(-1); }else{print "\$#ARGV is $#ARGV\n";}[oracle@dwh1 ~]$ perl 4.pl请输入一个表名参数$#ARG原创 2014-12-31 13:38:45 · 2456 阅读 · 0 评论 -
perl编写unload脚本
#!/usr/bin/perl use strict;use DBI;my $dbName = 'dwh1';my $dbUser = 'dwm';my $dbUserPass = 'dwm';my $dbh = DBI->connect("dbi:Oracle:$dbName", $dbUser, $dbUserPass) or die "can't connect to datab原创 2014-12-31 10:20:28 · 627 阅读 · 0 评论 -
Perl while 死循环
use warnings; use Net::Ping; while (1 == 1 ){ if ($#ARGV <0){ print "请输入一个参数\n"; exit(-1); } $host = $ARGV[0]; $p = Net::Ping->new("icmp"); print "$host is alive.原创 2014-12-31 14:23:05 · 1807 阅读 · 0 评论 -
Perl 去掉行分割符
[oracle@dwh1 perl]$ cat 9.pl open my ($fh),'<',"1.txt" or die;foreach () {chomp ($_);print "$_";};[oracle@dwh1 perl]$ cat 1.txt aaaaaaaabbbbbbbbccccccccddddddddeeeeeeeeffffffffgggggggg[o原创 2014-12-30 15:04:02 · 660 阅读 · 0 评论 -
Perl 箭头符号
=>[oracle@dwh1 perl]$ cat a1.pl my %a = ( a=>100, b=>200, c=>300);print "$a{a}\n";[oracle@dwh1 perl]$ perl a1.pl 100->[oracle@dwh1 perl]$ cat a1.pl my %a = ( a=>100,原创 2014-12-30 16:52:52 · 972 阅读 · 0 评论 -
Perl ping监控
use warnings; use Net::Ping; if ($#ARGV <0){ print "请输入一个参数\n"; exit(-1); } $host = $ARGV[0]; $p = Net::Ping->new("icmp"); print "$host is alive.\n" if $p->ping($host,5); syst原创 2014-12-30 10:59:09 · 697 阅读 · 0 评论 -
PERL<引用1>
[oracle@jhoa 2]$ cat a2.pl foreach $key (keys %main::) {print "\$$key => $main::{$key}\n";}[oracle@jhoa 2]$ perl a2.pl $/ => *main::/$stderr => *main::stderr$key => *main::key$utf8:: => *main:原创 2014-12-25 21:02:23 · 509 阅读 · 0 评论 -
Perl 回调函数例子
$label->bind("" => [\&move, Ev('k')]);sub move { my $key = shift; if ($key eq 'k') { move_left(); } elsif ($key eq 'l') { move_right(); }}原创 2015-01-12 11:10:02 · 817 阅读 · 0 评论