Задача по perl
Постановка задачи
Имеется входной файл с данными вида:
DD. MM. YYYY HH:MM:SS NAME: STATUS
DD. MM. YYYY HH:MM:SS SYSTEM START
Где:
DD. MM. YYYY – дата в формате день. месяц. год
HH:MM:SS – время в формате часы:минуты:секунды
NAME – имя ресурса
STATUS – статус ресурса, может принимать значения: START STARTED (начало запуска), START COMPLETE (запуск завершен), STOP STARTED (начало завершения работы), STOP COMPLETE (окончание завершения работы). Ресурс может аварийно завершить свою работу в любой момент времени.
SYSTEM START – отмечает начало работы системы после перезагрузки
То есть файл вида:
12.04.2015 12:34:46 SYSTEM START
12.04.2015 12:34:46 A: START STARTED
12.04.2015 12:34:47 B: START STARTED
12.04.2015 12:34:48 B: START COMPLETE
12.04.2015 12:34:49 A: START COMPLETE
12.04.2015 12:34:50 C: START STARTED
12.04.2015 12:34:51 A: STOP STARTED
12.04.2015 12:34:52 A: STOP COMPLETE
12.04.2015 12:34:55 SYSTEM START
Хранит сведения о том, что:
-12 апреля 2015-го года, в 12:34:46 система начала работу после перезагрузки, 12 апреля 2015-го года, в 12:34:55 система была снова перезагружена
-Ресурс A начал запуск в 12:34:46, закончил запуск в 12:34:49, начал завершение в 12:34:51, закончил завершение в 12:34:52
-Ресурс B начал запуск в 12:34:47, закончил запуск в 12:34:48 и не завершился до следующей перезагрузки
-Ресурс C начал запуск в 12:34:50, и не закончил запуск до следующей перезагрузки
Требуется:
Разработать программу на языке Perl, которая:
1) Позволит анализировать данный файл и выдавать анализ вида:
Start 1:
A started 3 seconds
A stopped 1 second
B started 1 second
C start didn’t end
Start 2:
…
2) Позволит работать с данными, разбитыми на несколько файлов (то есть на любом моменте работы, система могла продолжить писать информацию о стартах/стопах в другой файл, например File1.log, File2.log, File3.log). В качестве аргументов программа принимает заданный список файлов (или указание директории, в которой хранятся файлы).
Критерии оценки
1. Соответствие требованиям
2. Максимальное покрытие возможных разновидностей use-case-ов
3. Сложность решения (алгоритмическая, программная и т. д.)