Perl 使用 Log::Log4perl 输出日志的用法

用 Java 的很少有人对 log4j 感觉陌生,这是 Apache  上的项目。同时 Apache 上也有针对其他语言的 Log 组件,如 log4cxx、log4net、log4php。

所用 Perl 时也会想想:Perl 该用什么日志模块呢? log4perl?google 一下果然后,只不过它不是由 Apache 出品。
该项目原来在 http://log4perl.sourceforge.net/,现已移到 http://mschilli.github.com/log4perl/

下载地址:http://search.cpan.org/~mschilli/Log-Log4perl/ (要编译的)
使用文档:1. Tutorial(Retire your debugger, log smartly with Log::Log4perl)
             2. Manual
             3. Frequently Asked Questions

当然,你也可以用 CPAN 和 PPM(如果安装的是 ActivePerl) 来安装 Log::Log4perl 模块。 阅读全文 >>

Perl 语言概览,高屋建瓴、欲招人之耳目(四)

1.6 流程控制

1.6.1 什么是真

  ·除了””和”0”,所有字符串为真
  ·除了 0,所有数字为真
  ·所有引用为真
  ·所有未定义的值为假.

1.6.2 If 和 unless 语句

   if (case1) {...} elsif (case2) {...} elsif (case3) {...}  else {...}

为节约版面,全写在一行了。if/elsif/else 后的大括号是必须的,这和 C/Java中不一样,elsif 同 pl/sql 的写法。

象在英语中说“如果这不是真的,就做某事”,你可以使用 unless 语句: 阅读全文 >>

Perl 语言概览,高屋建瓴、欲招人之耳目(三)

1.4 文件句柄

文件句柄只是你给文件,设备,网络套接字或管道起的一个名字,这样可以帮助你分清你正在和那个文件或设备通讯,同时掩藏了如缓冲等复杂性。

你可以使用 open 创建并关联一个文件。open 函数需要至少两个参数:文件句柄和你希望与文件句柄关联的文件名。Perl 也给你一些预定义(并且预先打开)的文件句柄。STDIN 是我们程序的标准输入,

STDOUT 是标准输出。STDERR 标准错误输出。

因为你可以用 open 函数创建用于不同用途(输入,输出,管道)的文件句柄,因此你必须指定你需要哪种类型。 阅读全文 >>

Perl 语言概览,高屋建瓴、欲招人之耳目(二)

1.2.4 复杂数据结构

$wife{"Jacob"} = ("Leah", "Rachel", "Bilhah", "Zilpah");   # 错误

$wife{"Jacob"} = ["Leah", "Rachel", "Bilhah", "Zilpah"];   # 正确

用[] 中括弧来将一个列表转换成一个标量。

$wife[0] = ["Leah", "Rachel", "Bilhah", "Zilpah"];  #正确

$wife = ["Leah", "Rachel", "Bilhah", "Zilpah"]; #错误

左边要写成 $wife{"Jacob"} 或 $wife[0] 表明 wife 是一个数组或散列,只有对数组或散列才能这样赋值。

访问方式用 $wife{"Jacob"}[0] 或 $wife[0][0] 阅读全文 >>

Perl 语言概览,高屋建瓴、欲招人之耳目(一)

1. 使用帮助手册

如果你是在 Linux/Unix 下,那么 Man 给我们准备好了各色点心,用 man 加上下面中的类别名就能查阅到对应的帮助,如 man perldata 

手册页 内容
perl 有些什么 perl 手册页
perldata 数据类型
perlsyn 语法
perlop 操作符和优先级
perlre 正则表达式
perlvar 预定义变量
perlsub 子过程
prelfunc 内建函数
perlmod 如何令 Perl 模块工作
perlref 参考手册
perlobj 对象
perlipc 进程间通讯
perlrun 如何运行 Perl 命令,以及命令行开关
perldebug 调试
perldiag 诊断信息
手册页 内容
perlfaq1 关于 Perl 的通用信息
perlfaq2 获取和学习 Perl
perlfaq3 编程工具
perlfaq4 数据操作
perlfaq5 文件和格式
perlfaq6 正则表达式
perlfaq7 通用 Perl 语言信息
perlfaq8 系统交互
perlfaq9 网络

或分 FAQ 来分类手册,还能在手册中搜索内容,如

man perlfunc split      --- 搜索 split 函数的使用

man perlvar ARGV   --- 内置变量 ARGV 的帮助信息

阅读全文 >>

重拾久矣的 Perl 语言,力求扎实掌握这门动态脚本语言

曾经也因项目中一时之用接触过好几种动态脚本语言,但无一不是忘得几无痕迹。PHP做过几个项目、TCL/TK 是制作 IPMI 驱动安装程序之用,它有较小的解释器,并具带着桌面工具集 TK,做界面程序也方便。

提起 Perl,先前对它是有过两次的亲密接触,一次为自我修练,第二次为实现一个 Java 版的 Webmin 时,大量的参考了 Webmin 的 Perl 代码,最强烈的印象是彻底为它的正则表达式写法所征服了,从此对它也是藕断丝连。 阅读全文 >>