in reply to A Gear Inch Calculator for Cyclists
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
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: A Gear Inch Calculator for Cyclists
by liz (Monsignor) on Aug 12, 2003 at 14:54 UTC |