http://www.perlmonks.org?node_id=964520


in reply to Using function modules and passing arguments by parsing an XML.

I'm not quite sure of your requirement but this may help:
sub startElement { my( $parseinst, $element, %attrs ) = @_; SWITCH: { # ... if ($element eq "step") { my $command = $attrs{command}; $command =~ s/\s+//g; # get rid of spaces if ($command eq 'LaunchApp') { MyModule::LaunchApp(%attrs); } elsif ($command eq 'Changemode') { MyModule::Changemode(%attrs); } # and so on for each command last SWITCH; } } } # This is your functions module package MyModule; sub LaunchApp { my %attrs = @_; print "\n----\nIn Sub MyModule::LaunchApp\n"; for my $attr (keys %attrs) { print "$attr: $attrs{$attr}\n"; } print "Leaving Sub MyModule::LaunchApp\n----\n"; } sub Changemode { my %attrs = @_; print "\n----\nIn Sub MyModule::Changemode\n"; for my $attr (keys %attrs) { print "$attr: $attrs{$attr}\n"; } print "Leaving Sub MyModule::Changemode\n----\n"; } 1;