in reply to Re: copy - Inappropriate ioctl for device
in thread copy - Inappropriate ioctl for device

Eh!? You can't say that eval is unnecessary on the grounds that it won't die, and in the same breath suggest a solution that does die and doesn't catch it with eval! (Unless maybe it's a Zen thing.)

In order to avoid eval, and also do what the OP wanted in the error case, how about:

use strict; use warnings; use File::Copy; my $source = "velocity.log"; my $target_input_file = "/tmp/not/there"; copy("$source" ,"$target_input_file") or do { open(FAIL,">>error.log"); print FAIL "FAILED TO Copy \"$source\" TO \"$target_input_file +\" +....\n"; close(FAIL); }
Of course, this still doesn't directly answer the question as to why the error message "Inappropriate ioctl for device" pops up. For that part, I wouldn't expect that $! (aka errno) would be set as a side efect of the copy function or the eval. Maybe it's a side effect of something earlier in the program?

The acid test: does the file get copied?

--
use JAPH;
print JAPH::asString();