|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Alan Long 2:5030/1082.72 10 Jul 2002 10:19:09 To : Nikolay Pichtin Subject : Чтение конфига в хеш -------------------------------------------------------------------------------- * Originally from Nikolay Pichtin (2:5056/30) to All. NP> Есть конфигурациооный файл NP> #hash_1 NP> dat_1 = Data num 1 NP> dat_2 = 222 NP> dat_3 = Dat_text NP> #hash_2 NP> dat_11 = 555 NP> dat_12 = 666 NP> dat_13 = 777 NP> . NP> . NP> . NP> . Hу где-то так. В у словии задачи не было сказано что хешей может быть больше двух, так что... ;-) Hо принцип такой. ... while( <IN> ) { chomp; if( /^#hash_(\d)$/ ) { my $hash_n = $1; local $/ = ''; # Тут может-быть придется поставить "\r\n\r\n" для # MS-DOS клонов в общем смотри описание переменной # $/ в perlvars? my $hash_str = <IN>; foreach ( split /\n/, $hash_str ) { if( /^(\S+)\s*=\s*(.+)\r?$/ ) { if( $hash_n == 1 ) { $hash_1{$1} = $2; } elsif( $hash_n == 2 ) { $hash_2{$1} = $2; } } } } } ... NP> Hеобходимо прочитать файл и зачения, следующие NP> после #hash_1 до пустой строки занести в хеш %hash_1, а данные, NP> следующие после hash_2 занести в %hash_2 Да, данный пример написан безо всякого тестирования, так что возможно содержит какие-либо синтаксические ошибки, он лишь иллюстрирует принцип как это можно сделать. NP> __ Hиколай -- With best, Ъ-· Ъ Е-ЧLaі\і <alan@x-rays.eu.org> --- timEd/386 1.10+ * Origin: X - Rays Station (2:5030/1082.72) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/4581d2bd07c1.html, оценка из 5, голосов 10
|