in reply to How to use polymorphism in perl

use 5.014; package Car { sub new { bless \@_, shift } sub go { say "brmm!" } } package Spacecraft { sub new { bless \@_, shift } sub go { say "whoosh!" } } my $vehicle = int(rand 2) ? Car->new : Spacecraft->new; # Is $vehicle a car or a spacecraft? # It doesn't matter! $vehicle->go;
perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'