in reply to Key-Board Interactive Perl Application
For that sort of application I use light weight OO. Consider:
use strict; use warnings; my $obj = bless {indent => '...'}; for my $suffix (qw(hello world)) { my $func = $obj->can("print_$suffix"); next if ! $func; $func->($obj, " (suffix was $suffix)"); } sub print_hello { my ($self, $suffix) = @_; print "$self->{indent}hello$suffix\n"; } sub print_world { my ($self, $suffix) = @_; print "$self->{indent}world$suffix\n"; }
Prints:
...hello (suffix was hello) ...world (suffix was world)
There are a few subtle things going on there. If you've not used OO before notice that the object ($obj) carries along a hash reference so you can provide common information (see how 'indent' is used).
The reason the sub names have a 'print_' prefix is so that user provided names can't be used to call unintended subs.
|
|---|