#Wiget.pm

package Widget;
use Class::Struct;
struct Widget =>
{
    total_widgets => '$',
    widgets_per_hour => '$'
}

---------------------------

package Widget;
use Carp;

sub new {
    my ($class, %paras) = @_;
    my %object;
    if (defined $paras{total_widgets}) {
        $object{'total_widgets'} = $paras{total_widgets};
    } else {
        $object{'total_widgets'} = undef;
    }

    if (defined $paras{widgets_per_hour}) {
        $object{'widgets_per_hour'} = $paras{widgets_per_hour};
    } else {
        $object{'widgets_per_hour'}=undef;
    }
    bless \%object, $class;
}


sub total_widgets {
    my ($object, $newval) = @_;
    croak "Too many arguments to total_widgets" if @_ > 2;
    $object->{'total_widgets'} = $newval if @_ == 2;
    return $object->{'total_widgets'};
}

sub widgets_per_hour{
    my ($object, $newval) = @_;
    croak "Too many arguments to widgets_per_hour" if @_ > 2;
    $object->{'widgets_per_hour''} = $newval if @_ > 1;
    return $object->{'widgets_per_hour'};
}
`
