#!/usr/bin/env perl
use warnings;
use strict;
use LWP::Simple;
use Text::xSV;
use File::Temp qw( tempfile );
# Retrieves a CSV file and saves it to a temporary file (RAM location?)
sub get_csv {
my $ticker = @_;
my ( $fh, $filename ) = tempfile();
open( $fh, "+>", $filename );
# Change to sprintf
my $data = get(
"http://finance.yahoo.com/d/quotes.csv?s="
. $ticker
. "&f=sl1d1t1c1ohgv&e=.csv"
);
die "Couldn't get CVS file for stock $ticker!"
if !defined $data;
print $fh $data;
return $filename;
}
die "usage: $0 <ticker>" if @ARGV != 1;
my $csv = Text::xSV->new();
# Display data for each stock ticker specified
foreach my $ticker (@ARGV) {
my $csv_data_file = get_csv($ticker);
$csv->open_file($csv_data_file);
my @fields = $csv->get_row();
foreach my $field (@fields) {
print "$field\n";
}
}