package DynamicObject; sub new { my ( $pkg, %args ) = @_; my $self = { "method" => \&correlation, %args }; return bless $self, $pkg; } sub correlation { print "This is the correlation function!\n"; } sub setMethod { my ( $self, $key, $function ) = @_; $self -> { $key } = $function; } sub callMethod { my ( $self, $function, @arguments ) = @_; if( exists $self -> { $function } ) { &{ $self -> { $function } }( @arguments ); } else { print "Unknown function '$function' called.\n"; } } 1;