It's deeply ingrained in Perl that the operators dictate what to do, and not the type of the operands (with few exceptions).
So =~ always does a regex match. If the right-hand side isn't a regex, it becomes one.
Same with . (coerces the arguments to be strings), + (coerces to numeric) etc.
Update: since the question was about documentation, I checked perlop if this was explained somewhere. I didn't find anything, so I've submitted a patch which adds such an explanation.
In reply to Re: string on right side of m//?
by moritz
in thread string on right side of m//?
by 7stud
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |