[Moscow.pm] Парсинг текстовой строки

Павел Тимонин gg.error на gmail.com
Чт Ноя 6 06:30:46 PST 2008


насколько я могу судить, приведённый код решает задачу просто замечательно -
потому огромное спасибо )

6 ноября 2008 г. 16:51 пользователь Alexander Lourier <aml на rulezz.ru>написал:

> В сообщении от Четверг 06 ноября 2008 Павел Тимонин написал(a):
>
> > работа единичная, то есть эти скрипты будут запускаться примерно раз в
> > неделю. так что быстродействие и оптимизированность в общем-то не
> > требуется, гораздо важнее наглядность кода, чтоб я мог в нём разобраться
> :)
> >
> > можете подсказать что-нибудь?
>
> #!/usr/bin/perl
>
> use strict;
>
> my %single = (
>        'катушки' => 'катушка',
>        'бухты' => 'бухта',
> );
>
> while (<>) {
>
>        chomp;
>
>        for my $entry (split /, /) {
>
>                if (my ($amount, $unit_name, $unit_size) = ($entry =~
> /^\s*(\d+|\d+,\d+|
> \d+\.\d+)\s*\((.+)\s+по\s+(\d+)\s*м\s*\)\s*$/)) {
>
>                        $amount =~ s/,/./;
>
>                        my $units = $amount * 1000 / $unit_size;
>
>                        if ($units != int($units)) {
>
>                                warn "$entry: дробное число единиц\n";
>                        }
>
>                        my $out_line = ($unit_size / 1000) . ' ' .
> ($single{$unit_name} ||
> $unit_name) . "\n";
>
>                        for (my $i = 0; $i < $units; $i++) {
>
>                                print $out_line;
>                        }
>
>                } else {
>
>                        warn "$entry: неизвестный формат\n";
>                }
>        }
> }
>
> В аттаче он же с сохранением форматирования.
>
> --
> Alexander Lourier, http://aml.rulezz.ru
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено&hellip;
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20081106/a208852d/attachment-0001.html>


Подробная информация о списке рассылки Moscow-pm