Kenton Brede wrote:
> 
> I've cobbled some code together that will allow me to parse a file
> snarfing 4 lines which consist of server name and Daily output of
> bandwith usage.  I've pasted an example of what I have at the bottom of
> this mail.  If anyone would like to take the time to show me how it
> should really be done I would apreciate it.  I'm not exactly a
> programming wonder and trying to learn.

James covered a lot of good points so I won't go over them again.  When
I see groups of input lines I usually think: "Can I modify the Input
Record Separator to capture the whole group?"  If you can do that then
you can use a while loop to read one group at a time and not have to
slurp the entire file to process it.


#!/usr/bin/perl
use warnings;
use strict;

$/ = "\n* ";
while ( <DATA> ) {
    next unless /Daily/;
    chomp;
    s/\A(.+?)^//sm and my $name = $1;
    s/\A.+(?=^.*?Daily)//sm;
    print "* $name$_";
    }

__DATA__

* Leo

# Bandwidth Usage
eth0 Total for 106.95 days:
    RX 307.28 MB
    TX 768.05 MB
eth0 Daily average:
    RX 2.87 MB
    TX 7.18 MB

* Buffy2

# Bandwidth Usage
eth0 Total for 14.70 days:
    RX 141.28 MB
    TX 2.03 MB
eth0 Daily average:
    RX 9.61 MB
    TX 0.14 MB



John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to