[COLOR=#804040][b]use strict[/b][/color];
[COLOR=#804040][b]use warnings[/b][/color];
[COLOR=#804040][b]my[/b][/color] [COLOR=#008080]$DBG_INFO[/color] = [COLOR=#ff00ff]1[/color];
[COLOR=#804040][b]my[/b][/color] [COLOR=#008080]$csv_header[/color] = [COLOR=#ff00ff]"[/color][COLOR=#ff00ff]Job Nr; Begin Time; End Time; Command[/color][COLOR=#ff00ff]"[/color];
[COLOR=#804040][b]print[/b][/color] [COLOR=#ff00ff]"[/color][COLOR=#008080]$csv_header[/color][COLOR=#6a5acd]\n[/color][COLOR=#ff00ff]"[/color];
[COLOR=#804040][b]my[/b][/color] [COLOR=#008080]$line[/color];
[COLOR=#804040][b]while[/b][/color]([COLOR=#008080]$line[/color] = [COLOR=#008080]<DATA>[/color] ) {
[COLOR=#804040][b]chomp[/b][/color]([COLOR=#008080]$line[/color]);
[COLOR=#008080]&process_line[/color]();
}
[COLOR=#804040][b]sub [/b][/color][COLOR=#008080]trim [/color]{
[COLOR=#804040][b]my[/b][/color] [COLOR=#008080]$s[/color] = [COLOR=#804040][b]shift[/b][/color];
[COLOR=#008080]$s[/color] =~ [COLOR=#804040][b]s/[/b][/color][COLOR=#ff00ff]^[/color][COLOR=#6a5acd]\s[/color][COLOR=#6a5acd]+[/color][COLOR=#ff00ff]|[/color][COLOR=#6a5acd]\s[/color][COLOR=#6a5acd]+[/color][COLOR=#ff00ff]$[/color][COLOR=#804040][b]//g[/b][/color];
[COLOR=#804040][b]return[/b][/color] [COLOR=#008080]$s[/color]
}
[COLOR=#804040][b]sub [/b][/color][COLOR=#008080]process_line [/color]{
[COLOR=#804040][b]print[/b][/color] [COLOR=#ff00ff]"[/color][COLOR=#008080]$line[/color][COLOR=#6a5acd]\n[/color][COLOR=#ff00ff]"[/color] [COLOR=#804040][b]if[/b][/color] [COLOR=#008080]$DBG_INFO[/color];
[COLOR=#804040][b]my[/b][/color] [COLOR=#008080]@line_array[/color] = [COLOR=#804040][b]split[/b][/color]([COLOR=#804040][b]/[/b][/color][COLOR=#ff00ff],[/color][COLOR=#804040][b]/[/b][/color], [COLOR=#008080]$line[/color]);
[COLOR=#804040][b]my[/b][/color] [COLOR=#008080]$nr_fields[/color] = [COLOR=#008080]$#line_array[/color] + [COLOR=#ff00ff]1[/color];
[COLOR=#804040][b]print[/b][/color] [COLOR=#ff00ff]"[/color][COLOR=#ff00ff]numner of fields: [/color][COLOR=#008080]$nr_fields[/color][COLOR=#6a5acd]\n[/color][COLOR=#ff00ff]"[/color] [COLOR=#804040][b]if[/b][/color] [COLOR=#008080]$DBG_INFO[/color];
[COLOR=#804040][b]my[/b][/color] ([COLOR=#008080]$job[/color], [COLOR=#008080]$beg[/color], [COLOR=#008080]$end[/color], [COLOR=#008080]$cmd[/color]);
[COLOR=#008080]$job[/color] = trim([COLOR=#008080]$line_array[[/color][COLOR=#ff00ff]0[/color][COLOR=#008080]][/color]);
[COLOR=#008080]$beg[/color] = trim([COLOR=#008080]$line_array[[/color][COLOR=#ff00ff]1[/color][COLOR=#008080]][/color]);
[COLOR=#008080]$end[/color] = trim([COLOR=#008080]$line_array[[/color][COLOR=#ff00ff]2[/color][COLOR=#008080]][/color]);
[COLOR=#804040][b]if[/b][/color] ([COLOR=#008080]$#line_array[/color] > [COLOR=#ff00ff]3[/color]) {
[COLOR=#008080]$cmd[/color] = trim([COLOR=#804040][b]join[/b][/color]([COLOR=#ff00ff]'[/color][COLOR=#ff00ff],[/color][COLOR=#ff00ff]'[/color], [COLOR=#008080]@line_array[[/color][COLOR=#ff00ff]3.[/color].[COLOR=#008080]$#line_array][/color]));
}
[COLOR=#804040][b]else[/b][/color] {
[COLOR=#008080]$cmd[/color] = trim([COLOR=#008080]$line_array[[/color][COLOR=#ff00ff]3[/color][COLOR=#008080]][/color]);
}
[COLOR=#804040][b]my[/b][/color] [COLOR=#008080]$csv_line[/color] = [COLOR=#ff00ff]"[/color][COLOR=#008080]$job[/color][COLOR=#ff00ff]; [/color][COLOR=#008080]$beg[/color][COLOR=#ff00ff]; [/color][COLOR=#008080]$end[/color][COLOR=#ff00ff]; [/color][COLOR=#008080]$cmd[/color][COLOR=#ff00ff]"[/color];
[COLOR=#804040][b]print[/b][/color] [COLOR=#ff00ff]"[/color][COLOR=#008080]$csv_line[/color][COLOR=#6a5acd]\n[/color][COLOR=#ff00ff]"[/color];
}
[COLOR=#0000ff]# your log data[/color]
[COLOR=#0000ff]__DATA__[/color]
[COLOR=#0000ff]111111, 2016-05-13 7:52:55, 2016-05-13 8:01:10, foo[/color]
[COLOR=#0000ff]222222, 2016-05-13 8:00:01, 2016-05-13 8:05:20, bar, baz[/color]
[COLOR=#0000ff]333333, 2016-05-13 9:25:30, 2016-05-13 9:10:30, spam, eggs, foobar [/color]