#!perl -w use strict; package initialize; sub new { my $class = shift; my $name = shift; bless \$name,$class; } sub IsFulfilled{ my $IsFulfilled = $_[1]; return $IsFulfilled ; } sub name { my $name = shift; $$name; } package Method; use base qw(initialize); sub checkIsFulfilled { } package NotMethod; use base qw(initialize); package ANDArray; use base qw(initialize); package ORArray; use base qw(initialize); package main; my $method = Method->new("First Method"); print $method->name(); print $method->IsFulfilled(0);