in reply to dynamic perl calls

It seems to me that you basically want something like App::Sequence. You could look at how it does what it does. Personally, I'd use a separate namespace for all user commands, but you can also use the main:: namespace and call the functions in it:

#!perl -w use strict; sub hello { print "Hello $_\n" for @_ }; sub bye { print "Goodbye $_\n" for @_ }; my $namespace = \%main::; my ($command,@args) = @ARGV; if (! exists $namespace->{$command}) { warn "Unknown command '$command'. Valid commands are:\n"; for (sort keys %$namespace) { if (defined *{$namespace->{$_}}{CODE}) { warn "$_\n"; }; }; die "$0 stopped.\n"; } else { my $code = $namespace->{$command}; $code->(@args); }; __END__ Q:\>perl -w tmp.pl x Unknown command 'x'. Valid commands are: bye hello tmp.pl stopped. Q:\>perl -w tmp.pl hello Foo Hello Foo Q:\>perl -w tmp.pl bye Foo Goodbye Foo Q:\>

Replies are listed 'Best First'.
Re^2: dynamic perl calls
by Anonymous Monk on Feb 10, 2009 at 13:27 UTC
    Thanks Moritz and Corion. App::Sequence is very close to what I want. I'll study your suggestions and learn. It does help a lot to know the right way to head. Much appreciated.