ディレクトリからファイルのリストを取得し、それぞれを開き、.zip拡張子を持つファイル名を含む行を検索するスクリプトを作成しています。次に、行のファイル名だけを取り除きたいと思います。ここに私のコードは次のとおりです。ファイル名を抽出する
foreach (@fnames) {
chomp ($_);
open FILE, '<', "$_";
@archives = grep { /.+?\.zip/ } <FILE>;
foreach (@archives) {
if ($_ =~ /("|>)(.+?)("|<)/) { push @files, $2; }
}
}
私はからデータを引っ張っていたファイルは、二重引用符または角括弧のいずれかの間に.zipファイルのファイル名が含まれています。このコードは何も返さないが、私はファイル名がそこにあることを知っている。ターミナルでgrepを実行すると、それらのすべてを見ることができますが、Perlのgrepは私に何も与えていません。何か案は?
。あなたは、 '@ archives'と' $ _'を2番目のループの中に投げ捨ててみましたか? – CanSpice