История изменений
Исправление annulen, (текущая версия) :
Чтобы понять, как работает этот код, нужно знать об автоматической переменной $_. Этот код можно развернуть в
open (InFile,"wg1.conf");
while ($str=<InFile>)
{
print "$str";
$_ =~ s{10.8.100.5/32}{10.8.100.5/32, 192.168.0.0/24}g;
} continue {
print $_ or die "-p destination: $!\n";
}
close (InFile);
Использование $str для чтения из файла приводит к тому, что автоматическая переменная в цикле больше не заполняется, и остальной код ничего не делает.
Еще здесь есть стилистические недочеты, по которым можно сразу заметить, что код писал новичок: 1) InFile - лучше не использовать bareword-хэндлы (за исключением встроенных - STDIN и т.д.), а если все-таки очень хочется, то называть их КАПСОМ; 2) вместо $str должно быть my $str - тут либо код без strict (что есть зло), либо переменная $str используется в большей области видимости (что тоже зло); 3) в open нужно всегда указывать режим (здесь ‘<’), как минимум для читаемости
Исходная версия annulen, :
Чтобы понять, как работает этот код, нужно знать об автоматической переменной $_. Этот код можно развернуть в
open (InFile,"wg1.conf");
while ($str=<InFile>)
{
print "$str";
$_ =~ s{10.8.100.5/32}{10.8.100.5/32, 192.168.0.0/24}g;
} continue {
print $_ or die "-p destination: $!\n";
}
close (InFile);
Использование $str для чтения из файла приводит к тому, что автоматическая переменная в цикле больше не заполняется, и остальной код ничего не делает.