package Customer; =begin * wait: simulates that the customer waits in the queue for a number of minutes, given as an integer parameter, while another customer is being served. Returns nothing. * hasLeft: Returns whether the customer has left the shop (true/false). No parameters. * getRequiredTime: Returns the time in minutes required to serve the customer. No parameters. * getPayment: Returns the amount (integer, in GBP) which the customer needs to pay. No parameters. =cut use Moo; use constant TIME => 10; use constant COST => 1; sub wait { } # overridden in MaleCustomer & FemaleCustomer sub hasLeft { 0 } # never leaves sub getRequiredTime { TIME } sub getPayment { COST } sub parentMethodOnly { 'inheritance check OK' } no Moose; __PACKAGE__->meta->make_immutable; 1;