#! perl -nlw use strict; use vars qw[$format $headerProcessed $author $MRnumber $releaseNo $featureNo $featureName $filename $date]; BEGIN{ @ARGV = map{ glob } @ARGV; print STDERR "Processing files @ARGV"; $format = '%-25s ' x 9 . $/; $headerProcessed = 0; printf $format, 'File Name,', 'Author(Core ID),', 'Date (MM/DD/YEAR),', 'Release No.,', 'MR No.,', 'Feature No.,', 'Feature Name,', 'Paragrah No.,', 'Requirement No.'; } $headerProcessed = 0 if eof; unless ( $headerProcessed ) { $author = $1 . ',' if m[^Author \(Core ID\) : (.*$)]; $MRnumber = $1 . ',' if m[^MR Number : (.*$)]; $releaseNo = $1 . ',' if m[^Release Number : (.*$)]; ($featureNo, $featureName) = ($1 . ',', $2 . ',') if m[^Feature : (.*?) : (.*$)]; $filename = $1 . ',' if m[^File Name : (.*$)]; $date = $1 . ',' if m[^Modification Date : (.*$)]; $headerProcessed = 1 if m[^Paragraph Number Requirement Number Last Modified Release$]; } else { printf $format, $filename, $author, $date, $releaseNo, $MRnumber, $featureNo, $featureName, (split/\s+/)[0,1]; } __END__ C:\test>244122 244122.dat? Processing files 244122.dat1 244122.dat2 File Name, Author(Core ID), Date (MM/DD/YEAR), Release No., MR No., Feature No., Feature Name, Paragrah No., Requirement No. cpsfs_sdu_setup.fm, az1287, 10/24/2001, 16.1, sc018498.14, na, Add IP, SDUSETUP-SDU-249 CPSFS-SDUSETUP-224 cpsfs_sdu_setup.fm, bz1287, 10/24/2001, 16.1, sc018498.14, na, Add IP, SDUSETUP-SDU-249 CPSFS-SDUSETUP-224 C:\test>