$self->xml()->$_() for values %{STUFF()}; #### #!/usr/bin/env perl -l use strict; use warnings; package With::Xml; sub new { bless {} => 'With::Xml' } sub xml { print "With::Xml::xml(): @_"; $_[0] } sub first_name { print "With::Xml::first_name(): @_" } sub last_name { print "With::Xml::last_name(): @_" } package main; use constant STUFF => { name1 => 'first_name', name2 => 'last_name', }; my $self = With::Xml::->new(); $self->xml()->$_() for values %{STUFF()}; #### With::Xml::xml(): With::Xml=HASH(0x7f9b998040b0) With::Xml::first_name(): With::Xml=HASH(0x7f9b998040b0) With::Xml::xml(): With::Xml=HASH(0x7f9b998040b0) With::Xml::last_name(): With::Xml=HASH(0x7f9b998040b0)