Основная проблема получения массива или строки из файла с помощью Storable retrieve
Проблема очень простая, но я не могу ее найти:
Я храню $string
к $filename
:
store [$tempstring], $filename2[$m];
Затем я пытаюсь получить его:
my $tempinput = retrieve ($filename2[$m]);
Мне кажется, я просто получаю ссылку, а не строку? Могу ли я использовать команду для преобразования данных обратно в исходную строку?
1 ответ
Решение
my $ref = [ $tempstring ];
создает массив, присваивает $tempstring
к нему (помещая его в первый элемент), затем возвращает ссылку на этот массив.
Поэтому, если вы хотите вернуть строку назад, вам нужно получить значение первого элемента массива, на который есть ссылка.
$ref->[0]
Если бы вы сделали
my $ref = \$tempstring;
вместо ненужного создания массива, вы просто
$$ref
чтобы получить строку.