#!/usr/bin/perl

use strict;

my $logFile = $ARGV[0];
my $srcFile = $ARGV[1];

open( LOG, "< $logFile" ) or die "couldn't open file $logFile";
open( SRC, "< $srcFile" ) or die "couldn't open file $srcFile";

my $logNum = getNextLineNum();

my $srcLineNum = 1;

while ( $logNum && ( my $srcLine = <SRC> ) ) {
    $srcLineNum++;

    if ( $srcLineNum == int($logNum) ) {
        print $srcLine;
        my $newLogNum = getNextLineNum();
        while ( $newLogNum == $logNum ) {
            print $srcLine;
            $newLogNum = getNextLineNum();
        }
        $logNum = $newLogNum;
    }
}

sub getNextLineNum {
    my $num;
    while ( my $line = <LOG> ) {
        if ( $line =~ /^(\d+)\s/ ) {
            return $1;
        }
    }
    return undef;
}
