Ответ 1
yes - используйте uc()
(функция верхнего регистра, см. http://perldoc.perl.org/functions/uc.html)
$ perl -e 'print uc("steve") eq uc("STevE"); print "\n";'
1
$ perl -e 'print uc("SHOE") eq uc("shoe"); print "\n";'
1
$ perl5.8 -e 'print uc("SHOE") eq uc("shoe1"); print "\n";'
$
Вы также можете использовать lc()
.
Если вы хотите, чтобы фактический оператор "eq" был нечувствительным к регистру, это может быть возможно с использованием перегрузок, но я не думаю, что вы просите - пожалуйста, уточните свой вопрос, если это произойдет. И это не отличная идея, если вы этого хотите, ИМХО - слишком хрупкая и приводит к серьезным трудностям для отслеживания и отладки ошибок.
Кроме того, это ваш избыток в вашем конкретном случае, когда вы просто хотите равенства, но регулярные выражения Perl также имеют независимый от случая модификатор "i"