Thank you very much for your input. It is very helpful. I am enclosing package X10::Item.pm.
package X10::Item;
#---------------------------------------------------------------------
+---------#
# Libraries.
+ #
#---------------------------------------------------------------------
+---------#
use 5.006;
use version; our $VERSION = qv('0.01');
use lib qw'lib/ ../lib';
use strict;
use warnings;
use Data::Dumper;
#---------------------------------------------------------------------
+---------#
# Attributes.
+ #
#---------------------------------------------------------------------
+---------#
sub new {
my $self = {};
$self->{PARENT} = undef;
$self->{TYPE} = undef;
$self->{NAME} = undef;
$self->{STATE} = undef;
$self->{HU} = undef;
$self->{DIMLEVEL} = undef;
bless($self);
return $self;
}
sub parent {
my $self = shift;
if (@_) { $self->{PARENT} = shift }
return $self->{PARENT};
}
sub type {
my $self = shift;
if (@_) { $self->{TYPE} = shift }
return $self->{TYPE};
}
sub name {
my $self = shift;
if (@_) { $self->{NAME} = shift }
return $self->{NAME};
}
sub state {
my $self = shift;
if (@_) { $self->{STATE} = shift }
return $self->{STATE};
}
sub hu {
my $self = shift;
if (@_) { $self->{HU} = shift }
return $self->{HU};
}
sub dimlevel {
my $self = shift;
if (@_) { $self->{DIMLEVEL} = shift }
return $self->{DIMLEVEL};
}
sub timer {
my $self = shift;
if (@_) { $self->{TIMER} = shift }
return $self->{TIMER};
}
1;