in reply to Re^3: Tab Cursor Backspace
in thread Tab Cursor Backspace

Hello Rolf,
Below is the code I am working with inside the program. As you can see I am editing certain criteria on a per screen basis. However I would like to move this to one screen only.

sub editcarowner { Title "Edit Car Owner"; print ("==============\n\n"); print ("| CAR MODEL: |\n\n"); print ("==============\n\n\n\n\n\n\n\n\n\n\n\n"); my $carmodel = <STDIN>; $carmodel = <STDIN> until defined $carmodel; chomp $carmodel; cls(); print ("================\n\n"); print ("| CAR YEAR: |\n\n"); print ("================\n\n\n\n\n\n\n\n\n\n\n\n"); my $caryear = <STDIN>; $caryear = <STDIN> until defined $caryear; chomp $caryear; cls(); print (" ==================================\n\n" +); print ("| CURRENT OWNER: |\n\n"); print (" =============================\n\n\n\n\ +n\n\n\n\n\n\n\n"); my $currentowner = <STDIN>; $currentowner = <STDIN> until defined $currentowner; chomp $currentowner; cls(); print (" =============================\n\n"); print ("| NEW CAR OWNER: |\n\n"); print (" =============================\n\n\n\ +n\n\n\n\n\n\n\n\n"); my $newcarowner = <STDIN>; $newcarowner = <STDIN> until defined $newcarowner; chomp $newcarowner; cls(); my $file = "DATA/cardata.txt"; local $^I = ".bak"; local @ARGV = ($file); while (<>) { chomp; my ($carmodel,$caryear,$carowner) = split(/\:/); if (($carmodel eq $carmodel) && ($caryear == $caryear)) { print "$carmodel:$caryear:$newcarowner\n"; }else { print "$_\n"; } } unlink("$file.bak"); print ("\n\n\n\n\n\n\n\n"); print ("CAR OWNER UPDATED SUCCESSFULLY!!\n\n\n\n\n\n\n\n\n\n\n\n"); sleep 3; cls(); cars(); } # END EDIT CAR OWNER

Replies are listed 'Best First'.
Re^5: Tab Cursor Backspace
by Anonymous Monk on Apr 30, 2014 at 18:11 UTC

    If you want to keep this code and make the entering of information a little more comfortable, perhaps Term::ReadLine or Term::UI might be appropriate? Also, instead of scrolling the terminal you could clear it, see here and here.

    If you want to make a more "advanced" user interface with menu bars, dialogs, and such, have a look at Curses::UI::Tutorial (as recommended by LanX).

      I've been using the Win32::Console and it's really lacking in good clear documentation and I've been trying to locate good working examples of what I'm trying to accomplish. I'm still working on it though.