1. 匹配了几次
$count=0;
while($string=~/"miao"/g){
$count+=1;
}

2. 计算哈希有多少个关键字
my $k=scalar (keys %hash);

3. 哈希按值的大小排列
foreach my $key (sort { $hash{$b} <=> $hash{$a} } (keys %hash)){
print OU "$keyn";
}
或者
my @keys = sort { $h{$b} <=> $h{$a} } keys %h;  #sort the hash table 一样的

4. 提示用户输入
print "please inputn";
chop($value=<STDIN>);#chop the lastN

5.检验一个数组是否为空
if (@array){
....
}

6. 把所有匹配的都找出来
my @tags=($lineIn=~/miao/g);

7.排序sort用法
1. 以数字顺序sort

@array = (8, 2, 32, 1, 4, 16);
print join('' '', sort { $a <=>; $b } @array), "n";

打印结果是:
1 2 4 8 16 32

与之一样的是:

sub numerically { $a <=>; $b };
print join('' '', sort numerically @array), "n";

这个很容易理解哦,它只是按自然数的顺序进行sort,偶就不细讲了。

2.1 以ASCII顺序(非字典顺序)进行sort

@languages = qw(fortran lisp c c++ Perl python java);
print join('' '', sort @languages), "n";

打印结果:
Perl c c++ fortran java lisp python

这等同于:
print join('' '', sort { $a cmp $b } @languages), "n";

按ASCII的顺序进行排序,也没什么说的哦。

注意, 如果对数字按ASCII顺序进行sort的话,结果可能与你想的不同:

print join('' '', sort 1 .. 11), "n";
1 10 11 2 3 4 5 6 7 8 9