Gentlemen,

I still have no luck after trying your suggestions. I could use some more
ideas if you guys dont mind. Please send them my way, I ll appreciate it.

A

On Thu, Sep 18, 2008 at 3:03 AM, Dr.Ruud
<[EMAIL PROTECTED]<[EMAIL PROTECTED]>
> wrote:

> "John W. Krahn" schreef:
>
> > #!/usr/bin/perl
> > use warnings;
> > use strict;
> >
> > open SERVERS, '<', 'sample.txt' or die "Cannot open 'sample.txt' $!";
> >
> > # set the Input Record Separator
> > $/ = "--------------------------\n";
> >
> > while ( <SERVERS> ) {
> >      my $server_name = /^Server Name:\s+(.+)/m;
> >      my $manufac     = /^Manufacturer:\s+(.+)/m;
> >      my $model       = /^Model:\s+(.+)/m;
> >      my $num_procs   = /^Number Of Processors (Includes
> > MultiThread):\s+(\d+)/m;
> >      my $serial_num  = /^Serial Number:\s+(.+)/m;
> >      my $mem         = /^Mem Total:\s+(.+)/m;
> >      my @disks       = /^DeviceID:\s+([A-Z]:)/mg;
> >      my $spack       = /^Service Pack:\s+(.+)/m;
> >
> >      print join( ':', $server_name, $manufac, $model, $num_procs,
> > $serial_num, $mem, @disks, $spack ), "\n";
> >      }
> >
> > __END__
>
> Nice approach, but it needs a s/(my \$\S+)/($1)/g.
>
>
> my @title = do { no warnings 'qw';
>    qw/Server_Name Manufacture Model #_of_Procs Serial# Total_Mem Disk1
> Disk2 Disk3 Service_Pack/;
> };
> print join("\t", @title), "\n";
>
> # set the Input Record Separator
> $/ = "--------------------------\n";
>
> while ( <SERVERS> ) {
>     my ($server_name) = /^Server Name:\s+(.+)/m;
>     my ($manufac    ) = /^Manufacturer:\s+(.+)/m;
>     my ($model      ) = /^Model:\s+(.+)/m;
>     my ($num_procs  ) = /^Number Of Processors \(Includes
> MultiThread\):\s+(\d+)/m;
>     my ($serial_num ) = /^Serial Number:\s+(.+)/m;
>     my ($mem        ) = /^Mem Total:\s+(.+)/m;
>     my @disks         = /^DeviceID:\s+([A-Z]:)/mg;
>     my ($spack      ) = /^Service Pack:\s+(.+)/m;
>
>     push @disks, "" while @disks < 3;
>     print join( "\t", $server_name, $manufac, $model, $num_procs,
> $serial_num, $mem, @disks, $spack ), "\n";
> }
>
>
>
> A next step could be to set up
>
>    my $qr_a = qr/(.+)/;
>    my $qr_d = qr/([0-9]+)/;
>
>    my %fields = (
>        "Server Name"   => $qr_a,
>        "Manufacturer"  => $qr_a,
>        "Model"         => $qr_a,
>        "Number Of Processors (Includes MultiThread)" => $qr_d;
>        "Serial Number" => $qr_a,
>        "Mem Total"     => $qr_a,
>        "@DeviceID"     => qr/([A-Z]:)/;
>        "Service Pack"  => $qr_a,
>    );
>
> and code a mini parser. Or use a parser module.
>
> --
> Affijn, Ruud
>
> "Gewoon is een tijger."
>
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> http://learn.perl.org/
>
>
>

Reply via email to