我想知道是否有人可以用 perl 帮助绝望的新手解决以下问题。我整天都在尝试,但是在工作中使用我的 perl 书时,我似乎在 google 中找不到任何相关的东西......或者也许我真的很愚蠢。
我有一个类似于以下内容的文件:
Bob April
Bob April
Bob March
Mary August
Robin December
Robin April
我追求的输出文件是:
Bob April April March
Mary August
Robin December April
这样它就会按照每个人出现的顺序列出每个月。
我试着把它变成一个散列,但它当然不会让我有重复,所以我想我想为每个名字(在这个例子中,鲍勃、玛丽和罗宾)都有数组。我害怕上传我一直在尝试调整的代码,因为我知道这将是非常错误的。我想我需要定义(?)数组。这是正确的吗?
任何帮助将不胜感激,我保证在此期间我将更多地研究 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";