Here's a little diddy i wrote last night to calculate a mortgage payment. You can see the script in it's full glory on my
Mortgage Calulator.
my %IN;
$IN{'AMOUNT'} = 100000;#as in $100,000 loan
$IN{'RATE'} = 6;##as in 6% interest
$IN{'YEARS'} = 30;## 30 years or 15 years etc
my $payment = &ComputePayment(%IN);
sub ComputePayment{
my %LOAN = @_;
my $years = $LOAN{'YEARS'};
my $interest = $LOAN{'RATE'};
my $principle = $LOAN{'AMOUNT'};
my $ttlmonths = $years*12;
my $iv = $interest/1200;
my $tmp = (1 + $iv) ** -$ttlmonths;
my $payment = 0;
if ($tmp < 1){
$payment = ($principle * $iv) / (1 - $tmp);
}else{
$payment = $principle / $ttlmonths;
}
return sprintf("%10.2f",$payment);
}########end SubRoutine