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

原文地址:https://www.cnblogs.com/herzog/p/3812818.html