arto ([info]ocehb) wrote,

Задачка

есть 2 бесконечно больших текстовых файла отсортированных лексикографически.
Нужно найти разницу и записать в файлы.



open A, shift or die;
open B, shift or die;

my $h = 0;
while (!(eof(A) && eof(B)) ) {
    ( $a, $b ) = $h == 0 ?
        ( scalar <A>, scalar <B> ) : $h == 1 ?
        ( $a, scalar <B> ) : ( scalar <A>, $b );
    print "< $a" and next unless (defined $b);
    print "> $b" and next unless (defined $a);
    $h = $a cmp $b or next;
    print $h == 1 ? "> $b" : "< $a";
} 

в принципе, можно сократить 2 строчки, но было лень разбираться с $h = $a cmp $b or next;...

Tags: perl

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments
Create an Account
Forgot your login or password?
Facebook Twitter More login options
English • Español • Deutsch • Русский…