我的哈希中有一個資料,并試圖在控制臺中列印它們。
下面是我的腳本:
#!/usr/bin/perl
use strict; use warnings;
use Data::Dumper;
my %hash = (
'2022-08-04' => {
'Method 1' => {
'Count' => 50,
'Size' => '10 MB'
},
'Method 2' => {
'Count' => 40,
'Size' => '5 MB'
}
},
'2022-08-05' => {
'Method 1' => {
'Count' => 30,
'Size' => '3 MB'
},
'Method 2' => {
'Size' => '50 MB',
'Count' => '100'
}
}
);
my @headers = ("Method 1", "Method 2");
my @headers_data;
push (@headers_data, "Date");
foreach (@headers) {
push(@headers_data, $_." Size", $_." Count");
}
print join(",", @headers_data);
print "\n";
for my $date ( sort keys( %hash ) ) {
my $by_method = $hash{$date};
print "$date,";
for my $method ( @headers ) {
my $rec = $by_method->{$method};
$rec->{Size} = $rec->{Size} ? $rec->{Size} : "NA";
$rec->{Count} = $rec->{Count} ? $rec->{Count} : "NA";
print "$rec->{Size},$rec->{Count},";
}
print "\n";
}
在這里,當我在 line 中列印時print "$rec->{Size},$rec->{Count},";,這會,在結果的末尾給出,這對我來說看起來很奇怪。
例子:
Date,Method 1 Size,Method 1 Count,Method 2 Size,Method 2 Count
2022-08-04,10 MB,50,5 MB,40,
2022-08-05,3 MB,30,50 MB,100,
您可以看到結果的第 2 行和第 3 行中有一個逗號 ( ,)。
當我嘗試以下邏輯(類似于列印@headers_data)時,我被卡住了如何在控制臺中進行列印@data,因為它包含兩天的資料。
...
my @data;
for my $date ( sort keys( %hash ) ) {
my $by_method = $hash{$date};
push (@data, $date);
for my $method ( @headers ) {
my $rec = $by_method->{$method};
$rec->{Size} = $rec->{Size} ? $rec->{Size} : "NA";
$rec->{Count} = $rec->{Count} ? $rec->{Count} : "NA";
push (@data, $rec->{Size}, $rec->{Count});
}
}
有人可以幫我列印如下結果:
Date,Method 1 Size,Method 1 Count,Method 2 Size,Method 2 Count
2022-08-04,10 MB,50,5 MB,40
2022-08-05,3 MB,30,50 MB,100
uj5u.com熱心網友回復:
修改您的第一個腳本:
...
for my $date ( sort keys( %hash ) ) {
my $by_method = $hash{$date};
my @line_data;
push @line_data, $date;
for my $method ( @headers ) {
my $rec = $by_method->{$method};
$rec->{Size} = $rec->{Size} ? $rec->{Size} : "NA";
$rec->{Count} = $rec->{Count} ? $rec->{Count} : "NA";
push(@line_data, $rec->{Size}, $rec->{Count});
}
print join(",", @line_data), "\n";
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/506221.html
上一篇:物件的默認Perl訪問器
