存档

‘PERL/PHP技术’ 分类的存档

[perl]命令行命令备忘

2014年4月29日 没有评论

岁数大了,脑子不好用了,好多命令不经常用,容易忘。好记性不如烂笔头,记录备忘下。
一些引用:

http://www.ibm.com/developerworks/cn/linux/sdk/perl/l-p101/index.html

http://www.ibm.com/developerworks/cn/linux/sdk/perl/l-p102/index.html

具体使用

$ perl -MData::Dumper -e'print Dumper \@ARGV' a b -w
$VAR1 = [
          'a',
          'b',
          '-w'
        ];

$ perl -e 'print "$$\n"'
6321

-e 指定字符串以作为脚本(多个字符串迭加)执行
-M 导入模块
-I 指定目录以搜索标准位置前的模块 整洁性
-w 打开警告 -Mstrict 打开严格编译指示(pragma) 数据 -0 (这是个零)指定输入记录分隔符
-a 将数据分割成名为 @F 的数组 -F 指定分割时 -a 使用的模式(请参阅 perldoc -f split)
-i 在适当的位置编辑文件(请参阅 perldoc perlrun 以获取大量详细信息)
-c 进行perl的语法检查,但不执行perl命令.
-F 把缺省的分离号改为你想要的.例如把分离号定为非字符
-l 使用 -l 有两个效果,第一自动 chomp 输入分隔号,第二 把$/ 值付给 $\ ( 这样 print 的时候就会自动在末尾加 \n )
-n 使用 <> 将所有 @ARGV 参数当作文件来逐行运行,会将读入的内容隐式的逐一按行来遍历文件.
每一行将缺省保存在 $_ -p 和 -n 一样,但是还会打印 $_ 的内容 请注意 -p 开关和 -n 开关的使用.
当您想显式打印数据时,使用 -n 开关. -p 开关隐式地将 print $_ 语句插入到 -n 开关所产生的循环中.因此, -p 开关更适用于对文件进行的 完全处理,而 -n 开关更适用于 选择性文件处理,这样的处理只需打印特定数据. 

阅读全文…

分类: PERL/PHP技术 标签:

[perl] 变量内存占用及引用计数

2014年1月10日 1 条评论

一、变量内存占用
场景:
读入一个非常大的文本文件,大概180m,处理逻辑很简单,可以忽略
伪代码如下

#!/usr/bin/perl

open(FH,"ip.txt");

#my @a=<FH>;

while (<FH>){
    chomp;
    $a .= $_;
}

1. 当直接while 读取文件句柄时,使用pmap查看程序占用内存在220m左右,可以接受
2. 当把文件句柄读入数组时,使用pmap查看程序占用内存2.1g左右,使用惊人
阅读全文…

分类: PERL/PHP技术 标签:

[perl]数组与列表

2014年1月10日 没有评论

列表是标量的集合,数组是存储列表的变量。
更精确的说,列表指的是数据,而数组指的是变量。列表的值不一定放在数组里,但每一个数组变量都一定包含一个列表(即使列表可能是空的)。

列表与数组最主要的区别在于在标量环境中:数组被解释为其长度;而列表则被解释为其最后一个元素,此时列表相当于由逗号操作符组成的表达式。
测试代码:

@array = ( "a", "b", "c" );
$num   = @array;
$list  = ( "a", "b", "c" );
print
"The number of array elements is "$num";nThe last element of list is "$list".n";

阅读全文…

分类: PERL/PHP技术 标签:

[perl]引用与解引用

2014年1月10日 没有评论

perl引用的意义:可以实现动态调用不同函数,实现Hash和Array的多个函数参数同时传递

perl的引用相当于c中的指针,有以下几种类型
一 引用
声明方式

1 一般方式
$scalarref = \$foo;          #标量引用 SCALAR,  $foo='hello';
$constref  = \186_282.42;    #标量(常量)引用 SCALAR 
$arrayref  = \@arr;          #数组引用   ARRAY,   @arr=1..100;
$hashref   = \%hash;         #hash引用   HASH,%hash=('a'=>1,'b'=>2);
$coderef   = \&add;          #函数引用  CODE,sub add{($a,$b)=@_;  return $a+$b;}
$globref   = \*STDOUT;       #GLOB句柄引用

2 匿名方式
另外声明方式采用匿名方式声明 如下(针对数组,hash,函数)
$arrRef=[1,2,3,4,5];                #指向匿名数组的引用
$hashRef={'a'=>1,'b'=>2};           #指向匿名hash的引用
$subRef=sub{return 1;};             #指向匿名函数的引用

3 符号表声明方式
$scalarref = *foo{SCALAR};          # 和 \$foo 一样
$arrayref  = *ARGV{ARRAY};          # 和 \@ARGV 一样
$hashref   = *ENV{HASH};            # 和 \%ENV 一样
$coderef   = *handler{CODE};        # 和 \&handler 一样
$globref   = *foo{GLOB};            # 和 \*foo 一样
$ioref     = *STDIN{IO};            # ?...

阅读全文…

分类: PERL/PHP技术 标签:

[perl] pushmail & perlcgi

2013年7月11日 没有评论

代码地址:https://github.com/xiehc/perlcgicode
pushmail 取得解析的邮件后通过socket发到远程服务器,进行邮件推送
perlcgi 通过调用远程apache cgi,完成操作。此cgi是一套程序,会陆续发布

分类: PERL/PHP技术 标签:

监控mysql主从

2013年7月11日 没有评论

代码地址:perlmonitor

配置说明:
nagios add service config:
define service{
        use                             generic-service   ;service template
        host_name                       mysql10.4.16.133
        service_description             online_setget
        max_check_attempts              2
        normal_check_interval           5  ;minute
        retry_check_interval            1
        servicegroups                   SQL CHECK
        contact_groups                  mysqladmin
        check_command                   check_mysql_replication!10.4.16.133:3306,10.4.16.134:3307
        }
nagios add commond config:
define command{
        command_name check_mysql_replication
        command_line $USER1$/check_mysql_repl.pl $ARG1$ $ARG2$
        }

master mysql need create database...
dbname="mid_repl";
user="repl_monitor";
pass="monitor_mysql";
table="replication_test";

阅读全文…

分类: PERL/PHP技术 标签:

perl SIG

2013年6月6日 没有评论

#!/usr/bin/perl -w
use strict;
BEGIN {
# fatal handler setting.
$SIG{__DIE__} = $SIG{__WARN__} = \&handler_fatal;
}
# some perl code goes here
$a = 20;
$b = 0;
print $a/$b;

sub handler_fatal {
open HANDLE,">ERROR.txt";
print HANDLE "@_";
close HANDLE;
}

把DIE和WARN SIG 引用成函数

分类: PERL/PHP技术 标签: