in reply to Getting a Human Readable Report from a data file

Here you go :-)
#!/perl/bin/perl use strict; print "\n BCG LOCATION TRX STATUS"; print "\n ---------------------------------------------\n"; my $bcg;my $location; my $trx; my $status; while(<DATA>){ chomp; $bcg = $1 if /\b(BCG-\d+)\s+/ig; $location = $1 if /\b(SNBX\w+)\b/ig; if( /\s+(TRX-\d+)\s+\w\s+(BL-TRX)/ig){ $trx = $1; $status=$2; write; } } format STDOUT = @<<<<<< @<<<<<<<<<<< @<<<<<<< @<<<<<< $bcg, $location, $trx, $status . __DATA__ BCG-011 ULTRASITE U WO 1 BC011 WO + 05823 00051 BTS-025 U WO 0 0 SNBXCASD005X RF + 3 TRX-001 U BL-TRX 713 0 117 MBCCH P 4 TRX-002 U WO 729 0 117 0 05823 00052 BTS-026 U WO 0 0 SNBXCASD005Y RF + 3 TRX-005 U WO 722 0 117 MBCCH P 3 TRX-006 U BL-TRX 731 0 117 8 05823 00053 BTS-027 U WO 0 1 BCG-012 ULTRASITE U WO 1 BC011 WO + 05823 00051 BTS-025 U WO 0 0 SNBXCASD125T RF + 3 TRX-031 U BL-TRX 713 0 117 MBCCH P 4 TRX-012 U BL-TRX 729 0 117 0 05823 00052 BTS-026 U WO 0 0 SNBXLASD995Y RF + 3 TRX-005 U WO 722 0 117 MBCCH P 3 TRX-106 U BL-TRX 731 0 117 8 05823 00053 BTS-027 U WO 0 1
Isn't perl great! :-)

Replies are listed 'Best First'.
Re: Re: Newbie Needs Help!
by Ay_Bee (Monk) on Jan 29, 2003 at 12:37 UTC
    A very small suggested modification to an excellent reply. Format is a powerful tool use it to your advantage replace
    print "\n BCG LOCATION TRX STATUS"; print "\n ---------------------------------------------\n";
    with
    format STDOUT_TOP = BCG LOCATION TRX STATUS --------------------------------------------- .
    to give automatic page headers with a new page at every 60 lines ( the default ).
    Ay_Bee -_-_-_-_-_-_-_-_-_-_-_- My memory concerns me - but I forget why !!!