次の質問で、絶望的な perl の初心者を助けることができる人がいるかどうか疑問に思っていました。私は一日中試してきましたが、私のperlの本が仕事で、Googleに関連するものは何もないように見えます...あるいは、これは本当にばかげているのかもしれません.
次のようなファイルがあります。
Bob April
Bob April
Bob March
Mary August
Robin December
Robin April
私が求めている出力ファイルは次のとおりです。
Bob April April March
Mary August
Robin December April
各月が各人に表示される順序でリストされるようにします。
ハッシュにしてみましたが、もちろん重複は許されないので、名前ごとに配列が欲しいと思いました(この例では、Bob、Mary、Robin)。恐ろしく間違っていることを知っているので、微調整しようとしているコードをアップロードすることを恐れています. 配列を定義(?)する必要があると思います。これは正しいでしょうか?
どんな助けでも大歓迎です。それまでの間、perl についてもっと勉強することを約束します。
お時間をいただき、ご協力いただきありがとうございました。
#!/usr/bin/perl -w
while (<>) {
chomp;
if (defined $old_name) {
$name=$1;
$month=$2;
if ($name eq $old_name) {
$array{$month}++;
}
else {
print "$old_name";
foreach (@array) {
push (@array, $month);
print "\t@array";
}
print "\n";
@array=();
$array{$month}++;
}
}
else {
$name=$1;
$month=$2;
$array{month}++;
}
$old_name=$name;
}
print "$old_name";
foreach (@array) {
push (@array, $month);
print "\t@array";
}
print "\n";