好吧,这段代码可能看起来很奇怪,但这是我知道如何解释我想要做的唯一方法:
$output{$key1}{$key2} = $filename;
open OUT{$key1}{$key2} , ">$output{$key1}{$key2}" or die "Can't open $output: $filename!\n";
print OUT{$key1}{$key2} "$some_variable{$key1}{$key2}\n";
Run Code Online (Sandbox Code Playgroud)
显然,这不起作用.但是我需要一种方法以类似于这个的方式定义输出文件,因为我的输入文件中有2个关键变量({$ key1} {$ key2}),我必须使用它来决定写入哪个文件输出到(我想拥有尽可能多的输出文件,因为我有这两个关键变量的组合).
我希望我的问题很清楚,否则请让我知道......
您需要使文件句柄成为哈希的实际哈希:
$output{$key1}->{$key2} = $filename;
open $OUT{$key1}->{$key2} , ">$output{$key1}{$key2}" or die "Can't open $output: $filename!\n"
Run Code Online (Sandbox Code Playgroud)
并在print语句中添加括号:
print {$OUT{$key1}->{$key2}} "$blabla_variable{$key1}{$key2}\n";
Run Code Online (Sandbox Code Playgroud)