.txt ファイルと参照 .csv ファイルのリストがあります。私の参照にはキーワードが含まれており、特定のキーワードが foreach ループで実行している .txt ファイル名に含まれているかどうかを確認したいと考えています。
#!/bin/perl
use strict;
use warnings;
my %keyword;
my @files = glob("*.txt");
my $i = 0;
foreach my $file (@files) {
my %data_hash;
open(INFILE, "$file") or die "Can't open file \n";
while (<INFILE>) {
my @data = split(/\t/, $_);
$data_hash{ $data[0] } = $data [0];
$keyword{$file} = $file;
}
close INFILE;
open(REFERENCE, "$ARGV[0]") or die "Can't open file \n";
while (<REFERENCE>) {
my @all = split(/\t/, $_);
if ($keyword{ "*$all[0]" }) { #$all[0] contains the keyword
print $data_hash{ $all[1] }; #print $data_hash when $all[1] eq $data[0]
}
}
close REFERENCE;
}
ファイル名はHello_there_keyword.txt
. $data_hash に正しい値が含まれていることはわかっています。$file にキーワードが含まれている場合、$data_hash{$file} でキーワードを探していますか?