Автор Тема: Как сохранить хэш в файл?  (Прочитано 12124 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн softsafer

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 25
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.wowan.ru
Как сохранить хэш в файл?
« : 07 Мая 2004, 03:54:10 »
Господа, как сохранить хэш, или другую структуру в файл, и как прочитать? Желательно без лишних телодвижений.

Оффлайн alm

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 102
  • +0/-0
  • 0
    • Просмотр профиля
    • http://ispserver.com
Как сохранить хэш в файл?
« Ответ #1 : 07 Мая 2004, 07:44:09 »
Есть какой-то модуль на эту тему. Что-то типа DataDumper.

За название не ручаюсь, поищи на search.cpan.org
Алексей Чекушкин
менеджер проекта  - решения для хостинг компаний. менеджер проекта  - хостинг на Виртуальных Выделенных серверах (VDS / VPS). консультант проекта  - хостинг на Виртуальных Выделенных серверах (VDS / VPS) от 4.9

Оффлайн alm

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 102
  • +0/-0
  • 0
    • Просмотр профиля
    • http://ispserver.com
Как сохранить хэш в файл?
« Ответ #2 : 07 Мая 2004, 07:45:24 »
Вот как он называется

Data::Dumper;
Алексей Чекушкин
менеджер проекта  - решения для хостинг компаний. менеджер проекта  - хостинг на Виртуальных Выделенных серверах (VDS / VPS). консультант проекта  - хостинг на Виртуальных Выделенных серверах (VDS / VPS) от 4.9

Оффлайн alm

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 102
  • +0/-0
  • 0
    • Просмотр профиля
    • http://ispserver.com
Как сохранить хэш в файл?
« Ответ #3 : 07 Мая 2004, 07:46:42 »
Вот блин форум заменил :)

Попробуем повторить
Data :: Dumper
Алексей Чекушкин
менеджер проекта  - решения для хостинг компаний. менеджер проекта  - хостинг на Виртуальных Выделенных серверах (VDS / VPS). консультант проекта  - хостинг на Виртуальных Выделенных серверах (VDS / VPS) от 4.9

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Как сохранить хэш в файл?
« Ответ #4 : 07 Мая 2004, 10:05:53 »
alm
Да, вот только, что-то про сохранение в файл в мануале ничего не сказано...

softsafer

Простой пример:

my @keys keys %hash1;
open (FILE">./data.txt");
flock (FILE2);
foreach (@
keys) {
print 
FILE $_,\'=\',$hash1{$_},"\\n"; # Исправлено:  print FILE, "$_=$hash1{$_}\\n";
}
close FILE;

open (FILE, "./data.txt");
my @data = <FILE>;
close FILE;
chomp @data;
my %hash2;
foreach (@data) {
  (my $key, my $value) = split(/=/,$_);
  $hash2{$key} = $value;
}
« Последнее редактирование: 07 Мая 2004, 11:58:14 от Phoinix »

Оффлайн Wyclef

  • hello_worlder
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 2
    • Просмотр профиля
    • http://thug.narod.ru
Как сохранить хэш в файл?
« Ответ #5 : 07 Мая 2004, 11:05:38 »
perldoc Storable
It\'s nice to be important, but it\'s more important to be nice!

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Как сохранить хэш в файл?
« Ответ #6 : 07 Мая 2004, 11:25:14 »
Phoinix а зачем ты порождаеш @keys?
print FILE, "$_=$hash1{$_}\\n"; Здесь синтаксический анализатор тебя пошлет читать perldoc
 
А насчет сохранения - не более сложно чем у тебя:
open DB, ">file" or die "Can\'t do that: $!";
print DB Data::Dumper-> Dump([$data], [qw($data)]);
close DB;
The documentations is your friend

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Как сохранить хэш в файл?
« Ответ #7 : 07 Мая 2004, 11:31:57 »
Wyclef можно тогда и DBM файл для этого использовать.
perldoc -f tie
The documentations is your friend

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Как сохранить хэш в файл?
« Ответ #8 : 07 Мая 2004, 11:57:31 »
NeoNox
Цитировать
а зачем ты порождаеш @keys?


Никогда не лишне знать функции keys и values для разбора хеш массива... :)

Цитировать
print FILE, "$_=$hash1{$_}\\n"; Здесь синтаксический анализатор тебя пошлет читать perldoc


Да послал... поспешил... :(

   print FILE $_,\'=\',$hash1{$_},"\\n";

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Как сохранить хэш в файл?
« Ответ #9 : 07 Мая 2004, 12:29:20 »
Phoinix никогда не стоит нагружать память сервера бесполезной информацией. Эти значения ты запросто сможеш взять напрямую из хеша.
Кстати твой способ нагнется при использованиии сложной структуры (типа хеша хешей масивов :) )
The documentations is your friend

Оффлайн Wyclef

  • hello_worlder
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 2
    • Просмотр профиля
    • http://thug.narod.ru
Как сохранить хэш в файл?
« Ответ #10 : 07 Мая 2004, 12:36:45 »
NeoNox предпочитаю MLDBM - у него нет ограничения на объем данных.
В курсе ;)
It\'s nice to be important, but it\'s more important to be nice!

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Как сохранить хэш в файл?
« Ответ #11 : 07 Мая 2004, 12:45:43 »
Wyclef сходу вопрос: а в MLDBM я могу поместь что-то типа

my $data = {
        \
'dynamo\'=>{
                \'color\'=>\'blue\',
                \'name\'=>\'dynamo\',
                \'stadium\'=>\'Dynamo\'
                },
        \'spartak\'=>{
                \'color\'=>\'red\',
                \'name\'=>\'spartak\',
                \'stadium\'=>\'Luzhniki\'
                }
        };
?
Это чисто для спортивного интереса.
The documentations is your friend

Оффлайн Wyclef

  • hello_worlder
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 2
    • Просмотр профиля
    • http://thug.narod.ru
Как сохранить хэш в файл?
« Ответ #12 : 07 Мая 2004, 12:50:53 »
NeoNox
Легко
It\'s nice to be important, but it\'s more important to be nice!

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Как сохранить хэш в файл?
« Ответ #13 : 07 Мая 2004, 14:39:01 »
NeoNox
Цитировать
Кстати твой способ нагнется при использованиии сложной структуры


Не спорю, а я и не претендую, на то, что мой способ униварсальный и самый оптимальный, это просто вариант

Цитировать
никогда не стоит нагружать память сервера бесполезной информацией. Эти значения ты запросто сможеш взять напрямую из хеша.


Опять же не спорю, можно и так:

foreach (keys %hash) {...

Но так не столь наглядно IMHO... важен наслолько я понимаю принцип, а не готовый код... ;)

Оффлайн Wyclef

  • hello_worlder
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 2
    • Просмотр профиля
    • http://thug.narod.ru
Как сохранить хэш в файл?
« Ответ #14 : 07 Мая 2004, 15:10:36 »
Phoinix
Цитировать
use Storable;
store \\%table, \'file\';
$hashref = retrieve(\'file\');

Наглядно? ;)
It\'s nice to be important, but it\'s more important to be nice!

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28