我有一个 .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} 中寻找关键字?