in reply to Create an html like form on text tty

there is no way to go up and make the change

Not necessarily...

use warnings; use strict; use IO::Prompter; use Email::Valid; my @fields = ( { name=>'name', desc=>'Name', prompter => { -must => { 'be at least three characters' => qr{\A\w{3,}} } } }, { name=>'mail', desc=>'EMail', prompter => { -must => { 'be a valid email address' => sub { Email::Valid->address(shift) } } } }, { name=>'date', desc=>'Date', prompter => { -must => { 'be in the format DD.MM.YYYY' => qr{\A\d\d?\.\d\d?\.\d\d\d\d\z} } } }, { name=>'pass', desc=>'Password', prompter => { -echo => '*' } }, ); my %data; INPUT: { for my $f (@fields) { my $default = ''; if ( defined $f->{prompter}{-default} ) { if ( defined $f->{prompter}{-echo} ) { $default = " [" . ( $f->{prompter}{-echo} x length($f->{prompter}{-default}) ) . "]"; } else { $default = " [" . $f->{prompter}{-default} . "]"; } } my $rv = prompt( $f->{desc} . $default . ':', %{ $f->{prompter} } ); $data{ $f->{name} } = "$rv"; $f->{prompter}{-default} = "$rv"; } prompt("Is this correct?", -Y1) or redo INPUT; } use Data::Dump; dd \%data;

Although if you really want it to be like a web form, LanX's suggestion is probably better for that.