Object Oriented Design Pattern implementation in Perl