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