There's also Jason Purdy's CGI::Application::Plugin::Stream, which reads and write the file in chunks to avoid slurping it all into memory at once. http://search.cpan.org/dist/CGI-Application-Plugin-Stream/lib/CGI/Application/Plugin/Stream.pm g.