Re: [問題] 讀取檔案的內容

作者: flu (Crazy Rhythm)   2012-11-02 19:33:11
use Data::Dumper ;
my %count_of_si ; #統計si出現的次數
my %p_of_si ; #統計si為0的次數
my $raw_read_in ;
while($raw_read_in = <>){
#樣式比對 把該行內首先出現的,被space or tab 分隔的兩組數字放入list內
#樣式最後的x代表空格會被忽略
my @filtered
= ( $raw_read_in =~ m/^ [\s\t]* (\d+) [\s\t]+ (\d+) /x ) ;
#如果比對失敗 @filtered的內容為 undef, 進入下輪迴圈
next if ( !defined $filtered[0] ) ;
#首次執行到這裡時@filtered內為(0,1) , $count_of_si{1} == undef,
#執行完這一行 $count_of_si{1}==1
$count_of_si{ $filtered[1] }++ ;
#類推
$p_of_si{ $filtered[1] }++ if $filtered[0] == 0 ;
}
print Dumper( @count_of_si{ sort keys %count_of_si } ) ;
print "\n" ;
print Dumper( @p_of_si{ sort keys %p_of_si} ) ;
__END__
順便說一下, eq, lt, gt是拿來作字串比對用的
==, <, > 才是拿來作數字比對用的
有不恰當的地方還請指正喔~
※ 引述《hws110 ( only you )》之銘言:
: 大家好
: 小弟最近在用perl去讀取檔案並取值
: 檔案的內容是這樣
: 0 1
: 0 2
: 0 3
: 0 4
: 1 1
: 0 2
: 2 3
: 1 4
: 0 1
: 1 2
: 右邊的1、2、3、4是代號
: 左邊的數字則是得到的資料
: 我的程式是將1、2、3、4的資料統計出來
: 例如說0有幾個,1有幾個,2有幾個這樣
: 我的寫法如下
:
作者: hws110 ( only you )   2011-01-02 21:06:00
感謝您的回答,我會再試試看^^~感謝您

Links booklink

Contact Us: admin [ a t ] ucptt.com