kk@ins14 ~/workspace/kingkongmok.github.com $ sudo cat /var/log/syslog | perl -MData::Dumper -ne 'next unless /^Sep  2/../^Sep\s+3/; while(/((master_spawn|kernel|error))/g){$h{$1}++} }{ print Dumper\%h'
$VAR1 = {
          'master_spawn' => 595,
          'kernel' => 419,
          'error' => 2
        };

这个是用来检查某段之间(从Sep 2到Sep 2段落)间,出现以上词语的次数。

random and count

#!/usr/bin/perl 
use strict;
use warnings;
my@array=1..10;
my$numb=0;
my%hash;
while ( $numb<1000 ) {
    $hash{int(rand@array)}++ ;
    $numb++;
}
#print join":",keys%hash;
my$k;
my$v;
my$sumk;
my$sumv;
while ( ($k,$v)=each%hash ) {
    print "$k\t$v\n" ;
    $sumk+=$k; 
    $sumv+=$v; 
}
BEGIN{
print "keys\tvalues\n"
}
END 
{
print "the sum of key is $sumk\n" ;
print "the sum of val is $sumv\n" ;
}

keys values 6 92 3 106 7 93 9 106 2 105 8 102 4 99 1 102 0 94 5 101 the sum of key is 45 the sum of val is 1000

百钱百鸡问题

有个题目 中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱百鸡问题”:一只公鸡值五钱,一只母鸡值三钱,三只小鸡值一钱,现在要用百钱买百鸡,请问公鸡、母鸡、小鸡各多少只?

#!/usr/bin/env perl 
use warnings;

my ($a, $b, $c);  
$a=$b=$c=0 ;
my $count ;

my ($sum)=@ARGV;

while ( $a<$sum ) {
    $b=0;
    while ( $b< $sum ) {
        $c=0;
        while ( $c<$sum ) {
            $count++ ;
            if (  $a*5+$b*3+$c*1/3 == $sum && $a+$b+$c == $sum ) {
                print "$a $b $c\n" ;
            }
            $c++ ;
        }
        $b++ ;
    }
    $a ++ ;
}

print $count ;
awk -va=200 'BEGIN{for(i=1;i<a/5;i++)for(j=1;j<=a/3;j++)for(k=3;k<=a*3;k+=3)if(i+j+k==a && i*5+j*3+k/3==a)print i,j,k}'