【发布时间】:2012-04-26 14:52:50
【问题描述】:
我想知道是否有人可以用 perl 帮助一个绝望的新手解决以下问题。我一整天都在尝试,但是我的 perl 书在工作,我似乎在谷歌中找不到任何相关的东西......或者也许我真的很愚蠢。
我有一个类似于以下内容的文件:
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";
【问题讨论】: