All pastes #188538 Raw Edit

Something

public text v1 · immutable
·published 2006-10-02 07:15 UTC
rendered paste body
#!/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";
    }
}