File::Temp is about the secure creation of temp files.
It gives you back a file handle to the opened file and
the file name. If you depend solely on the file name, you
could get burned; the file handle points to the actual
file File::Temp created.
With File::Copy, you are normally going to be referencing
files by name, so converting the name to a file handle
carries different hazards.
Consider the two warnings in the context of their
respective modules. They are not contradictory unless
you remove them from their contexts.