![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| dixoNICH |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 222 Регистрация: 20.3.2011 Репутация: нет Всего: нет |
На входе строка $str, примерно такого вида
и из неё надо получить хеш хешей вида :
не подскажете, как мне это осуществить? |
||||
|
|||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
невозможно.
у вас данные не совпадают |
|||
|
||||
| od0201 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 16.1.2009 Репутация: 1 Всего: 1 |
|
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
сложно.
perl -0777 -nle 'my %h = grep !/^$/, split "Number\\s+:\\s+(\\d+)"; foreach (values %h) { $_ = { map { split "\\s*:\\s*",$_,2 } split "\\n(?!\\s+)",$_ } }' |
|||
|
||||
| dixoNICH |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 222 Регистрация: 20.3.2011 Репутация: нет Всего: нет |
спасибо вам.
а почему так не работает? и ещё, почему-то не смог поэлементно вывести message1, Number, 1 message2, Number, 2 Это сообщение отредактировал(а) dixoNICH - 13.5.2011, 20:16 |
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
у меня работает
# perl -MData::Dumper -0777 -nle 'my %h = grep !/^$/, split "Number\\s+:\\s+(\\d+)"; foreach (values %h) { $_ = { map { split "\\s*:\\s*",$_,2 } split "\\n(?!\\s+)",$_ } } print Dumper \%h' Number : 2 Octets : 84947 Subject: ыфоыофыофоы Date : Mon, 2 May 2011 22:30:48 +0600 From : Nikita <[email protected]> Message : ыфыфыфыфы Number : 3 Octets : 79186 Subject: From Date : Mon, 18 Apr 2011 23:39:02 +0600 From : Max Panachev <[email protected]> Message : HELLO, DUDE!! ^D $VAR1 = { '3' => { 'Octets' => '79186', 'Subject' => 'From', 'Message' => 'HELLO, DUDE!!', 'Date' => 'Mon, 18 Apr 2011 23:39:02 +0600', 'From' => 'Max Panachev <[email protected]>' }, '2' => { 'Octets' => '84947', 'Subject' => 'ыфоыофыофоы', 'Message' => 'ыфыфыфыфы', 'Date' => 'Mon, 2 May 2011 22:30:48 +0600', 'From' => 'Nikita <[email protected]>' } }; # |
|||
|
||||
| dixoNICH |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 222 Регистрация: 20.3.2011 Репутация: нет Всего: нет |
да, работает
огромное спасибо! |
|||
|
||||
| dixoNICH |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 222 Регистрация: 20.3.2011 Репутация: нет Всего: нет |
а ещё не подскажете, как мне засунуть в хеш такое
Message : hello world! dasdsa sad;a > sasakska >sklaskaska >skaksak чтобы было что-то вида %hash = ( "message1"=> {"subject"=>"hello world", "from"=>"nikitka", "date" => "12.01.12", "Message" => "hello world!\ndasdsa\n> sasakska\n>sklaskaska\n>skaksak ", "Octets" => 1234}, ); |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |