Perlを使用してファイルから一意のデータのペアを印刷する方法を理解しようとしています。
例えば、
Input: (check.pl)
A23072 A25058
A25058 A23072
Output:
A23072 A25058
このタスクに取り組むために、check.plファイルのコピーを作成し、それを繰り返して正規表現を見つけました。次のコードを記述しましたが、データをフィルタリングできません。
#!/usr/bin/perl -w
use strict;
use warnings;
open FH, "<check.txt" || die "Error\n";
open FH1, "<checkcopy.txt" || die "Error\n";
chomp (my @array=<FH1>);
my %count=();
while (<FH>)
{
my @values = split;
next if grep /\D/, @values or @values != 2;
my $re = qr/\A$values[0]\s+$values[1]\z|\A$values[1]\s+$values[0]\z/;
foreach my $key (@array)
{
if ((grep $_ =~ $re, $key) && (grep ++$count{$_} == 1, $key) )
{
print "$key\n";
}
}
}
1;
どんな助けでもありがたいです!ありがとう。