SparkeyG has asked for the wisdom of the Perl Monks concerning the following question:
I am writing a program that will connect to a FTP server using LWP and d/l a zip compressed file. I am able to fetch the file, save it to disk, uncompress the file using Archive::Zip, and parse the resulting data.
The question I put before you is: How can I skip the save file to disk step and unzip the file directly from the UA's output? I understand that I can get a reference to $ua->content, but I haven't figured out how to pass that to a Archive::Zip object, which appears to only work on files and FHs.
This is the code I have right now, assume all objects were properly started before this snippit:
This works, but saves the file to disk on line 4. I want to be able to take $ua->contents and use it for the zip file on line 8, $zip->read ($file).foreach my $file ( @filelist ) { my $FILE_URL = qq ( $URL/$file ); my $request = HTTP::Request->new(GET => $FILE_URL ); my $res = $ua->request($request, $file); print $res->status_line, "\n"; my $zip = Archive::Zip->new(); $zip->read ($file); my $member = $zip->memberNamed( 'data.dat' ); my ( $string, $status ) = $member->contents(); die "error $status" if $status != AZ_OK; print $string; }
Any help would be nice.
--SparkeyG
japh
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: LWP::UserAgent interaction w/ Archive::Zip
by traveler (Parson) on Jul 10, 2001 at 21:36 UTC | |
Re: LWP::UserAgent interaction w/ Archive::Zip
by SparkeyG (Curate) on Jul 10, 2001 at 22:43 UTC | |
by bikeNomad (Priest) on Jul 11, 2001 at 03:15 UTC |
Back to
Seekers of Perl Wisdom