#perl -T use strict; use warnings; use Test::More tests => 2 + 1; use Test::NoWarnings; BEGIN { use_ok('Tie::Sub'); } my $test = Tie::Sub::Test->new({test_key => 'test_value'}); tie my %test, 'Tie::Sub', sub { my ($method, $parameter) = @_; return $test->$method($parameter); }; is( $test{[get => 'test_key']}, 'test_value', 'method return value', ); package Tie::Sub::Test; sub new { my ($class, $param) = @_; return bless $param, $class; } sub get { return shift->{shift()}; }