You don't want to tie up your precious mod_perl backend server children doing something as long and simple as transferring a file, especially a big one. The overhead saved by mod_perl is typically under one second, which is an enormous savings for scripts whose runtimes are under one second. However, the user won't really see any important performance benefits from mod_perl, since the upload may take up to several minutes.
If some particular script's main functionality is the uploading or downloading of big files, you probably want it to be executed on a plain Apache server under mod_cgi (i.e., performing this operation on the frontend server, if you use a dual-server setup as presented earlier).
This of course assumes that the script requires none of the functionality of the mod_perl server, such as custom authentication handlers.