http://www.perlmonks.org?node_id=1017042

navinc has asked for the wisdom of the Perl Monks concerning the following question:

I have about 30,000 log files which need to be prepped for ingest into a log processor. Here's what the format of the files looks like

PCName: Foo1 Command1:dfie Command2:dfo Command3:dfum PCName: Foo2 Command1:dfie Command2:dfo Command3:dfum

The log processor needs the PCName to appear as the line before each Command. Hence the output of the scripts should be

PCName: Foo1 Command1:dfie PCName: Foo1 Command2:dfo PCName: Foo1 Command3:dfum PCName: Foo2 Command1:dfie PCName: Foo2 Command2:dfo PCName: Foo2 Command3:dfum
Any ideas on how to do this in an efficient manner?

The list of commands varies from a couple to dozens for some PC's. Also for brevity I've left out the fact that the results of the commands are also present.

I've tried to use the solution put forth here http://docstore.mik.ua/orelly/perl/cookbook/ch09_11.htm to divide the file into sections by PCName and then further into sections divided by Commands and then modify the command sections to add the PCName prefix.

The files are upto 1MB max so slurping is fine. However I want to ensure that the performance holds up. Also wanted to check if there is an easier way to do this using some Perl Modules.

Thanks.