... ## save data, ignore if you are archiving something already on disk my $blah = $tmp_dir . $$ . '.tmp'; open( TMP, ">$blah" ) or die; print TMP $data; close( TMP ); ## run another archiving script unshift( @archive_args, $blah ) my $is_archived = system( $perl, $archiving_script, @archive_args ); ## read archive, copy it, move it, unlink it, etc. ...