eval 'exec /bin/perl -S $0 ${1+"$@"}'
if 0;
#Newsgroups: comp.lang.perl
#Path: lightnin!sdf!adaptex!egsner!convex!darwin.sura.net!europa.asd.contel.com!uunet!psinntp!juliet!news
#From: jja@amy (Joseph Alotta)
#Subject: Re: a menuing system in perl
#Message-ID: <
[email protected]>
#Keywords: menuing system
#Sender:
[email protected]
#Organization: First National Bank Of Chicago, Chicago IL, USA
#References: <
[email protected]>
#Date: Tue, 12 May 92 21:24:14 GMT
#Lines: 96
#Status: OR
#
#In article <
[email protected]>
[email protected] (Ken Mayer)
#writes:
#> I've always wanted to see a combination of curseperl and some other
#> library so you could create a general menuing 'system' Given some data
#> structure; throw a menu up on the screen and return the selection.
#> I've been too lazy to write one myself, and I keep thinking that
#> someone somewhere must have done this before.
#
#I am writing something now. Here's a test program that implements the
#menuing scheme. Don't tell anyone, ..... but... it uses...gasp..gotos.
#
TOP: {
system "clear";
print "Welcome to VAL-trade, the VALue-added trading system\n\n";
&choose('e:Entering Data:&p("function not implemented");TOP',
'l:list trades to be allocated:LIST',
'a:allocate a trade:ALLOCATE',
'q:Quit:QUIT' ); }
LIST: {
system "clear";
print "Enter Trader ID:\n";
$trader = scalar(<STDIN>);
chop($trader);
@rows = &lookup($trader);
&printRows(*rows);
&choose('r:Return to Top:TOP',
'q:Quit:QUIT');
}
ALLOCATE:
{
system "clear";
print "Enter Ticket Number of Trade to Allocate\n";
$ticket = scalar(<STDIN>);
&breakdown($ticket);
&choose('r:Return to Top:TOP',
'q:Quit:QUIT');
}
QUIT:{ &p("Thank You for using our humble little system"); system "clear";
}
sub p
{
local($x) = @_;
print "$x\n";
sleep 1;
}
sub choose
{
local(@list) = @_;
local($i, $l, $f, $func, $num, $test, $answer, @funclist);
SCAN:
{
foreach $l (@list)
{
($num, $text, $func) = split(":",$l);
print "$num : $text\n";
}
print "\n>> ";
local($answer) = scalar(<STDIN>);
chop($answer);
foreach $l (@list)
{
($num, $text, $func) = split(":",$l);
if ($num eq $answer)
{
@funclist = split(";", $func);
foreach $f (@funclist)
{
if ($f =~ /&/ ) { eval("$f"); }
else { eval("goto $f"); }
}
}
}
print "\nChoose one of the following:\n";
redo SCAN;
}
}
#
#--
#Joe Alotta
#First Chicago Corp.
#
[email protected]
#(312)732-3439
#
#"Wisdom is better than gold and understanding more valuable than silver."
#
#