Why do beginners programs have the tendency to be overly chatty? Your program prints a line, and read something from input for each chainwheel, whether or not the wheels are metric, and for the size of the wheel.

Could you imagine what life would be if every program acted that way? Just imagine a 'tar' asking you for each option whether you want to include that, and each file to be included to be typed in separatedly? There's a reason many programs take command line arguments, and that programs that read from stdin and write to stdout are often called filters. Programs like yours are much harder to chain together.

I would also perform some form of input checking, and round of the final value.

#!/usr/bin/perl use strict; use warnings; die "Usage: $0 <chainring> <cog> <wheelsize>\n" unless @ARGV == 3; my ($chainring, $cog, $wheelsize) = @ARGV; $wheelsize = $1 * .39 if $wheelsize =~ /^(\d+)m$/; die "Chainring needs to be a positive integer\n" unless $chainring =~ +/^\d+$/; die "Cog needs to be a positive integer\n" unless $cog =~ /^\d+$ +/; die "Wheelsize needs to be a positive number\n" unless $wheelsize =~ /^\d+(?:[.]\d*)?$/; my $gearinches = sprintf "%.2f" => $wheelsize * $chainring / $cog; print <<"--"; The gear inches for a chainring of $chainring teeth and a cog of $cog teeth, and a wheel of $wheelsize inches is $gearinches gear inches. -- __END__

Abigail


In reply to Re: A Gear Inch Calculator for Cyclists by Abigail-II
in thread A Gear Inch Calculator for Cyclists by harley_frog

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.