• Как сделать вычитание двух файлов в perl?

    @pcdesign
    Если я правильно понял вопрос.
    Пусть у нас есть два файла 1.txt и 2.txt
    cat 1.txt                                                                                                                                   
    100
    2323
    2390238
    32322323
    9002


    cat 2.txt 
    34
    4343
    434
    2390238
    32322323
    9002


    С таким содержанием.
    Теперь их можно сравнить и вычислить разницу таким образом:

    #!/usr/bin/env perl 
    use strict;
    use warnings;
    use utf8;
    use File::Slurp;
    use Array::Utils qw(:all);
    
    my @arr1 = read_file( '1.txt', chomp => 1 );
    my @arr2 = read_file( '2.txt', chomp => 1 );
    
    # Получилось 2 массива. 
    # Теперь сравниваем их c помощью use Array::Utils qw(:all);
    # И вычисляем разницу
    # Получаем элементы из массива @аrr1, которые не входят в массив @arr2
    
    
    my @minus = array_minus( @arr1, @arr2 );
    
    for my $i (@minus){
            print "$i \n";
    }


    Результат работы:
    100 
    2323


    Теперь можно то что находится в массиве @minus записать в файл да и все.
    Ответ написан
    1 комментарий