Регулярка и русские символы

Пытаюсь сделать регистронезависимую подстановку типа вот так:

s/$keyword/some_text/ig

для английских символов все ок, подстановка выполняется независимо от регистра...
А вот для русских - замена происходит только при полном совпадении шаблона, тоесть регистро !!зависимо!!

Как сделать чтобы с русскими работало так же как и с английскими ?

use utf8 use utf8; my

use utf8

use utf8;
my $t='Папа папа';
my $k='ПАпа';
$t=~s/$k/мама/ig;
print "[$t]";

use locale;

use locale;

Не получилось

Если просто запустить приведенный выше пример - он действительно работает...
Но, при встраивании в мой скрипт - не хочет
Вот пример:
$a->text - ето инфа из БД, в которой все хранится в utf-8
$keyword - параметр передаваемый браузером, GET запросом
$keyword = $cgi->param("keyword");
во всех скриптах прописано

my $t=$a->text; текст из базы данных
my $k= $keyword; текст из запроса CGI
$t=~s/$k/AAAA/ig;
print STDERR $t;

В результате, заменяет только при полном совпадении регистра символов.
Может еще надо где-то как-то переконвертировать строки ?

Читайте доки :)

Думаю, не лишним будет perldoc utf8 на предмет utf8::is_utf8, особенно для данных, полученных извне (база или параметры cgi)
А вообшем, читайте perldoc для perluniintro/perlunicode/perllocale

--
wbr, Cub

Попробуйте use

Попробуйте

use locale;
use POSIX qw(locale_h);
setlocale(LC_ALL,"ru_RU.CP-1251");

если не помогло, проверьте есть ли такая локаль

#!/usr/bin/perl -w
use strict;
use locale;
use POSIX qw(locale_h);

my $locale = "ru_RU.CP-1251";
my $new_locale = setlocale(LC_ALL, $locale);
die "Нет локали $locale" if ($new_locale ne $locale);

my $s = uc("русский");
print $s;