Печать переменной массива в файл на Perl - PullRequest
0 голосов
/ 24 октября 2019

Моя проблема, с которой я сталкиваюсь, заключается в том, что запись из строк для печати в файл записи дает сбой. Я вижу первый разделитель, но мой скрипт зависает от этой команды, и я никогда не вижу, чтобы он прошел. Как лучше всего подойти к этой проблеме, не стоит ли использовать 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
...