#! /usr/bin/perl use warnings; use strict; use feature qw{ say }; my $done; while (! $done) { print << '__MENU__'; Main Menu 1. Get date and time 2. Go to submenu 3. Quit __MENU__ chomp( my $reply = <> ); next unless $reply =~ /^[123]$/; if ($reply == 1) { say scalar localtime; } elsif ($reply == 2) { $done = submenu(); } else { $done = 1; } } sub submenu { my $done; while (! $done) { print << '__MENU__'; Submenu 1. Get username 2. Back 3. Quit __MENU__ chomp( my $reply = <> ); next unless $reply =~ /^[123]$/; if ($reply == 1) { say scalar getpwuid $>; } else { $done = $reply; } } return $done == 3 }