To get historical quotes (as opposed to current), you can either use existing CPAN modules (e.g. Finance::QuoteHist::Yahoo
/ Finance::QuoteHist::Google
- which are top links if you bother Googling "cpan historical yahoo quotes" ) or roll your own as follows:
use LWP::Mechanize
to retrieve Y! and G! historical data from relevant URLs as HTML (to the best of my knowledge, the official Yahoo CSV quote API doesn t do historical though I could be wrong).
use an HTML parser like HTML::TreeBuilder
to parse that HTML and extract quote data.
To store the data, use pretty much any database - from a simple CSV file to SQLite database (or DBM file, or MySQL, but I m not sure the last 2 work on Windows). Which one to pick depends on how much data you want to store and what you want to do with it.
To compare, you can either run a database query/report, depending on what your comparison needs to compute; or retrieve data (in bulk or in a per-security loop) into your program and compare in Perl code. Can t provide any more specifics without a lot clearer explanation of WHAT you want to compare and how.
If you have more specific questions about each of these steps, please feel free to post what you ve done, what the problems are which arose and SO will be glad to help.