Я подозреваю, что если вы посмотрите на входные данные, то делает , поступая правильно - я предполагаю, что в процессе кодирования и декодирования вы не видите реального ввода и вывода. Например, попробуйте это:
use strict;
use warnings;
my $youtubeScr = "a&b";
$youtubeScr =~ s/&/&/g;
print $youtubeScr;
print "\n";
$youtubeScr =~ s/&/&/g;
print $youtubeScr;
print "\n";
Это печатает
a&b
a&b
Другими словами, с самого начала это уже работает.
Вы уверены, что ваш оригинальный текст не foo&bar
? Это дало бы вывод
foo&bar
foo&bar
с указанным кодом.
PS Мой перл-фу отстой. Извиняюсь за любые языковые злоупотребления в приведенном выше коде, но я думаю, что это все равно должно быть полезно:)