foreach my $file(@array){ get_filenames($file); } sub get filename{ my ($file) = @_; foreach my $filename($file){ #get filename from file stored in @array and find it. ... find file...; copy_file($filename) } sub copy_file{ my ($filename ) = @_; foreach ($filename) copy($filename, "copied_files/$dest"); #this is the tricky part, which i will try to describe <.<