#!/usr/bin/env perl # convert3.pl use warnings; use strict; my ( $value, $from, $to, $rate, $rates, %rates ); %rates = ( pounds => 1, USD => 1.6, marks => 3.0, "french francs" => 10.0, yen => 174.8, "swiss francs" => 2.43, drachma => 492.3, euro => 1.5 ); print "Enter your starting currency: "; OUTER0: while () { chomp; INNER0: for my $cur (keys %rates) { # added keys so you don't loop through values, too $from = $cur; # set $from currency last OUTER0 if $from eq $_; } print "Currency not recognized, try again: "; # Added to avoid confusion when an unknown currency is entered } print "Enter your target currency: "; OUTER1: while () { chomp; INNER1: for my $cur (keys %rates) { # added keys so you don't loop through values, too $to = $cur; # set $to currency last OUTER1 if $to eq $_; } print "Currency not recognized, try again: "; # Added to avoid confusion when an unknown currency is entered } print "Enter your amount to convert: "; $value = ; chomp $value; # added to fix format of output $rate = $rates{$to} / $rates{$from}; print "$value $from is ", $value * $rate, " $to. \n"; __END__ Enter your starting currency: french francs Enter your target currency: swiss francs Enter your amount to convert: 100 100 french francs is 24.3 swiss francs.