This file is indexed.

/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"
  }
}