Perl Замена символов

  • Автор темы Nikson77
  • Дата начала
N

Nikson77

#1
Люди добрые подскажите как правильно сделать замену символов в Perl. Задача такая, есть текстовый файл с огромным количеством строк:
"1111";"ИВАНОВ ИВАН ИВАНЫЧ";"П.СВЕТЛЫЙ, Д.22, КВ.11"
"2222";"ПЕТРОВ ПЕТР ПЕТРОВИЧ";"П.ТЕМНЫЙ, Д.33, КВ.22"
и т.д.
нужно заменить (, Д.) на (":)

Пытался тут чего то, но безуспешно.
_____________________________________________________
open F1, $ARGV[0] or die "Error opening file $ARGV[0]\n";
open F2, ">result.txt";
while(<F1>) {
# subst ($_,"\, Д\.","\"\;");
$str =~ s/\, Д\./\"\;/g;
print F2;}
close F2;
close F1;
_____________________________________________________

Подсобите пожалуйста. Народ советует замены в файлах большого размера делать именно на Perl, говорят так проще и быстрей, только помочь никто не может.
Спасибо.
 
V

Vovochka

#2
А чего вы хотели?
Считываете вы в переменную $_ и пишете из нее.
А обрабатываете переменную $str;
Замените:
Код:
$str =~ s/\, Д\./\"\;/g;
На:
Код:
s/\, Д\./\"\;/g;
И надейтесь, что у вас не возникнет проблем с кодировками.
 
N

Nikson77

#3
Спасибо большое. Все работает.
Дай Вам Бог здоровья!