PERL代码摘录

1. 语法与数据结构###

#嵌套哈希的赋值和取值
$HashTable{$key} = [@Array] #这个是赋值
@Array = @{ $HashTable{$key} } # 这个是取值
#Perl 按照哈希值排序
#如果是按ASCII码(字符串)排序,则代码如下:
foreach my $key ( sort { $hash{$a} cmp $hash{$b} } keys %hash ) {
my $value = $hash{$key};
# do something with ($key, $value)4 }
#如果是按数字大小排列,则代码如下:
foreach my $key ( sort { $hash{$a} <=> $hash{$b} } keys %hash ) {
my $value = $hash{$key};
# do something

2. 时间和字符串###

  • 获取系统时间,按格式化字符串输出
   use Time::Local;
my $timestamp=time;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($timestamp);
my $y = $year + 1900;
my $m = $mon + 1;
#输出
print sprintf("%04d%02d%02d%02d",$y,$m,$mday,$hour);

3. 文件和目录操作###

# 获取本程序的文件名、路径和后缀名
use File::Basename;
my ($myFile,$myPath,$mySuffix) = fileparse($0,qr{.pl}); # 获取文件夹下文件列表
my $RootDir = "E:/Research/IMSTB/20110408/";
my @files=glob("$RootDir"."*.xls"); # 判断一个文件or目录是否存在
(-e $dirReport) or die "文件路径不存在!\n"; #复制文件
use File::Copy ;
if( -e $fpath) {
# 复制文件
copy($fpath,$rootDir."/data") or warn "Could not copy files\n";
}else {
die "$fpath not found! $!\n";
}

4. 函数###

  • 实现动态函数名
   my %h_sub;
$h_sub{MSCHO} = \&mscho;
$h_sub{MAPHO} = \&mapho;
#调用
do $h_sub{$tidx}->($para);

5. 文件读写###

  • 一次性读取文本文件所有内容
   my @alarm_tmp = <IH0>;
$alarm_text{$tidx} = \@alarm_tmp;

6. 系统与环境###

#Perl 获取Windows当前登录的用户名
use Win32;
$username = Win32::LoginName();
print "User name: $username\n";

创建于:2014.06.27

最后更新:2015.01.24

上一篇:x01.os.18: MBR


下一篇:1.zookeeper原理解析-数据存储之Zookeeper内存结构