如何設置$counter++
哈希除非是1
?在此代碼:Perl設置計數器以匹配循環
use strict;
use warnings;
my @filestwo = glob("*.xml");
my $result = @filestwo;
my $count = 0;
my %justone;
foreach my $domain (@filestwo) {
open my $in, '<', $domain or die "Open fail on $domain $!\n";
my @linestwo = <$in>;
for my $line (@linestwo) {
if($line =~ /Domain:\s([a-z].+)/){
$count++;
print "Number:$count Your TLD $1!\n" unless $justone{$1}++;
}
}
}
輸出:
Number:1 Your TLD one.com!
Number:3 Your TLD three.com!
Number:5 Your TLD two.com!
應該是:
Number:1 Your TLD one.com!
Number:2 Your TLD three.com!
Number:3 Your TLD two.com!
說明有關代碼:
- 打開3個文件
.xml
(在每個文件存在重複模式) - 創建一個散列從陣列
%justone;
- 搜索如果匹配模式:域
- 如果匹配的話,重新進行下一次迭代匹配相同的模式,只是
unless $justone{$1}++;
我的問題打印1 ,除非散列值,否則我不能爲匹配關係設置一個計數器。