in reply to Why doesnt the string returned by $File::Find::name find point to files
sub process { return if -d $_; # ... then the rest of your function [download]