0
특정 값 저장소에 속하는 목록 개체에서 완벽하게 작동하는이 코드가 있습니다. 유일한 문제는 공백이나 탭 구분 기호로 출력을 얻을 수 없다는 것입니다.출력 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