#!/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 (<STDIN>) { chomp; INNER0: for my $cur (keys %rates) { # added keys so you don't loop t +hrough values, too $from = $cur; # set $from currency last OUTER0 if $from eq $_; } print "Currency not recognized, try again: "; # Added to avoid con +fusion when an unknown currency is entered } print "Enter your target currency: "; OUTER1: while (<STDIN>) { chomp; INNER1: for my $cur (keys %rates) { # added keys so you don't loop t +hrough values, too $to = $cur; # set $to currency last OUTER1 if $to eq $_; } print "Currency not recognized, try again: "; # Added to avoid con +fusion when an unknown currency is entered } print "Enter your amount to convert: "; $value = <STDIN>; 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.
In reply to Re: a hash and 2 loops--not working
by frozenwithjoy
in thread a hash and 2 loops--not working
by jhumphreys
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |