1
以外の場合、$counter++
をハッシュに設定するにはどうすればよいですか?このコードで: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を印刷、私はマッチリレーションシップのためだけにカウンタを設定することはできません。