Поскольку вы не указали, как должен выглядеть результат на самом деле, я взял удар в темноте и сделал предположение, посмотрев на входные данные и ваши регулярные выражения.
Для получения кода качества продукции, пожалуйста, следуйте совету @Grinnz, чтобы использовать вместо него Text :: CSV .
#!/usr/bin/perl
use strict;
use warnings;
print "Entry,Site,Author,Release,Date,Version,Changes,Comment\n";
my @entries;
while( ) {
chomp;
if (my($site) = /^Route:\s+(.+)$/) {
# start of new entry
push(@entries, {
site => $site,
});
} elsif (my($author) = /^Author:\s+(.+)$/) {
$entries[-1]->{author} = $author;
}
}
foreach my $index (0..$#entries) {
my $entry = $entries[$index];
print "$index,$entry->{site},$entry->{author},,,,,\n";
}
__DATA__
Route: TUCSON-AZ
Author: upham
Date: 2018-06-07 20:09:17 UTC
Release:0.0
Content:
Full Release
Comment:
Initial setup
*** Modified on Mon Jun 11 19:18:40 PDT 2018 by upham ***
QRC Acceptor: Admin
Log: http://universityofarizona/ECE101/rev0.0_060718_130854-4307-1528769914.qclog
Successful
Status: {Objects succeeded (1)} {}
--------------------------------------------------
Route: YUMA-AZ
Author: upham
Date: 2018-06-07 20:09:18 UTC
Release:0.0
Content:
Full Release
Comment:
Initial setup
*** Modified on Tue Sep 25 15:40:02 PDT 2018 by upham ***
QRC Acceptor: Admin
Log: http://universityofarizona/ECE101/rev0.0_060718_130854-4307-1537915198.qclog
Successful
Status: {Objects succeeded (33)} {}
--------------------------------------------------
Пример выполнения:
$ perl dummy.pl
Entry,Site,Author,Release,Date,Version,Changes,Comment
0,TUCSON-AZ,upham,,,,,
1,YUMA-AZ,upham,,,,,
РЕДАКТИРОВАТЬ: альтернативным подходом будет использование
if (/^Route:/../^----------/) {
# we are inside a log entry...
}
и затем обнаружение
my($keyword, $data) = /^(\w+):\s*(.*)$/;
my($line) = /^\s+(.+)$/;
внутри этого блока.
У меня есть целый список инструментов, без которых я не могу жить:
Это - в значительной степени все, о чем я могу думать первое, что пришло на ум, но это - в значительной степени все, что я использую каждый день.
Я удивлен, что никто не упомянул XDebug до сих пор. Включите XDebug в своей разработке и любите представлять, отслеживания стека и если Ваш IDE поддерживает его, точки останова. Самый достойный инструмент.
Я не мог жить без:
Я использую Aptana для IDE.
Это интегрировало FTP и превосходные подсказки кода и завершение для HTML, JavaScript и PHP (с плагином).
http://aptana.com/studio/download <-бесплатная общественная версия (что я использую),
1) Редактор: TextMate, я действительно люблю этого редактора.
2) Отладка: комбинация записи устойчивого сообщения об ошибке в программном обеспечении, Firebug и Веб-разработчике (плагины Firefox) и апачский парсинг блога
3) Инструменты: jQuery является моей любимой игрушкой прямо сейчас, я делаю много аккуратного материала с ним и действительно приношу некоторой базе данных управляемые административные приложения "к жизни".
4) Платформа: Я должен все же реализовать платформу для разработки PHP. Кроме многих отрывков и вещей, которые я соединил, я в значительной степени пишу все вручную. Я действительно хотел бы принять платформу, но просто не имел времени, чтобы сесть и изучить то.. Я в значительной степени установлен при движении с Пирогом или CI - что делает Вас, парни думают?
5) Тестирование перекрестного браузера: Честно, я просто использую живые машины.. Я услышал очень смешанные вещи о browsershots.org и не изучил другие опции. Мы просто тестируем весь наш материал на нескольких платформах/браузерах для обеспечения совместимости через плату.
Первое, что пришло на ум - вещи я не мог жить без:
Другие вещи, которые должны быть в этом списке, но не являются, потому что я лично еще не нашел правильный инструмент:
Проекты PHP могут быть сохранены в Сервере Основы Команды. Это обеспечивает сквозное управление проектами, управление процессами, жизненный цикл приложения, управление исходным кодом, автоматизацию сборки и создание отчетов.
Я знаю, что этот ответ вряд ли получит много 'взлетов', но если Вы знаете то, что Вы делаете, TFS может иметь удивительное значение к проектам на любом языке. Просто недавно я сделал миграцию мейнфреймового Кобола в TFS, работы обработка.
Я не мог жить без; 1.codeigniter платформа. 2. Ftp Filezilla. 3.and хороший IDE,
PhpEd для отладки PHP, ступающей через код, работая для данного случая, управляет и т.д. Это - v.v.v.мило.
phpMyAdmin (принимающий Вы используете MySQL, конечно).
Отладчик Шага зенда / Studio Зенда
Документация php.net
Любой IDE с подсветкой синтаксиса.
Я предполагаю, что можно добавить stackoverflow к тому списку теперь хотя :)
Вы не упомянули, какую операционную систему используете, поэтому я не могу направить свой список на то, что может быть полезно для вас: