#!/usr/bin/perl use strict; use warnings; use feature qw/say/; use IO::Prompter; my %responses = (); my @prompts = ( ["startamount", "the starting amount", ""], ["startage", "your current age", ""], ["endage", "the age you want to retire", sub { $_ >= $responses{'startage'} } ], ["yearlydeposit", "amount deposited per year", ""], ["annualinterest", "the Annual interest rate", ""], ["expectedmoney", "Expected Retirement Money", ""], ); foreach my $prompt (@prompts) { $responses{$prompt->[0]} = prompt "Enter $prompt->[1]:", -num => $prompt->[2] } foreach (sort keys %responses) { say "$_: $responses{$_}"; }