11 open STDIN, "<", $file or die "$file $!";
12 open L, "expand -t4 |" or die $!;
14 $?=0; $!=0; close L or die "$? $!";
21 foreach my $i (0..$#l) {
27 $block_start = $i + 1;
31 if (!$block_start && m{^\#+ (\S.*)\n}) {
35 if (defined($block_start) && m{^(total +)(\d+)\s}) {
36 my ($lhs, $exp) = ($1, $2);
38 foreach my $j ($block_start .. ($i-1)) {
40 my $earlier = length($lhs) - 1;
42 next unless length > $earlier+1;
43 die "$file:$j: ($i): $_ ?" unless m{^.{$earlier} (\S+)\s};
45 next unless $here =~ m{^[-+]?\d+$};
48 my $delta = $exp - $got;
49 print "$file: checking total: $heading\n";
51 print STDERR "$file:$i: expected $exp but got $got, spend $delta\n";