Моя проблема, с которой я сталкиваюсь, заключается в том, что запись из строк для печати в файл записи дает сбой. Я вижу первый разделитель, но мой скрипт зависает от этой команды, и я никогда не вижу, чтобы он прошел. Как лучше всего подойти к этой проблеме, не стоит ли использовать push? Было бы лучше напечатать строку в файл, поскольку он перебирает файл чтения?
#!/usr/bin/perl
use strict;
use File::Copy;
sub replace
{
my $readFile="/etc/ssh/sshd_config";
open READFILE, $readFile or die "Cant open $readFile \n";
my @LINES_TO_WRITE;
my $line;
while( $line=<READFILE> )
{
if($line=~/MACs hmac-sha1,hmac-ripemd160/)
{
push( @LINES_TO_WRITE, "MACs hmac-sha1");
}
else
{
push( @LINES_TO_WRITE, $line );
}
}
close( READFILE );
open my $WRITEFILE, ">", "/etc/ssh/sshd_config.temp" or die "Cant open $readFile \n";
print @LINES_TO_WRITE;
print "-----------";
$, = "\n";
print $WRITEFILE @LINES_TO_WRITE;
print "-----------";
close( $WRITEFILE );
copy( "/etc/ssh/sshd_config.temp", "/etc/ssh/sshd_config" );
}
&replace