Этот простой Perl-скрипт переводит истории из базы данных в XML, но этот раздел вызывает у меня проблемы. Функция makeUrl
вызывается для каждой истории, но она должна гарантировать, что дублирующиеся URL не создаются.
my @headlines = ();
my $hlCount = 1;
.
.
.
sub makeUrl {
my $headline;
open( URLSOUT, '>>/var/mtkoan/harris/urls' );
$url = $_[0];
print URLSOUT "Before: $url\n";
$url =~ s/\x{90}//g;
$url =~ s/\s+$//g;
$url =~ s/^\s+//g;
$url =~ s/\s/_/g;
$url =~ s/\W//g;
push @headlines, $url;
foreach $headline (@headlines) {
if( $headline eq $url ) {
$url .= "_$hlCount";
$hlCount++;
}
}
print URLSOUT "After: $url\n\n";
print URLSOUT "Headline Array Dump:\n";
print URLSOUT "@headlines\n";
close URLSOUT;
}
Когда массив печатается, отображается только последнее значение. Push не добавляется в конец массива, я не могу понять!