use strict;
use Config;
use vars qw(%Config);
print "My default pager is $Config{pager}\n";
####
sub colorize {
# Autoload here
eval {require Term::ANSIColor};
if ($@ =~ /locate Term::ANSIColor/) {
print "Cannot locate Term::ANSIColor.\n",
"Color support disabled\n";
return;
}
elsif ($@) {
die $@;
}
my $color = shift;
my $escape_code = eval {color($color)};
if ($@) {
print "Invalid color '$color'\n";
return color('reset');
}
else {
return $escape_code;
}
}
####
my ($case, $data) =(split /\s/, $input, 2;
$case = lc($case);
if (exists $handler{$case}) {
$handler{$case}->($data);
}
else {
do_default($input);
}
####
@cases = [
# etc
{
case => 'l',
desc => 'co_or to change the menu item color',
func => sub {
print "change menu item color to: ";
my $newcolor=<>;
chomp $newcolor;
$color=colorize($newcolor);
},
},
# etc
};