There's a little oddness in the condition you're checking for in the code you posted: why worry about whether a file whose name was found exists? If it didn't exist, it wouldn't be found. Note also that files that don't exist won't pass the other two tests.
Of course, that doesn't have much to do with the problem. Note that you can use $_ within the TEST_FOR_AGE sub. And you don't need to put double-quotes around the variable names. Try removing those quotes and see what happens. Spaces should only be a problem for programs that use the shell (unless the implementation of File::Find on Windows uses a shell of some sort ... )
HTH.
perl -e 'print "How sweet does a rose smell? "; chomp ($n = <STDIN>);
+$rose = "smells sweet to degree $n"; *other_name = *rose; print "$oth
+er_name\n"'