The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Преобразовать структурированный файл в хеш"
Отправлено ACCA, 10-Мрт-16 01:24 
Ну, я бы как-то вот так сказал:

#!/usr/bin/perl

use warnings; use strict;
use Data::Dumper;

my (@row,@header,@result, $i,$hdr);
while (<main::DATA>) {
    s/^\|\s|[\s\|]+\s*$//go;
    if (/^\+-.+\+$/ && !$hdr .. /^\+-.+\+$/ && $hdr) {
        if (/^\+/) {
            if ($hdr) {
                foreach ($i=0; $i<= $#header; $i++) {
                    $header[$i] = join ' ',@{$header[$i]};
                }
            }
            $hdr=1;
            next;
        }
        @row = split /\s+\|\s+/,$_;
        for ($i=0;$i<= $#row;$i++) {
            push @{$header[$i]},$row[$i] if $row[$i];
        }
        next;
    }
    last if /^\+-/;
    $i={};
    @{$i}{@header} = split /\s+\|\s+/,$_;
    push @result, $i;
}

print Dumper \@result;
__DATA__
+------------------+----------+--------+------+-----+
| Name             | Current  | Office | Age  | ... |
|                  | Position |  City  |      |     |
+------------------+----------+--------+------+-----+
| Vasiliy_Petrov   | student  | n/a    | 30   | ... |
| Petr_Ivanov      | worker   | MSK    | 40   | ... |
| Ivan_Ivanov      | n/a      | SPB    | 20   | ... |
| ...              | ...      | ...    | ...  | ... |
+------------------+----------+--------+------+-----+


 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру