このコードはこのプロセスの最後です。昇順で名前と合計の結果を集めて印刷したいと思います。@ sum1と@ sum2を取ろうとしましたが、@sumの機能を知ることができませんでした。私はそれを行うことができますか、または任意のアイデアは非常に貴重になるでしょ二次元ハッシュデータ出力?
#!/usr/bin/perl
use strict;
use warnings;
use List::Util qw(sum);
use Data::Dumper qw(Dumper);
my %grades;
$grades{"Ahmet"}{quiz1} = 97;
$grades{"Ahmet"}{quiz2} = 67;
$grades{"Ahmet"}{quiz3} = 93;
$grades{"Mehmet"}{quiz1} = 88;
$grades{"Mehmet"}{quiz2} = 82;
$grades{"Mehmet"}{quiz3} = 99;
print Dumper \%grades;
print "----------------\n";
foreach my $name (sort keys %grades) {
my %hash1 = (
'Ahmet' => [ 97, 67, 93 ],
'Mehmet' => [ 88, 82, 99 ],
);
my @sums;
for my $key (keys %hash1) {
my $sum = sum @{ $hash1{$key} };
push @sums, "$key: $sum\n";
}
foreach my $sum (keys %{ $grades{$name} }) {
print "$name : $grades{$name}{$sum}\n";
}
print @sums;
}
foreach my $name (sort keys %grades) {
print "$grades{$name}\n";
}
my %grades2;
$grades2{"Merve"}{quiz1} = 33;
$grades2{"Merve"}{quiz2} = 41;
$grades2{"Merve"}{quiz3} = 59;
$grades2{"Aslı"}{quiz1} = 79;
$grades2{"Aslı"}{quiz2} = 31;
$grades2{"Aslı"}{quiz3} = 62;
print Dumper \%grades2;
print "----------------\n";
foreach my $name2 (sort keys %grades2) {
my %hash = (
'Merve' => [ 33, 41, 59 ],
'Aslı' => [ 79, 31, 62 ],
);
my @sums2;
for my $key (keys %hash) {
my $sum = sum @{ $hash{$key} };
push @sums2, "$key: $sum\n";
}
foreach my $sum (keys %{ $grades2{$name2} }) {
print "$name2 : $grades2{$name2}{$sum}\n";
}
print @sums2;
}
foreach my $name2 (sort keys %grades2) {
print "$grades2{$name2}\n";
}
my %info;
$info{$_} .= "A" for keys %grades;
$info{$_} .= "B" for keys %grades2;
for (sort keys %info) {
print "$_ : $info{$_}\n";
}
私はちょうどあなたのコードを再フォーマットそれは完全に判読できなかったからです。歓迎ですが、次回は自分でやってください。 – PerlDuck
あなたの出力は何ですか?代わりに何をしたいですか? – PerlDuck
私はperlで初めてです。まずは興味を持っていただき、ありがとうございます。配列からアイテムを削除するスプライスコマンドを編集しようとしましたが、長くなってしまいました。私はもう一度感謝します。私は出力を昇順にしようとしていました。ソートコマンドはそれを行うのに十分です。 – keremmmmmm