#!/usr/bin/perl use strict; use warnings; use Data::Dump::Streamer; ##!! use Foo; my $help = 'Please display this message'; my $foo = Foo->new; my $subref = $foo->subref; foreach my $pos (@{$subref->{order}}){ my $sub = $subref->{dispatch}->{$pos}; Dump ($sub); ###!! } #### my ($self); $self = bless( {}, 'Foo' ); $CODE1 = sub { package Foo; use warnings; use strict 'refs'; $self->suba; }; my ($self); $self = bless( {}, 'Foo' ); $CODE1 = sub { package Foo; use warnings; use strict 'refs'; $self->subb; }; #### package Foo; use strict; use warnings; sub new { bless {}, shift; } sub suba { # my $self = shift; my $param = shift || ''; print "Message is: $param\n"; } sub subb { return; } sub subref { my $self = shift; return { order => ['A', 'B'], dispatch => { A => \&suba, ##! B => \&subb, ##! } }; } 1; #### POS: A $CODE1 = sub { package Foo; use warnings; use strict 'refs'; my $param = shift @_ || ''; print "Message is: $param\n"; }; Message is: Please display this message POS: B $CODE1 = sub { package Foo; use warnings; use strict 'refs'; return; };