Category Archives: Perl

Perl中切割字符串 限定分为几组

在Perl中,切割字符串很简单。
my ($k, $v) = split(/\t/, $string);
但如果数据中含有不止一个分隔符\t呢,比如这样:
a\tb\tc
此时,需要给spilit第三个参数,一个正整数,表示至多分为多少组。比如我们想只使用第1个分隔符,切分为2部分,则输入2。
my($first, $rest) = split(/\t/, $string, 2);
 [......]

继续阅读

Perl中如何让Hash的值为数组

这涉及到Perl的scalar和Array语境问题。

有问题的代码:
$new_hash{$some_key1} = @some_array1;

foreach($newhash{$some_key1}) {
print $_
}
打印的结果是只输出了一个元素,其值为数组的长度。

这里的问题是,赋值给Hash的Value是数组的长度,需要强制使用数组语境@{$hash{$key}}:
@{$new_hash{$some_key1}} = @some_array[......]

继续阅读

[转]Perl使用Getopt获取命令行参数

 

代码示例如下:
use Getopt::Std;
my %opt;
getopts('d:f:p', \%opt);
if($opt{p}){
...
}
if($opt{d}){
$dFile=$opt{d};
}
解释一下"d:f:p",d和f后有冒号,表示-d,-f后面要跟参数。p后面没有冒号,表示-p后面不带参数。

而且-d,-f后所跟的参数分别赋给变量$opt_d和$opt_f。对于变量$opt_p,若命[......]

继续阅读