Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Проверить синтаксис без учета загружаемых модулей


Автор: Logo 12.7.2012, 02:23
Можно ли проверить правильность синтаксиса perl кода без учета загружаемых модулей, т.е. что бы use {не на найденный модуль} не приводило к ошибке, так же не приводил к ошибке вызов не определенных процедур, очень желательно включая прототип (&).

Добавлено @ 02:25
P.S. непреднамеренно форматнул жесткий диск, теперь восстанавливаю файлы из сектора. Надо определить что является perl кодом, а что нет.

Автор: Грань 12.7.2012, 06:10
Perl скрипты имеют расширение: pl , pm, cgi .От этого нужно отталкиваться ,а заглядывать в код думаю бесполезно. 

Автор: arto 12.7.2012, 06:57
на расширения опираться сложно, у меня, например, есть и .fpl, и .epl.
можно попробовать определять по шебангу, остальное по специфике кода (use .+?;),
и совсем остальное визуально.

Автор: Logo 12.7.2012, 14:44
Цитата

Perl скрипты имеют расширение: pl , pm, cgi .От этого нужно отталкиваться ,а заглядывать в код думаю бесполезно.  


Таблица файлов слетела, диск отформатирован. Я не очень разбираюсь в устройстве файловой системы, но во всяком случае имена файлов мне ни как удается вытащить.
Все что есть это дисковый сектор с данными.
Есть утилита photorec, но она не очень разбирается в формате perl кода, восстанавливает лишь некоторые файлы, многие частично.
Начало файла еще можно определить по package .*MYPACKAGE.*, а как определить конец? Или только в ручную возможно?

Автор: Pfailed 12.7.2012, 17:41
Совет на будущее. Используйте систему контроля версий.

Автор: Logo 12.7.2012, 18:50
Pfailed, система управления версиями, здесь по моему, ни как не поможет, разве что если репозиторий находится на другом носителе. Бекапы это да...

Автор: Сумасшедший 13.7.2012, 09:03
В *n?x проще воспользоваться командой file. 

Автор: Logo 13.7.2012, 19:47
Сумасшедший, не поможет. file только тип файла показывает, с куском байтов не работает.

Автор: Logo 16.7.2012, 18:05
Сделал через поиск по регулярному выражению + сохранение куска кода от и до символа-байта "\0", где совпало регулярное выражение. В некоторых файлах затем вручную удалить мусор через редактор. Но большинство даже вырезалось аккурат "от" и "до".

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)