Perl: запись вывода в разные файлы, определенные хешами?(это вообще возможно?) - PullRequest
2 голосов
/ 03 января 2012

Хорошо, этот фрагмент кода может показаться странным, но это единственный способ, которым я знаю, как объяснить, что я хочу сделать:

$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";

Очевидно, это не работает.Но мне нужен способ определить выходной файл способом, подобным этому, потому что у меня есть 2 ключевые переменные во входном файле ({$ key1} {$ key2}), которые я должен использовать, чтобы решить, какой файл записатьвывод в (я хочу иметь столько выходных файлов, сколько у меня есть комбинаций этих двух ключевых переменных).

Я надеюсь, что моя проблема ясна, в противном случае, пожалуйста, дайте мне знать ...

1 Ответ

7 голосов
/ 03 января 2012

Вам нужно сделать дескриптор файла фактическим хэшем хэшей:

$output{$key1}->{$key2} = $filename;

open $OUT{$key1}->{$key2} , ">$output{$key1}{$key2}" or die "Can't open $output: $filename!\n"

И заключить скобки вокруг всего этого в операторе печати:

print {$OUT{$key1}->{$key2}} "$blabla_variable{$key1}{$key2}\n";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...