_hp => $arg{hp} || rand (10) + 2
####
sub damage {
my ($self, $hits) = @_;
####
$self->{_hp} - $hits;
####
use strict;
use warnings;
package Peasant;
use strict;
sub new {
my ($class, %arg) = @_;
my $objref = {
_name => $arg{name} || "unknown",
_hp => $arg{hp} || rand (10) + 2
};
bless $objref, $class;
return $objref;
}
sub damage {
my ($self, $hits) = @_;
print "$hits damage\n";
$self->{_hp} - $hits;
}
sub name {return shift->{_name}; }
sub attack {
my $self = shift;
my $int = int(rand(5));
print "$self->{_name} attacks for $int.....\n";
return $int;
}
1;
package main;
my $henry = Peasant->new(name => "Henry", hp => "15");
my $joe = Peasant->new(name => "Joe", hp => "15");
$joe->damage($henry->attack ());
$henry->damage($joe->attack ());
####
Henry attacks for 1.....
1 damage
Joe attacks for 1.....
1 damage