#!/usr/bin/perl --
use strict; use warnings;
use Tk;
use Tk::BrowseEntry;
my %foo = (
man => [ 'a'..'c' ],
manl => "man label",
manv => "",
choo => [ 66 .. 69 ],
chool => "choo label",
choov => "",
);
my $mw = tkinit;
$mw->BrowseEntry(
-choices => $foo{man},
-label => $foo{manl},
-variable => \$foo{manv},
)->pack;
$mw->BrowseEntry(
-choices => $foo{choo},
-label => $foo{chool},
-variable => \$foo{choov},
)->pack;
$mw->MainLoop;
use Data::Dump;
dd \%foo;
__END__
{
choo => [66 .. 69],
chool => "choo label",
choov => 68,
man => ["a", "b", "c"],
manl => "man label",
manv => "b",
}
#!/usr/bin/perl --
use strict; use warnings;
use Tk;
use Tk::BrowseEntry;
my $mw = tkinit;
my @barvar;
for my $ix ( 'A'..'C' ){
my @var = ( "", undef );
my $widget = foomanchoo(
$mw,
{
choices => [ map { $ix.' '.$_ } 1 .. 12 ],
label => "$ix label ",
variable => \$var[0],
}
);
$var[1] = $widget;
push @barvar, \@var;
}
$mw->MainLoop;
use Data::Dump;
dd \@barvar;
sub foomanchoo {
my ( $mw, $foo ) = @_;
my $bro = $mw->BrowseEntry(
-choices => $$foo{choices},
-label => $$foo{label},
-variable => $$foo{variable},
);
$bro->pack;
$bro;
}
__END__
[
[
"A 2",
bless({
_BE_buttonHack => 1,
_BE_curIndex => 1,
_BE_popped => 0,
_BE_Style => "MSWin32",
_TkValue_ => ".browseentry",
}, "Tk::BrowseEntry"),
],
[
"B 6",
bless({
_BE_buttonHack => 1,
_BE_curIndex => 5,
_BE_popped => 0,
_BE_Style => "MSWin32",
_TkValue_ => ".browseentry1",
}, "Tk::BrowseEntry"),
],
[
"C 4",
bless({
_BE_buttonHack => 1,
_BE_curIndex => 3,
_BE_popped => 0,
_BE_Style => "MSWin32",
_TkValue_ => ".browseentry2",
}, "Tk::BrowseEntry"),
],
]
References quick reference, Data::Diver, Lexical scoping like a fox, Variable Scoping in Perl: the basics, ... |