да - используйте 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"