#!/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 " 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"; } }