package PrintVisitor; # class for grouping together all the different print messages for car parts use warnings; use strict; use Carp; sub new { my $class = shift; my $self = {}; bless $self,$class; return $self; } sub visitWheel { my $self = shift; my $wheel = shift; print "Visiting " . $wheel->name . " wheel\n"; } sub visitEngine { my $self = shift; my $engine = shift; print "Visiting engine\n"; } sub visitBody { my $self = shift; my $body = shift; print "Visiting body\n"; } sub visitCar { my $self = shift; my $car = shift; print "Visiting car\n"; } 1;