BEGIN の中での getline

予想通りの Ed Morton の反応でした。

Question

BEGIN { upper = "PNBRQK"
lower = "pnbrqk"
getline < "lance1.tmp"
cor = substr($0,77,1)
}

要するに、"lance1.tmp" の部分を可変にしたいということです。

Answer

ここ を読んで、顔を洗って出直して来いということです。(少しだけ意訳)

ただし、BEGIN で読むための手法はちゃんと分かって使う分には強力な武器になりますので、マスターしておきたいものです。

さて、その問題になっている ここですが、非常に面白いです。なぜ getline がダメなのか、なぜ getline がわずらわしいのか、getline を使うのが適切な場合はどういう場合なのか、getline を使わずに処理ができるのか、ちょっと「プログラム言語 AWK」の流れに近いようなスタイルで書かれています。実際には「そうは言ってもねぇ」と思ってしまう部分もありますが、awker は一読しておいて損はないと思います。(一応、現在翻訳中で、大いに考えさせられたので、付け足しました)