in reply to Insert lines in a file
use Inline::Files; $v = 'r13'; %b = map {chomp; $_ => undef} <FILEB>; while (<FILEA>){ @t = split /[\s|\"]/; push @a, $t[2] if ! exists $h{$t[2]}; $h{$t[2]}{$t[6]} = $t[0]; } foreach (@a){ exists $b{$v} ? ($h{$_}{$v} = "test") : ($h{$_}{$v} = "skip"); foreach $key (sort keys $h{$_}){ $key ne '' ? print "$h{$_}{$key} $_ version $key\n" : print "$h{$_}{$key} $_\n"; } } __FILEA__ test "r5" test "r1" test "r1" version "10" test "r1" version "11" test "r1" version "12" skip "r1" version "15" test "r4" test "r4" version "10" skip "r4" version "11" test "r3" skip "r3" version "11" test "r10" skip "r10" version "11" __FILEB__ r1 r10 r5 r13
|
|---|