use strict; use warnings; use diagnostics; my @parsedline = (); my $dataline = ''; while(){ chomp; $dataline .= $_; if(/\s*[*]\s*$/){ @parsedline = split /\s*[*]\s*/,$dataline; print join("\n",@parsedline),"\n"; @parsedline = (); $dataline = ''; } } exit; __DATA__ Microsoft Corporation - DirectShow Version 6.4.05.0809 * Microsoft Corporation - Internet Server Version 4.02.0720 * Microsoft Corporation - Internet Explorer Version 5.00.2014.200 * Microsoft Corporation - Windows Installer - Version 2.0.2 * Excel Viewer Version 8.0 * Connectivity Version 2.10.2309 *