Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re^3: Currency symbols in variable names

by 1nickt (Abbot)
on Aug 25, 2019 at 14:33 UTC ( #11104985=note: print w/replies, xml ) Need Help??


in reply to Re^2: Currency symbols in variable names
in thread Currency symbols in variable names

Hi again, I'm not sure whether What could we do with this? refers to the sub after the question, or the way Perl disallows certain characters in variable names. If the latter, I would suggest that independent of your variable naming issue, you consider extensibility of your program. There doesn't seem to be much advantage to a sub named $_to_ as compared to a more generic one that takes arguments:

use strict; use warnings; use Test::More; use Test::More::UTF8; # loads utf8.pm sub convert_currency { my %map = ( '$' => sub { $_[0] * 105.4 }, '$' => sub { $_[0] * 0.0095 }, '$' => sub { $_[0] * 0.89 }, '$' => sub { $_[0] * 1.12 }, ); my ($from, $to, $amount) = @_; my $converter = $map{"$from$to"}; return sprintf( '%.3f', $converter->($amount) ); } is( convert_currency('$', '', 5), '527.000', '$ -> ' ); is( convert_currency('', '$', 42.02), '47.062', ' -> $' ); is( convert_currency('$', '', 42.02), '37.398', '$ -> ' ); done_testing;
$ prove -v monks/11104981.pl monks/11104981.pl .. ok 1 - $ -> ok 2 - -> $ ok 3 - $ -> 1..3 ok All tests successful. Files=1, Tests=3, 0 wallclock secs ( 0.02 usr 0.00 sys + 0.04 cusr + 0.00 csys = 0.06 CPU) Result: PASS

Hope this helps!


The way forward always starts with a minimal test.

Replies are listed 'Best First'.
Re^4: Currency symbols in variable names
by pme (Prior) on Aug 25, 2019 at 15:49 UTC
    I wanted to say that currency symbol are not allowed in names because $ is a sigil too.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://11104985]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (7)
As of 2019-12-06 05:58 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Strict and warnings: which comes first?



    Results (154 votes). Check out past polls.

    Notices?