App-gapstat

 view release on metacpan or  search on metacpan

gapstat  view on Meta::CPAN

  #$g22 { $gap } = dualvar $prev , $prev ; 
  $prev = dualvar $. , $_  and $neof = 0 or goto ULOOP if eof && $neof ; # and or xor は、やり過ぎかもか。
  
} continue {
  $prev = dualvar $. , $_ ; #
}   
& gap1output unless ($o{G}//'') eq 0 ; 
exit 0 if ($o{L}//'') eq 0 ; 


sub f ($) { my $t = sprintf "%.12f" , $_[0] ; $t =~ s/\.?0*$//r } # 12桁にして、末尾からの0を削る

# 出力2. longest length と max gap #### 
say join "\t", map { UNDERLINE $_ }  "|gap|<=" , "maxlen" , "line:content (length)" ; 
for ( grep { $_ != "Inf" } sort { $a <=> $b } uniq map { abs $_ } keys %gd  ) { 
  my @chains = defined $lc{$_} ? @{ $lc {$_} } : () ; # それだけの $_ つまり max abs gap を持つものの、リストを取り出す。
  #my $Length = defined $chains[0] ? $chains [0] +0 : "NA" ; # 本当は(バグってなければ)、どの要素を取ってきても良い。その数値部分(dualvar) を取り出す。それは最長長さ。
  my $Length = max map { $_ + 0 } @chains ;
  say join "\t" , f $_ , $Length, map{ sprintf "%s (%g)", $_ , $_ } @chains ; # join の中では、テキストコンテクスト。
}



( run in 1.259 second using v1.01-cache-2.11-cpan-5735350b133 )