Sometimes your script may not be operating in the directory you think it is (e.g., script run under a web server), or there may be a typo in a file name, or some other problem, etc. Comment out the chmod line and try this to see if you get what you are expecting:
my $original_mode = (stat( $original_file ))[2];
my $target_mode = (stat( $target_file ))[2];
print "Original Filename: $original_file\nOriginal mode: $original_mod
+e\n";
print "Target Filename: $target_filename\ntarget mode: $target_mode\n"
+;