home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2000 February
/
PCWorld_2000-02_cd.bin
/
live
/
usr
/
X11R6
/
lib
/
X11
/
cbb
/
contrib
/
invest.pl
< prev
next >
Wrap
Perl Script
|
1998-10-07
|
3KB
|
81 lines
#!/usr/bin/perl
# invest.pl - an extremely simple hack to help me keep track of my
# investments.
#
# Written by Curtis Olson. Started September 1, 1995.
#
# Copyright (C) 1995, 1996 Curtis L. Olson - curt@sledge.mn.org
#
# The format of an input file would be something like the following.
# Note, fields should separated by one or more tabs.
#
# -------------------------------------------------------------------
# | # Date Description Shares Unit Price
# | #----- ----------- ------ ----------
# | #19960101 Beginning of 1996 99.265 52.18
# | #19960201 Updated value 0.000 52.66
# -------------------------------------------------------------------
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
# $Id: invest.pl,v 2.2 1996/07/13 02:58:23 curt Exp $
# (Log is kept at end of this file)
$total_shares = 0;
$total_invest = 0;
$acct_value = 0;
print " Price Total\n";
print " New per Shares Total Total\n";
print "Date Description Shares Share Owned Invstd Value\n";
print "-------- ---------------------- ------ ------ ------ ------ ------\n";
while ( <> ) {
chop($_);
if ( m/^[ \t]*#/ ) {
# toss the comment
} else {
($date, $desc, $shares, $price) = split(/\t+/, $_);
if ( $shares < 25 ) {
$reinv = $shares * $price;
$invest = 0;
} else {
$reinv = 0;
$invest = $shares * $price;
}
$total_shares += $shares;
$total_invest += $reinv + $invest;
$acct_value = $total_shares * $price;
printf "%s %-22s\t%-7.3f\t%.2f\t%.3f\t%.2f\t%.2f\n", $date, $desc,
$shares, $price, $total_shares, $total_invest, $acct_value;
}
}
# ----------------------------------------------------------------------------
# $Log: invest.pl,v $
# Revision 2.2 1996/07/13 02:58:23 curt
# Misc. changes.
#
# Revision 2.1 1996/02/27 05:36:03 curt
# Just stumbling around a bit with cvs ... :-(
#
# Revision 2.0 1996/02/27 04:43:12 curt
# Initial 2.0 revision. (See "Log" files for old history.)