У меня есть следующий код:
use strict;
my $org_file_hash = {
'S6' => '/path/to/file/filename.txt_S6',
'S8' => '/path/to/file/filename.txt_S8',
'S2' => '/path/to/file/filename.txt_S2',
'S0' => '/path/to/file/filename.txt_S0',
'S00' => '/path/to/file/filename.txt_S00'
};
my $filehandles;
for(keys %{$org_file_hash})
{
my $key=$_;
open(my $key,">",$org_file_hash->{$key}) || die "Cannot open ".$org_file_hash->{$key}." for writing: $!";
push(@{$filehandles},$key);
}
В последней части кода я получаю $ org как "S2".
my $org="S2";
На основе $ org я решу, какой файл мне нужно распечатать, и в этом случае это /path/to/file/filename.txt_S2.
Для этого я делаю следующее, но это не работает:
my $org="S2";
print {$org} "hello world\n";
Я получаю следующую ошибку:
Can't use string ("S2") as a symbol ref while "strict refs" in use at new_t.pl line 22.
Пожалуйста, помогите.