История изменений
Исправление 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
для чтения из файла приводит к тому, что автоматическая переменная в цикле больше не заполняется, и остальной код ничего не делает.