#!perl use strict; use warnings; use HTTP::Tiny; use Spreadsheet::Read; # Fetch data and return a filehandle to that data sub fetch_url { my( $url ) = @_; my $ua = HTTP::Tiny->new; my $res = $ua->get( $url ); open my $fh, '<', \$res->{content}; return $fh } my $fh = fetch_url('http://example.com/example.ods'); my $sheet = Spreadsheet::Read->new( $fh, parser => 'ods' );