そのため、foreach 内の正規表現に基づいて配列のハッシュを作成しようとしています。
いくつかのファイル パスを取得していますが、その形式は次のとおりです。
longfilepath/name.action.gz
したがって、基本的には同じ名前でアクションが異なるファイルが存在するため、アクションの配列である名前のキーを使用してハッシュを作成したいと考えています。コードを実行するとこのエラーが発生し続けるため、明らかに何か間違っていると思われます。
Not an ARRAY reference at ....the file I'm writing in
セットされているかどうかを確認しており、配列として宣言していない場合は取得できません。私はまだ perl に慣れているので、問題は単純なものだと思います。
また、正規表現が「名前」文字列と「アクション」文字列の両方を適切に生成していることを確認したので、問題は間違いなく foreach にあります。
ご協力いただきありがとうございます。:)
私のコードはこうです。
my %my_hash;
my $file_paths = glom("/this/is/mypath/*.*\.gz");
foreach my $path (@$bdr_paths){
$path =~ m"\/([^\/\.]+)\.([^\.]+)\.gz";
print STDERR "=>".Dumper($1)."\n\r";
print STDERR "=>".Dumper($2)."\n\r";
#add the entity type to a hash with the recipe as the key
if($my_hash{$1})
{
push($my_hash{$1}, $2);
}
else
{
$my_hash{$1} = ($2);
}
}