"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/