Aside from doing the calculations - I would go with an approach something like this. Im in a meeting so I didn't have time to work the calculations in...<br><br>Ted<br><br>___ Code Below ___<br><br>#!/usr/bin/perl<br>use strict;
<br>use warnings;<br><br>sub make_if_elsif {<br># This is the code we are trying to emulate with our enclosure<br>my $capt = shift;<br><br>#personally I would use something like this, but thats neither here nor there :)<br>
#return qq<br>#|( $capt < 100 ) ? '3.0' :<br>#( ($capt >= 100) and ($capt < 250) ) ? '1.5' :<br>#( ($capt >= 10000) and ($capt < 50000) ) ? '0.01' :<br>#'
0.00'|;<br><br>return qq|<br> if ($capt eq "") {return (0.0);}<br> elsif ($capt < 100)<br> {return (3.0);}<br> elsif (($capt >= 100) && ($capt < 250))<br> {return (1.5);}<br> elsif (($capt >= 250) && ($capt < 500))
<br> {return (1.0);}<br> elsif (($capt >= 500) && ($capt < 750))<br> {return (0.75);}<br> elsif (($capt >= 750) && ($capt < 1000))<br> {return (0.5);}<br> elsif (($capt >= 1000) && ($capt < 2500))
<br> {return (0.25);}<br> elsif (($capt >= 2500) && ($capt < 5000))<br> {return (0.15);}<br> elsif (($capt >= 5000) && ($capt < 7500))<br> {return (0.05);}<br> elsif (($capt >= 7500) && ($capt < 10000))
<br> {return (0.025);}<br> elsif (($capt >= 10000) && ($capt < 50000))<br> {return (0.01);}<br> elsif ($capt >= 50000)<br> {return (0.005);}\n|;<br><br>}<br><br><br>my %costCalcH = ( "50000" =>
0.005,<br> "10000" => 0.01,<br> "7500 " => 0.025,<br> "5000 " => 0.05,<br> "2500 " => 0.15,<br> "1000 " =>
0.25,<br> "750 " => 0.5,<br> "500 " => 0.75,<br> "250 " => 1.0,<br> "100 " => 1.5,<br> "0 " =>
3.0,<br> );<br><br><br># if you print out $stmt, you get the if-elsif statment above.<br><br><br>my $x = make_if_elsif(300);<br>print $x ;<br><br>$x = make_if_elsif(5000);<br>print $x ;<br><br><br><br><br>