I think a HoH would make this problem a lot easier on the eye, so I offer a little example code, which does not print stuff out in the order you want, but hopefully gets you off in a slightly better direction: #!/usr/perl/bin
use strict;
my %printer_hash;
my $current_printer;
while(<DATA>)
{
if (/^printer/) {
my ($idle, $enabled);
($current_printer,$idle,$enabled) = (split)[1,3,4];
$printer_hash{$current_printer}{IDLE_STATUS} = $idle eq "idle"?0:1
+;
$printer_hash{$current_printer}{ENABLED} = $enabled eq "enable
+d"?"UP":"DOWN";
}
elsif ( /Interface:(.+)/i ) {
chomp;
$printer_hash{$current_printer}{INTERFACE} = (split /\//, $_)[
+-1];
}
elsif ( /Description: (.+)/i) {
$printer_hash{$current_printer}{INTERFACE} = $1;
}
elsif ( /Connection: (.+)/i) {
$printer_hash{$current_printer}{CONNECTION} = $1 eq "direct"?"loca
+l":"remote";
}
elsif (/Banner not required/) {
$printer_hash{$current_printer}{BANNER} = "NO";
}
}
foreach my $printer ( keys %printer_hash ){
foreach my $item ( keys %{$printer_hash{$printer}} ) {
print "$printer => $item: $printer_hash{$printer}{$item}\n";
}
}
__DATA__
printer llp is idle. disnabled since Wed Oct 23 15:54:08 GMT 2002. ava
+ilable.
Form mounted:
Content types: any
Printer types: unknown
Description: OPENprint printer llp
Connection: direct
Interface: /usr/lib/lp/model/standard
On fault: write to root once
After fault: continue
Users allowed:
(all)
Forms allowed:
(none)
Banner not required
Character sets:
(none)
Default pitch:
Default page size:
Default port settings: -opost
printer ps is idle. enabled since Wed Oct 23 15:54:17 GMT 2002. availa
+ble.
Form mounted:
Content types: postscript, simple
Printer types: unknown
Description: local printer
Connection: direct
Interface: /usr/lib/lp/model/net_lj4x
On fault: write to root once
After fault: continue
Users allowed:
(all)
Forms allowed:
(none)
Banner not required
Character sets:
(none)
Default pitch:
Default page size:
Default port settings:
Note that I have not thoroughly checked it, but by printing out the items in the HoH, you can put them in any order you would like, and have a good idea what is getting printed when instead of having to re-read your code and try to remember which part of the array you are printing in what location, etc.-enlil | [reply] [d/l] |