URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6466
[ Назад ]

Исходное сообщение
"как созать конструкцию на perl... "

Отправлено erl , 16-Май-07 08:16 
Здраствуйте Все !

Скажи те гуру перла, как реализовать вот такой подход:

есть изначально текстовый файл который необходимо обработать. В этом текстовом файле я как писатель скрипта изначально не знаю формат, таких различных файлов может быть множество. Есть скрипт который должен все это обрабатывать перобразовывать и записывать куда нить. В этом и сложность задачи, что заранее не известно ни формата файлов, ни что с ними делать - отсюда вывод отдать все на откуп, того кто знает формать и как его разбирать, забирать у человека такой инструмент как перл, выдумывая свои универсальные обработчики - это кощунственно. Поэтому принято решение пусть тот кто знает формат сам пишет программу(модуль, пакадж и т.д.) по обработке этого только ему известного файла.

Теперь вопрос: я не знаю ни формат файла, ни того как его обрабатывать, не знаю какие процедуры будудт использованы для обработки файлов, мне нужно предложить каое то решение , согласно которому, можно будет подключать к моему скрипту основному который всегда выполняется, скрипты которые напишут те люди которые будут обрабатывать текстовые файлы (их скрипты могут делать следующее взять конкретный файл и его преобразовать сохранив результаты), далее их скрипты завершаются и продолжается выполнение моей программы далее пока все текстовые файлы не будут обработаны.
и блин самый простой вопрос который можно только себе представить , как это сделать на perl?

С уважением,
Erl.


Содержание

Сообщения в этом обсуждении
"как созать конструкцию на perl... "
Отправлено ovax , 16-Май-07 08:37 
Мне тоже, как весна началась - чего-то хочется, а кого - не знаю...

Пусть парсят файлы, и выдают данные, например, в XML.
а вы уже XML обрабатывайте.


"как созать конструкцию на perl... "
Отправлено erl , 16-Май-07 09:13 
>Мне тоже, как весна началась - чего-то хочется, а кого - не
>знаю...
>
>Пусть парсят файлы, и выдают данные, например, в XML.
>а вы уже XML обрабатывайте.

Не нужно смеятся, на самой деле все очень серьезно, я же не виноват в том что не стандартизирован вывод от различных команд, один производитель оборудования так фигачит, другой эдак, хотя смысл всех этих распечаток иногода один и тот же, а оборудования много. И что мне делать приходиться вые ... что бы все это привести в общий читабельный и понятный вид ... спасибо конечно. Но этот вариант не подходит, потому что нельзя свести во едино все те данные которые придется обрабатывать. Я говорю что механизм перл дает неограниченные фозможности и ограничивать их парсингом было не очень корректно.

Есть одно решение может быть вы подскажите как его реализовать.
Например писать оидельный модуль перл и в определенном месте программы из XML файла загружать конструкцию типа - вот такую распечатку обрабатывай вот таким модулем ... , но как все это реализовать на перле .. может подскажите ... ?


"как созать конструкцию на perl... "
Отправлено Homewrecker , 16-Май-07 13:20 
Очень всё запутанно написано :))
Попробуйте посмотрить в сторону autoload. или вот еще модуль http://search.cpan.org/~smueller/AutoLoader-5.63/lib/AutoLoa...

"как созать конструкцию на perl... "
Отправлено erl , 16-Май-07 13:52 
>Очень всё запутанно написано :))
>Попробуйте посмотрить в сторону autoload. или вот еще модуль http://search.cpan.org/~smueller/AutoLoader-5.63/lib/AutoLoa...


Нет это я уже смотрел это немного не для этого сделано. И очень сложно, необходима болле простая конструкция ...


"как созать конструкцию на perl... "
Отправлено NuINu , 16-Май-07 13:52 
>Очень всё запутанно написано :))
>Попробуйте посмотрить в сторону autoload. или вот еще модуль http://search.cpan.org/~smueller/AutoLoader-5.63/lib/AutoLoa...

Да нафиг надо!!!
Речь идет об элементарной невозможности организовать свою работу!
Все просто
1 составляешь список
утилита_производителя   расширение
aaaa.sh                  a1
ddddd.sh                 b1

запускаешь свои утилиты
aaaa.sh equip1 >1.a1
aaaa.sh equip2 >2.a1
aaaa.sh equip3 >3.a1
bbbb.sh equip1 >1.b1
bbbb.sh equip2 >2.b1
bbbb.sh equip3 >3.b1

в перле можно сделать по разному
а) организовать промежуточный формат - единый
и тогда запускаешь модуль который читает список обрабатываемых файлов и по расширению определяет какую функцию парсер запустить.
б) без промежуточного файла все делаешь в одной программе но так же запускаешь разные функции
в) пишешь несколько перл программ которые приводят все эти форматы к единому
а значит добавляешь в файл форматов поле "парсер"
aaaa.sh                  a1   a1.pl
ddddd.sh                 b1   b1.pl