perl编写之前的一些习惯细节

2017-03-05 22:28:44来源:CSDN作者:u011729865人点击

  • 变量
  • 环境变量的传递
  • 文件
  • 文件目录文件名路径的解析操作
  • 命令行参数
  • 调用shell命令
  • 变量的debug
  • 主体结构的划分
  • 脚本执行的关键信息保存在日志里
  • 代码整理

下述信息,仅供自己编写新脚本之前的回顾内容。
虽然perl有很多实用的模块,可以利用;但是不使用模块编写代码,更容易理解。

变量

无非就是标量、数组、散列。

  • 散列是以字符串作为索引的。
  • 判断变量是否满足什么条件时,推荐用defined先判别变量值是否undef,否则会引起不必要的麻烦;或者建立新变量的时候,赋值为空。
  • 相关变量集合,尽量用散列来吸收;不要定义太多变量。这样方便理解,更方便perl -d做debug分析的时候,watch这个变量。
  • 变量命名,最好统一使用一个规则。个人推荐帕斯卡命名法;如果加一个小写字母表明变量类型就更好了。

环境变量的传递

环境变量,在perl里就是散列类型。
%ENV
$ENV{‘key’}=”value”;
但是该方法只能在该进程中有效,当退出该进程时,赋值将不会继续存在;同时其它进程也不会知道此次赋值。

文件

用open就挺方便;记着是三个参数就行,配合or die检查文件是否打开成功。
比如:
open my $FileXXX, “<”,”/home/XXX.dat” or die “Error: Cannot open this file”;

文件目录、文件名、路径的解析操作

用shell命令,就挺方便。
File::Basename

命令行参数

Getopt::Long模块是用于解析命令行参数的perl模块

调用shell命令

用反撇号`,返回值是内部print或者echo等形式产生的。
可以利用管道符|,或者| xargs -i echo {};强制产生返回值。

变量的debug

Smart::Comment模块

主体结构的划分

  • 主程序划分为多个子程序
    1. 子程序的参数传递,尽量用散列来吸收;不要定义太多变量。这样方便理解,更方便perl -d做debug分析的时候,watch这个变量。
  • 子程序以package方式调用

脚本执行的关键信息保存在日志里

用open产生一个perl.log就挺方便。
Log::Log4perl

代码整理

perltidy命令。需要自行安装。很好。

参考文档:
《Perl高效编程》

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台