Term-Menus
view release on metacpan or search on metacpan
* Version 3.000
* Fixed for BerkeleyDB init to match FullAuto.
2016-01-09 Brian M. Kelly <Brian.Kelly@fullauto.com>
* Version 2.99
* Disabled SIG{__DIE__} for PadWalker.
2015-12-31 Brian M. Kelly <Brian.Kelly@fullauto.com>
* Version 2.98
* Fixed output when banner menu is last.
2015-12-27 Brian M. ielly <Brian.Kelly@fullauto.com>
2013-08-03 Brian M. Kelly <Brian.Kelly@fullauto.com>
* Version 2.39 released.
* Label elements renamed to "Name" elements
and are no longer explicitly "required"
for most anticipated usages of Term::Menus;
though, are needed for some constructs and
are therefore considered "best practice".
Now using the CPAN modules PadWalker and
Devel::Symdump to dynamically discover
*MOST* Menu names.
* Fixed a number of navigation components when
using dynamic and anonymous Menus constructs.
* Changed documentation to reflect changes, and
describe "Explicit Named Macros" and coding
approaches for their usage.
provides:
Term::Menus:
file: lib/Term/Menus.pm
version: 3.041
TMMemHandle:
file: lib/Term/Menus.pm
requires:
Capture::Tiny: 0
Data::Dump::Streamer: 0
Devel::Symdump: 0
PadWalker: 0
Term::ReadKey: 0
Term::RawInput: 0
resources:
license: http://www.gnu.org/licenses/agpl.html
version: 3.041
Makefile.PL view on Meta::CPAN
# Define metadata
name 'Term-Menus';
sign;
author 'Brian M. Kelly <Brian.Kelly@fullauto.com>';
license 'agpl_3';
all_from 'lib/Term/Menus.pm';
requires 'Module::Build' => 0;
requires 'Data::Dump::Streamer' => 0;
requires 'PadWalker' => 0;
requires 'Devel::Symdump' => 0;
requires 'Term::ReadKey' => 0;
requires 'Term::RawInput' => 0;
requires 'Capture::Tiny' => 0;
auto_install;
WriteAll;
package MY; # so that "SUPER" works right
sub MY::distdir {
lib/Term/Menus.pm view on Meta::CPAN
} else {
$termwidth='';$termheight='';
}
if ($termwidth) {
eval { require Term::RawInput };
unless ($@) {
$term_input=1;
import Term::RawInput;
}
}
eval { require PadWalker };
unless ($@) {
$padwalker=1;
import PadWalker;
}
eval { require Devel::Symdump };
unless ($@) {
#$devel_symdump=1;
import Devel::Symdump;
}
our $clearpath='';
if ($^O ne 'MSWin32' && $^O ne 'MSWin64') {
if (-e '/usr/bin/clear') {
$clearpath='/usr/bin/';
lib/Term/Menus.pm view on Meta::CPAN
my $name='';
unless (ref $_[0] eq 'HASH') {
return '';
} else {
my $flag=1;
my $n=0;
WH: while (1) {
{
local $SIG{__DIE__}; # No sigdie handler
eval {
$name=PadWalker::var_name($n++,$_[0]);
};
if ($@) {
undef $@;
my $o=0;
while (1) {
eval {
my $vars=PadWalker::peek_our($o++);
foreach my $key (keys %{$vars}) {
if (ref $vars->{$key} eq 'HASH' &&
%{$_[0]} eq %{$vars->{$key}}) {
$name=$key;
last;
}
}
};
if ($@) {
undef $@;
lib/Term/Menus.pm view on Meta::CPAN
next if $hash=~/^DynaLoader::/;
next if $hash=~/^warnings::/;
next if $hash=~/^utf8::/;
next if $hash=~/^Carp::/;
next if $hash=~/^fields::attr/;
next if $hash=~/^Text::Balanced::/;
next if $hash=~/^Data::Dump::Streamer/;
next if $hash=~/^re::EXPORT_OK/;
next if $hash=~/^fa_code::email_addresses/;
next if $hash=~/^fa_code::email_defaults/;
next if $hash=~/^PadWalker::/;
next if $hash=~/^Fcntl::/;
next if $hash=~/^B::Utils::/;
next if $hash=~/^ExtUtils::/;
next if $hash=~/^Exporter::/;
next if $hash=~/^Moo::/;
next if $hash=~/^overload::/;
next if $hash=~/^Term::ReadKey::/;
next if $hash=~/^main::INC/;
next if $hash=~/^main::SIG/;
next if $hash=~/^main::ENV/;
( run in 0.928 second using v1.01-cache-2.11-cpan-05444aca049 )