init III
This commit is contained in:
77
Perl Skript template/menu.pm
Normal file
77
Perl Skript template/menu.pm
Normal file
@@ -0,0 +1,77 @@
|
||||
package menu;
|
||||
require Exporter;
|
||||
|
||||
use functions;
|
||||
|
||||
use vars qw($VERSION @ISA @EXPORT);
|
||||
$VERSION = 1.00;
|
||||
@ISA = qw(Exporter);
|
||||
###############################################################################
|
||||
@EXPORT = qw/
|
||||
show_menu
|
||||
menu_back
|
||||
|
||||
|
||||
/;
|
||||
|
||||
|
||||
######## Menu Funktionen und Beispielnutzung
|
||||
# x|y|z x:reihenfolge y:zeichen für die auswahl z:Text im Menü
|
||||
# my %menu = (
|
||||
# '1|1|P1' => \&ebene1_a,
|
||||
# '97' => 'blank',
|
||||
# '98' => 'line',
|
||||
# '99|0|ende' => \&ebene1_quit,
|
||||
# );
|
||||
#show_menu(\%menu, "Hauptmenü");
|
||||
#sub ebene1_a {
|
||||
# my %menu = (
|
||||
# '1|1|blabla' => \&ebene1_b,
|
||||
# '97' => 'blank',
|
||||
# '98' => 'line',
|
||||
# '99|0|zurück' => \&menu_back,
|
||||
# );
|
||||
# show_menu(\%menu, "Untermenü");
|
||||
#}
|
||||
#sub ebene1_b {
|
||||
#}
|
||||
#sub ebene1_quit {
|
||||
# exit 0;
|
||||
#}
|
||||
|
||||
sub show_menu {
|
||||
my $m=shift;
|
||||
my $t=shift;
|
||||
my %m=%{$m};
|
||||
my %menu;
|
||||
my $k, $e;
|
||||
|
||||
while (1) {
|
||||
clrscr();
|
||||
printf "\n $t\n\n";
|
||||
foreach my $l (sort keys %m) {
|
||||
if ($m{$l} eq "blank") {
|
||||
printf "\n";
|
||||
}
|
||||
elsif ($m{$l} eq "line") {
|
||||
for (1..26) { printf "-"; } printf "\n";
|
||||
}
|
||||
else {
|
||||
my ($r,$k,$e) = split /\|/, $l;
|
||||
$menu{$k}=$m{$l};
|
||||
printf " %2s %-20s\n", $k, $e;
|
||||
}
|
||||
}
|
||||
print "\nAuswahl: ";
|
||||
my $in = <STDIN>;
|
||||
chomp $in;
|
||||
$menu{$in}->() unless ($menu{$in} == "");
|
||||
}
|
||||
}
|
||||
|
||||
sub menu_back {
|
||||
# call: nur in Verwendung mit show_menu sinnvoll
|
||||
last;
|
||||
}
|
||||
|
||||
1;
|
||||
Reference in New Issue
Block a user