1

私はハッシュと、それらでできるさまざまなことを学び続けています。今日、私はこの質問をしています。ハッシュに 2 つのキーがある場合、ハッシュを値でソートするにはどうすればよいですか? どうすれば印刷できますか?私はcsvファイルを持っています。ハッシュに値を保存しようとしているので、値で並べ替えます。このようにして、最大値と最小値を出力できます。この値があった日付も必要です。これまでのところ、ハッシュを印刷できますが、ソートできません。

#!/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;
4

2 に答える 2