This is the what the value that should have been dumped was based on.
$main::objbase->[11] = sub { my $i = item->new('NAME','brown leather cloak','DESC','About four feet in length, this cloak is designed to help ward against bitter weather as well as provide cover in forested areas. The leather used to craft this cloak has been treated to resist water, allowing its user to stay dry during a serious rainstorm. Comfort has been tossed aside to provide as much protection without compromising weight limits.', 'ATYPE', 'supertorso', 'MASS', '7', 'VOL', '2', 'VAL', '25', 'AC', 5); $i->stats_change(19,3); return($i); };
Well, the only methods you call in that code are new() and stats_change(), and your new() method simply sets all the values to undef. If you want the new() method to set the values based on the arguments you pass in, you need to code it that way. :)