This doesn't produce an error:
in reply to Why is the error thrown from close(FH) when the error is the missing <> on while(FH)?
Nor does this:
my $fname = 'data.txt';
open FH, "<", $fname
or die "Couldn't open $fname: $!";
According to "Perl Best Practices", p. 65:
In Perl, any identifier that the compiler doesn't recognize as a subroutine (or as package name or filehandle or label or builtin function) is treated as an unquoted character string:
I'm not sure why there are parentheses around "or package name or filehandle..." because the section is not about subroutines. And it should say, "...is treated as a string".
$greeting = Hello . World;
print $greeting, "\n"; #Prints: HelloWorld