while ループを使用して、入力ファイルから配列に実数を割り当てています。入力ファイルは、配列の最初の 21 ポイントが空白になるように設定されています。数値 21 は、入力ファイル内の「Range1」というフレーズを含む行番号から 1 を引いたものに対応します。
splice @range_min, 0, $header_lines-1;
これらの空白行を配列から削除します。
別の行にそのフレーズを含む他の入力ファイルが存在する可能性があるため、 $header_lines をそのフレーズを含む行番号と等しくする必要があります。
次のコマンドをwhileループに入れようとしました:
$header_lines = $., last if /Range1/;
これは機能しますが、配列を完全にクリアします(プログラムの目的を無効にします)。
while ループや配列に影響を与えずに、入力ファイル内のフレーズの行番号を見つけるより良い方法はありますか?