das ist mein Code.Am Ende dieses Prozesses möchte ich Name und Summe Ergebnisse mit aufsteigender Reihenfolge sammeln und drucken wollen.Ich habe versucht, die als @ sum1 und @ sum2 nehmen, aber es konnte @sum Funktionen nicht wissen kann ich das tun oder jede Idee wird sehr wertvoll sein.zweidimensionale Hash-Datenausgabe?
#!/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";
}
ich neu formatiert nur Ihren Code weil es völlig unlesbar war. Sie sind willkommen, aber bitte machen Sie das nächste Mal selbst. – PerlDuck
Was ist Ihre Ausgabe und was möchten Sie stattdessen? – PerlDuck
Ich bin neu bei Perl Entschuldigung. Erstmal danke für Interesse. Ich habe versucht, zu bearbeiten Ich verwendete splice Befehl zum Löschen von Elementen aus Array, aber es wird so lang. Das ist genug für mich danke.Ich habe versucht, Ausgabe aufsteigende Reihenfolge und Sortierbefehl genug, um das zu tun .. – keremmmmmm