我不斷學習哈希和你可以用它們做的各種事情。 taday我有這個問題。如何按值排序散列,當我有2個鍵時?我如何打印出來? 我有一個csv文件。即時嘗試將值存儲在散列中,按值排序。這樣我就可以打印出最大和最小的值,我還需要這個值在那裏的日期。 到目前爲止,我可以打印散列,但我不能排序它。按價值排序2鍵哈希
#!/usr/bin/perl
#find openMin and openMax.
use warnings;
use strict;
my %pick;
my $key1;
my $key2;
my $value;
my $file= 'msft2.csv';
my $lines = 0;
my $date;
my $mm;
my $mOld = "";
my $open;
my $openMin;
my $openMax;
open (my $fh,'<', $file) or die "Couldnt open the $file:$!\n";
while (my $line=<$fh>)
{
my @columns = split(',',$line);
$date = $columns[0];
$open = $columns[1];
$mm = substr ($date,5,2);
if ($lines>=1) { #first line of file are names of columns wich i
$key1 = $date; #dont need. data itself begins with second line
$key2 = "open";
$value = $open;
$pick{$key1}{"open"}=$value;
}
$lines++;
}
foreach $key1 (sort keys %pick) {
foreach $key2 (keys %{$pick{$key1}}) {
$value = $pick{$key1}{$key2};
print "$key1 $key2 $value \n";
}
}
exit;
其可能性很大。但爲了學習清酒編號喜歡知道如何按值排序2鍵的散列。 – AndreiMotinga
沒有「排序哈希」或「排序兩個關鍵哈希」。基於某種比較功能,它總是「排序」。 –