From 33483ee77b1bd6f4b74fd59292a1ee57cf1a4e80 Mon Sep 17 00:00:00 2001 From: Linas Vepstas Date: Sat, 2 Jan 1999 06:39:00 +0000 Subject: [PATCH] add an example, strip out some blanks git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@1524 57a11ea4-9604-0410-9ed3-97b8803252fd --- src/quotes/Quote.pm | 22 +++++++------ src/quotes/Quote_example.pl | 64 +++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+), 9 deletions(-) create mode 100755 src/quotes/Quote_example.pl diff --git a/src/quotes/Quote.pm b/src/quotes/Quote.pm index 68dba1860b..2121c70166 100644 --- a/src/quotes/Quote.pm +++ b/src/quotes/Quote.pm @@ -188,14 +188,16 @@ sub fidelity_nav { ($dayte = $q[1]) =~ s/^ +//; } } - ($sym = $q[2]) =~ s/^ +//; + $sym = $q[2]; if ($sym) { + $sym =~ s/^ +//; $aa {$sym, "exchange"} = "Fidelity"; # Fidelity - ($aa {$sym, "name"} = $q[0]) =~ s/^ +//; - $aa {$sym, "number"} = $q[1]; - $aa {$sym, "nav"} = $q[3]; - $aa {$sym, "change"} = $q[4]; - $aa {$sym, "ask"} = $q[7]; + ($aa {$sym, "name"} = $q[0]) =~ s/^ +//; + $aa {$sym, "name"} =~ s/$ +//; + ($aa {$sym, "number"} = $q[1]) =~ s/^ +//; + ($aa {$sym, "nav"} = $q[3]) =~ s/^ +//; + ($aa {$sym, "change"} = $q[4]) =~ s/^ +//; + ($aa {$sym, "ask"} = $q[7]) =~ s/^ +//; $aa {$sym, "date"} = $dayte; } } @@ -221,12 +223,14 @@ sub fidelity_mm { ($dayte = $q[1]) =~ s/^ +//; } } - ($sym = $q[2]) =~ s/^ +//; + $sym = $q[2]; if ($sym) { + $sym =~ s/^ +//; $aa {$sym, "exchange"} = "Fidelity"; # Fidelity ($aa {$sym, "name"} = $q[0]) =~ s/^ +//; - $aa {$sym, "number"} = $q[1]; - $aa {$sym, "yield"} = $q[3]; + $aa {$sym, "name"} =~ s/$ +//; + ($aa {$sym, "number"} = $q[1]) =~ s/^ +//; + ($aa {$sym, "yield"} = $q[3]) =~ s/^ +//; $aa {$sym, "date"} = $dayte; } } diff --git a/src/quotes/Quote_example.pl b/src/quotes/Quote_example.pl new file mode 100755 index 0000000000..a639100eaa --- /dev/null +++ b/src/quotes/Quote_example.pl @@ -0,0 +1,64 @@ +#! /usr/bin/perl -w +# +# example script showing how to use the Quote perl module. + +use Quote; + +# ----------------------------------- +# get quotes for two stocks ... +%quotes = Quote::yahoo ("IBM", "SGI"); + +# print some selected values +print "NYSE by Yahoo: ", $quotes {"IBM", "name"}, + " last price: ", $quotes {"IBM", "last"}, "\n"; +print "NYSE by Yahoo: ", $quotes {"SGI", "name"}, + " last price: ", $quotes {"SGI", "last"}, "\n"; + +# loop over and print all values. +# Notes that values are stored ion a multi-dimensional associative array +foreach $k (sort (keys %quotes)) { + ($sym, $attr) = split ($;, $k, 2); + $val = $quotes {$sym, $attr}; + # $val = $quotes {$k}; # this also works, if desired ... + print "\t$sym $attr =\t $val\n"; +} +print "\n\n"; + +# ----------------------------------- +# get quotes from Fidelity Investments +@funds = ("FGRIX", "FNMIX", "FASGX", "FCONX"); +%quotes = Quote::fidelity (@funds); + +foreach $f (@funds) { + $name = $quotes {$f, "name"}; + $nav = $quotes {$f, "nav"}; + print "Fidelity Fund $f $name \tNAV = $nav\n"; +} +print "\n\n"; + +# ----------------------------------- +@funds = ("FGRXX"); +%quotes = Quote::fidelity (@funds); + +print "Not all funds have a NAV; some have Yeilds:\n"; +foreach $f (@funds) { + $name = $quotes {$f, "name"}; + $yield = $quotes {$f, "yield"}; + print "\tFidelity $f $name 30-day Yield = $yield percent\n"; +} +print "\n\n"; + +# ----------------------------------- +# demo T. Rowe Price -- same as above +@funds = ("PRFDX", "PRIDX"); +%quotes = Quote::troweprice (@funds); + +foreach $f (@funds) { + $nav = $quotes {$f, "nav"}; + $dayte = $quotes {$f, "date"}; + print "T. Rowe Price $f NAV = $nav as of $dayte\n"; +} +print "\n\n"; + + +# -----------------------------------