/usr/share/doc/libperlmenu-perl/examples/demo_top is in libperlmenu-perl 4.0-5.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | #!/usr/bin/perl
#*********************************************************************
# demo_top -- PerlMenu demo - Usage of "top menu" functions.
#
# Note: Perl4 - Requires curseperl
# Perl5 - Requires William Setzer's "Curses" extension
#
# Demonstrates technique to use "top" menu feature.
#
# Author: Steven L. Kunz
# Networked Applications
# Iowa State University Computation Center
# Ames, IA 50011
# Email: skunz@iastate.edu
#
# Date: February 1997
#********************************************************************
# Perl5+Curses ONLY!
# Comment these lines for use with Perl4/curseperl
BEGIN { $Curses::OldCurses = 1; }
use Curses; # PerlMenu needs "Curses"
use perlmenu; # Main menu package (Perl5 only)
require "./menuutil.pl"; # For "pause" and "print_nl" routines.
# Perl4/curseperl ONLY!
# Uncomment these lines for use with Perl4/curseperl
# (Did you remember to run "create_menu.pl"?)
#require "./menu.pl"; # Main menu package (Perl4 only)
#require "./menuutil.pl"; # For "pause" and "print_nl" routines.
$| = 1; # Flush after every write to stdout
# Prepare and display the main (top) menu
while (1) {
&menu_init(1,"PerlMenu Version 4.0",1,"-Top Menu Demonstration");
&menu_item("Exit this demo","exit");
&menu_item("Animal","animal");
&menu_item("Mineral","mineral");
&menu_item("Vegetable","vegetable");
# Get selection
$sel= &menu_display("");
# Process selection (ignore "up" at top level)
if ($sel ne "%UP%") {
if ($sel eq "exit") { exit; }
if ($sel eq "animal") { &animal(); } # Call lower level
elsif ($sel eq "mineral") { &mineral(); } # Call lower level
elsif ($sel eq "vegetable") { &vegetable(); } # Call lower level
}
}
# One level down - can call lower levels
sub animal {
while (1) {
&menu_init(1,"Lower animal menu");
&menu_item("Dog","dog");
&menu_item("Cat","cat");
$sel = &menu_display("");
if ($sel eq "%UP%") { return; } # "up" or "top"
if ($sel eq "dog") { &dog(); } # Call lower level
if ($sel eq "cat") { &cat(); } # Call lower level
}
}
# Two levels down
sub dog {
while (1) {
&menu_init(1,"Lower dog menu");
&menu_item("Lab","");
&menu_item("Collie","");
$sel = &menu_display("");
if ($sel eq "%UP%") { return; } # "up" or "top"
}
}
# Two levels down
sub cat {
while (1) {
&menu_init(1,"Lower cat menu");
&menu_item("Tabby","");
&menu_item("Siamese","");
$sel = &menu_display("");
if ($sel eq "%UP%") { return; } # "up" or "top"
}
}
# One level down - (no lower levels)
sub mineral {
while (1) {
&menu_init(1,"Lower mineral menu");
&menu_item("Shale","");
&menu_item("Limestone","");
$sel = &menu_display("");
if ($sel eq "%UP%") { return; } # "up" or "top"
}
}
# One level down - (no lower levels)
sub vegetable {
while (1) {
&menu_init(1,"Lower vegetable menu");
&menu_item("Carrot","");
&menu_item("Pea","");
$sel = &menu_display("");
if ($sel eq "%UP%") { return; } # "up" or "top"
}
}
|