It's considered bad form to use LOCK_UN to release the lock on a filehandle - there is the potential for buffering to ruin your day if another process starts writing to the file before the current process closes the filehandle and flushes any data to disk.
Closing the filehandle will ensure the data on disk is consistent, as buffered data will be flushed, and the flock is released automatically.
If you're locking a semaphore file, as your example here suggests, it's somewhat of a non-issue, but it should be considered for other cases.
If the information in this post is inaccurate, or just plain wrong, don't just downvote - please post explaining what's wrong.
That way everyone learns.