例えば、CSVのカラム行、つまり1行目だけ欲しければ、行番号が格納されてる変数 $. に 1 を指定してあげればその行だけ抜き出してくれます。
ワンライナーで書くとこんな感じ。
$ perl -wnl -e '$. == 1 and print; last;' csv_file
からくりとしては、$. == 1 の部分が true になると「and」以降に処理が流れ、行が print され、この場合はその行(1行目)以外は要らないので、last でループ処理を抜け出します。
指定した行だけ欲しいのに last を書き忘れると無駄に最後の行までループが止まらないので、大きいファイルを読みこませるときは注意。
ワンライナーではなくスクリプトで書くと次のようになります。
#! /usr/bin/perl use warnings; use strict; while (<>) { if ($. == 1) { print; last; } }
予め行番号が分かれば、上記を応用して、$. == n のところに行数を入れればその行だけ抜き出せます。
または、何かもっと別な条件を指定して、その条件にぶち当たったところでループを終了させるとか。