sub del_web() { ... my $tar = Archive::Tar->new(); $tar->read("$web_to_del.tar.gz",1); find(\&archive($tar), "$web_base/$web_to_del"); $tar->write("$defunct_dir/$web_to_del.tar.gz",1); ... } sub archive { my $tar = shift; $tar->add_files($File::Find::name); } #### sub del_web() { ... my $tar = Archive::Tar->new(); $tar->read("$web_to_del.tar.gz",1); find(sub {$tar->add_files($File::Find::name)}, "$web_base/$web_to_del"); $tar->write("$defunct_dir/$web_to_del.tar.gz",1); ... }