ついでに index.html 書き出し部分も

# index.html
$boradName = 'news4vip';
# 1..10
$tmpl = qq[<a href="../test/read.cgi/${boardName}/%s/l50" target="body">%d:</a> <a href="#%d">%s</a> ];
$cntLast = (@subjectTxt > 10) ? 10 : scalar(@subjectTxt) ;
for $cnt (1 .. $cntLast)
{
  $_ = $subjectTxt[$cnt-1];
  printf($tmpl, substr($_, 0, 10), $cnt, $cnt, substr($_, 15));
}

# 11..100
$tmpl = qq[<a href="../test/read.cgi/${boardName}/%s/l50" target="body">%d: %s</a> ];
$cntLast = (@subjectTxt > 100) ? 100 : scalar(@subjectTxt) ;
for $cnt (11 .. $cntLast)
{
  $_ = $subjectTxt[$cnt-1];
  printf($tmpl, substr($_, 0, 10), $cnt, substr($_, 15));
}

# 上位10スレの l10 のhtml化
$cntLast = (@subjectTxt > 10) ? 10 : scalar(@subjectTxt) ;
for $cnt (1 .. $cntLast)
{
# threadId 取得
  $threadId = ($subjectTxt[$cnt-1], 0, 10)

  # dat を読む (ここでもIOを減らす方法はいくつかある)
  open(DAT, "${boardPath}/${threadId}.dat");

  # 書く ( 1 と l10 部分)

}