use strict; use warnings; use HTTP::Tiny; use IO::Uncompress::Unzip qw(unzip $UnzipError); my $url = 'https://nse-india.com/content/historical/EQUITIES/2017/AUG/cm14AUG2017bhav.csv.zip'; my $filename = '/path/to/your/folder/cm14AUG2017bhav.csv'; my $res = HTTP::Tiny->new->get( $url ); die 'Download failed' if not $res->{'success'}; unzip \$res->{'content'}, $filename or die "unzip died: $UnzipError"; __END__