open $PS17, $FILENAME or open my $PS17, '<', $FILENAME open the file only for read access. If you really intend to read_and_write() the opened file, you need to say something like open my $FS17, '+<', $FILENAME or die "$! error on open $FILENAME\n"