in reply to NET::SFTP - Permission Denied (preserve timestamps?)

Try using Net::SFTP::Foreign instead. Its put method can be toll to not copy file attributes using the copy_perm and copy_time arguments:
$sftp->put($src, $target, copy_perm => 0, copy_time => 0);

update: are you using Windows? then, read also this thread: SFTP on Windows.