0
我有這段代碼在列出屬於特定值bin的對象時非常適合我。唯一的問題是我無法使用空格或製表符分隔符來獲得輸出。輸出中的空格或製表符perl
use strict;
use warnings;
use 5.14.0;
my $file = "test_counter.txt";
open DATA, '<', $file or die "$!";
my %hash;
while (<DATA>){
next if /^\s*$/m;)
my ($key1,$key2,$val) = /^(\w.+)\|(\w.+) (1|(\d+)(\.(\d+)))$/;
$val = int($val*10)/10;
$hash{$val}{$key1}++;
$hash{$val}{$key2}++;
}
for (-10..10){
$_ = $_/10;
say "$_\t", $hash{$_} ? keys $hash{$_} : '';
}
輸入test_counter.txt文件看起來是這樣的:
data|all 0.12
cup|bed 0.16596
bed|all 0.221
cup|all 0.21123
data|bed 0.388
cup|bed 0.35
bed|data 0.412
data|all 0.5236
data|cup 0.565
bed|all 0.6174
all|cup 0.65
cup|data 0.678
和輸出我得到的是:
-1
-0.9
-0.8
-0.7
-0.6
-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1 bedcupdataall
0.2 bedcupall
0.3 bedcupdata
0.4 beddata
0.5 cupdataall
0.6 bedcupdataall
0.7
0.8
0.9
1
我想有相同的,但有一個標籤或者在對象之間留有空白,或者理想情況下,當在對象中找不到對象時,使用製表符分隔的輸出和空白處。類似這樣的:
-1
-0.9
-0.8
-0.7
-0.6
-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1 bed cup data all
0.2 bed cup all
0.3 bed cup data
0.4 bed data
0.5 cup data all
0.6 bed cup data all
0.7
0.8
0.9
1
謝謝你的任何建議!
這是完美的,易於理解!非常感謝!! – Gabelins
不客氣,很高興提供幫助。 – RobEarl