this should give you a running start. probably, you'll want to modify the %printer_info key to only include the values you want, and you'll want to display the keys in the order you want.
#!/usr/bin/perl require 5.006; use strict; use warnings; $|++; my $infile = "t-printerstatus.input"; open( inputFH, "<", $infile ) or die "Can't open $infile for reading: $!\n"; my $logfile = "t-printerstatus.output"; open ( logFH, ">", $logfile ) or die "can't open $logfile for writing: $!\n"; my %printer_info = (); { ## set the input record separator to a double-newline local $/ = "\n\n"; while( my $record = <inputFH> ) { ## seperate the items in the record ## the first item is the key to the printer_info hash ## an item ends with a newline not followed by ## spaces and an open parenthesis my( $key, @item ) = split /(?x) \n (?! \s+ \( )/, $record; ## remove all leading whitespace from each item s/^\s*// for @item; ## split each item on a colon, ## add to the key in the printer_info hash for( @item ) { my( $name, $value ) = split /:\s+/, $_; @{ $printer_info{$key} }{$name} = $value; } } } use Data::Dumper; $Data::Dumper::Indent = 1; print Dumper \%printer_info;
~Particle *accelerates*
In reply to Re: Array insertion problem
by particle
in thread Array insertion problem
by kirk123
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |