http://qs321.pair.com?node_id=11118822


in reply to Read file after download

LWP::UserAgent blocks until all data is received (perhaps you are used to javascript's ajax). So when it unblocks you have all your data.

But since you also mentioned in one of your replies, a callback, LWP::UserAgent additionally offers two alternatives to processing downloaded content, especially suited for LARGE files.

The first one is to specify a save-to filename in the get() call, in the form of a pseudo-header directive. The benefit is that the LARGE content goes straight to the filesystem and does not clogg your memory.

The second one is to specify a callback function to be called when some content has been received (think LARGE chunked downloads). Again in the same way of pseudo-headers. This is useful for on-the-fly, streamed data processing, say you want to uncompress data as it is received.

Both of the above methods are documented in LWP::UserAgent, search for :content_cb.

Also there is the progress() callback which is called occassionally during the request to let you know on the progress of the download.