so I kinda assume that Perl will handle with this kind of stuff for me.
Having Perl remove the BOM automatically would be bad. print while <$fh>; would no longer print out a file exactly, for example. It wouldn't be possible to print out a file exactly by other means either.
However, if file contains that BOM, my program does not understand the first line in the file
Patient: "Doctor, it hurts when I do this."
Doctor: "So don't do it!"
If your program doesn't accept BOMs, don't feed it any. BOMs are not required.
Alternatively, you could change your spec and your program to accept it.
while (<$fh>) {
s/\x{FEFF}//g;
...
}