как сохранить результирующий хеш в новый файл - PullRequest
0 голосов
/ 25 октября 2011

Фактическая проблема заключается в том, что мой ввод - это xml-файл, просто пример ввода выглядит таки сохраните этот хеш в новом файле.У меня проблемы с извлечением информации об адресе. Я не получаю элементы тега адреса, подобные этому.

Ответы [ 3 ]

1 голос
/ 25 октября 2011

Backslash found where operator expected ... near "store_fd \" - это ошибка, которую вы получите, если у вас есть строка

store_fd \%hash, $file1;

и вы не определили функцию store_fd. Сохраняемый не экспортирует store_fd по умолчанию;Вы должны попросить об этом.Похоже, что вы этого не сделали.

Из некоторых ваших комментариев также возможно, что вы неправильно написали имя функции.Perl чувствителен к регистру;Store_fd - это совершенно отдельная функция от store_fd.

Вот полный пример:

#!/usr/bin/perl
use strict;
use warnings;

use Storable qw(store_fd);

my %hash = (key => 'value');

my $file1;
open $file1, '>', "result.stored" or die $!;

store_fd \%hash, $file1;

Обратите внимание, что вы не должны записывать в файл с именем result.xml, используя Storable, потому чтоХранимый не пишет XML.Он пишет свой собственный формат.Если вы хотите написать XML, вы можете использовать другой модуль, например XML :: Simple или XML :: Writer .Но вам придется более подробно рассказать о том, как вы хотите, чтобы ваш XML выглядел, прежде чем я смогу дать вам достойный пример этого.

0 голосов
/ 25 октября 2011

Вы используете ссылку на файл, например, имя файла в предложении магазина. Согласно документации, вы можете передать имя:

store \%nums,'result.xml';

или

store_fd \%nums, $file1;
0 голосов
/ 25 октября 2011

Я предлагаю вам использовать библиотеку XML::Simple для простых манипуляций с XML (имейте в виду, что это зависит от ваших точных потребностей при обработке и выводе файла XML).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...