ハッシュのファイルから単語の存在をチェックし、そうであれば対応するハッシュキーと値を表示しようとしています。Perlは配列の内容をハッシュ値と比較します
これまでのところ、私は値がスクリプトに与えられている配列でそれを行うことができました。
私は外部ファイル(ここではFILEDEUX
)から、この配列ワードに値として与えるための方法を見つけることができません。 私を正しい方向に向けることができますか?
(私の問題を説明する私の方法を修正することを躊躇しないでください。)
#!/usr/bin/perl
use v5.10;
use strict;
use warnings;
my $hashtable = $ARGV[0];
my $textecompare = $ARGV[1];
open FILE,"<$hashtable" or die "Could not open $hashtable: $!\n";
open FILEDEUX,"<$textecompare" or die "Could not open $textecompare: $!\n";
while (my $line = <FILE>)
{
chomp($line);
my %elements = split(" ",$line);
my @motcherches = qw/blop blup blip blap/;
foreach my $motcherches (@motcherches) {
while ((my $key, my $value) = each (%elements)) {
# Check if element is in hash :
say "$key , $value" if (exists $elements{$motcherches}) ;
}
}
}
close FILE;
close FILEDEUX;
EDIT:(%elements
ハッシュに変換)の例入力
FILE
Zieler player
Chilwell player
Ulloa player
Mahrez player
Ranieri coach
= ========================================== =================
すぐに別のに続いて、今回Zielerはそれを保つために少しシャープにしなければならなかったされて保存(motcherches
配列に変換)FILEDEUX
一つ。 Izaguirreは、レスターのウィンガーがあまりにも簡単にあきらめてしまったが、彼は左サイドを下って彼を打ち負かすことによって、彼の薬の味をMahrezに与える。 クラウディオ・ラニエリは、これまでの彼の側から見たものに満足しています。
============================================== ===============================
予想される出力:
Zieler player
Mahrez player
Ranieri coach
'使用warnings'は、あなたのシェバングライン上の-w''に似ています。それらのうちの1つだけが必要です(そして、ほとんどの人は ''警告を使う '')。 –
それを逃した、ありがとう! – Azaghal