sub printList { my $self = shift; my $fh = shift; foreach my $struct (values %{$self->list}) { $type = $struct->type; $name = $struct->name; $action = $struct->hu; if ( $struct->type =~ /LIGHT|FAN|CAMERA|CHRISTMAS/ ) { printf($fh " %s %-22s %s\n", $struct->type,$struct->name,$struct->hu); } if ( $struct->type =~ /ZONE/ ) { printf($fh "ZONE %-22s %s\n", $struct->name,$struct->hu); printf $fh " SECURITY %-22s %s\n", $struct->name,$struct->security; printf $fh " STATE %-22s %s\n", $struct->name,$struct->state; printf $fh " BATTERY %-22s %s\n", $struct->name,$struct->battery; &printList($struct,$fh); } if ( $struct->type =~ /GROUP/ ) { printf($fh " GROUP %-22s %s\n", $struct->name,$struct->hu); printf $fh " SECURITY %-22s %s\n", $struct->name,$struct->security; printf $fh " STATE %-22s %s\n", $struct->name,$struct->state; printf $fh " BATTERY %-22s %s\n", $struct->name,$struct->battery; &printList($struct,$fh); } if ( $struct->type =~ /AREA/ ) { printf($fh " AREA %-22s %s\n", $struct->name,$struct->hu); printf $fh " SECURITY %-22s %s\n", $struct->name,$struct->security; printf $fh " STATE %-22s %s\n", $struct->name,$struct->state; printf $fh " BATTERY %-22s %s\n", $struct->name,$struct->battery; &printList($struct,$fh); } } } sub printConfig { my $configfile = shift; my $house = shift; my $space = ""; open(my $fh, ">$configfile"); printf($fh "ZONE %-22s %s\n", $house->name,$house->hu); printf $fh " SECURITY %-22s %s\n", $house->name,$house->security; printf $fh " STATE %-22s %s\n", $house->name,$house->state; printf $fh " BATTERY %-22s %s\n", $house->name,$house->battery; &printList($house,$fh,$house->type); close($fh); }