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 >
Perl Script  |  1998-10-07  |  3KB  |  81 lines

  1. #!/usr/bin/perl
  2. #  invest.pl - an extremely simple hack to help me keep track of my
  3. #              investments.
  4. #
  5. #  Written by Curtis Olson.  Started September 1, 1995.
  6. #
  7. #  Copyright (C) 1995, 1996  Curtis L. Olson  - curt@sledge.mn.org
  8. #
  9. #  The format of an input file would be something like the following.
  10. #  Note, fields should separated by one or more tabs.
  11. #
  12. # -------------------------------------------------------------------
  13. # | # Date          Description             Shares  Unit Price
  14. # | #-----          -----------             ------  ----------
  15. # | #19960101       Beginning of 1996       99.265  52.18
  16. # | #19960201       Updated value           0.000   52.66
  17. # -------------------------------------------------------------------
  18. #
  19. #  This program is free software; you can redistribute it and/or modify
  20. #  it under the terms of the GNU General Public License as published by
  21. #  the Free Software Foundation; either version 2 of the License, or
  22. #  (at your option) any later version.
  23. #
  24. #  This program is distributed in the hope that it will be useful,
  25. #  but WITHOUT ANY WARRANTY; without even the implied warranty of
  26. #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  27. #  GNU General Public License for more details.
  28. #
  29. #  You should have received a copy of the GNU General Public License
  30. #  along with this program; if not, write to the Free Software
  31. #  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  32.  
  33. # $Id: invest.pl,v 2.2 1996/07/13 02:58:23 curt Exp $
  34. # (Log is kept at end of this file)
  35.  
  36.  
  37. $total_shares = 0;
  38. $total_invest = 0;
  39. $acct_value = 0;
  40.  
  41. print "                                        Price   Total\n";
  42. print "                                New     per     Shares  Total   Total\n";
  43. print "Date     Description            Shares  Share   Owned   Invstd  Value\n";
  44. print "-------- ---------------------- ------  ------  ------  ------  ------\n";
  45.  
  46. while ( <> ) {
  47.     chop($_);
  48.  
  49.     if ( m/^[ \t]*#/ ) {
  50.     # toss the comment
  51.     } else {
  52.     ($date, $desc, $shares, $price) = split(/\t+/, $_);
  53.     if ( $shares < 25 ) {
  54.         $reinv = $shares * $price;
  55.         $invest = 0;
  56.     } else {
  57.         $reinv = 0;
  58.         $invest = $shares * $price;
  59.     }
  60.  
  61.     $total_shares += $shares;
  62.     $total_invest += $reinv + $invest;
  63.     $acct_value = $total_shares * $price;
  64.  
  65.         printf "%s %-22s\t%-7.3f\t%.2f\t%.3f\t%.2f\t%.2f\n", $date, $desc, 
  66.         $shares, $price, $total_shares, $total_invest, $acct_value;
  67.     }
  68. }
  69.  
  70.  
  71. # ----------------------------------------------------------------------------
  72. # $Log: invest.pl,v $
  73. # Revision 2.2  1996/07/13 02:58:23  curt
  74. # Misc. changes.
  75. #
  76. # Revision 2.1  1996/02/27  05:36:03  curt
  77. # Just stumbling around a bit with cvs ... :-(
  78. #
  79. # Revision 2.0  1996/02/27  04:43:12  curt
  80. # Initial 2.0 revision.  (See "Log" files for old history.)
  81.