successfully wrapping sudo
[scpubgit/Object-Remote.git] / lib / Object / Remote / SubCaller.pm
CommitLineData
92237e22 1package Object::Remote::SubCaller;
2
3use Module::Runtime qw(use_module);
4
5sub new { bless({}, ref($_[0])||$_[0]) }
6
7sub call {
8 my ($self, $name, @args) = @_;
9 my ($pkg, $sub_name) = $name =~ /^(.+)::([^:]+)$/
10 or die "Couldn't split ${name} into package and sub";
11 if (my $sub = use_module($pkg)->can($sub_name)) {
12 return $sub->(@args);
13 } else {
14 die "No subroutine ${sub_name} in package ${pkg}";
15 }
16}
17
181;