2012-03-29 7 views
2

にPerlのフォーマットされた出力を送信する私はこのようなフォーマット定義している:私が書く呼び出すと、私はSTDOUTに印刷していますが、私は多くのデータを処理していますし、それがより多くを取るとき、すべてが素晴らしい作品少ない

# header format 
format STDOUT_TOP = 
pid ppid start_addr uid gid state  vsz rss  name 
-------------------------------------------------------------------------- 
. 

# data format 
format STDOUT = 
@>>> @>>> @>>>>>>>>>> @>>> @>>> @>>> @>>>>> @>>> @<<<<<<<<<<<<<<<<<<< 
$pid, $ppid, $h_next,  $uid, $gid, $state, $vm, $rss, $name 
. 

を表示するページよりも。私や他の誰かがそれを調べる理想的な方法は、より少ないものであろう。私のプログラムの出力をlessにパイプすると、出力の新しいページごとにヘッダの前に^L文字が出力されます。

スクリーンショット: output of my program piped to less

はこの周りのいくつかの方法はありますか?その文字が印刷されていると私のヘッダーが自分のデータと整列していないからです。

ご協力いただければ幸いです。

+0

特殊変数 '$ ='に大きな値を割り当てて、ページの行数が多いことを示すことができます。しかし、1ページしかないので、出力の各ページの上部にヘッダー文字列が表示されなくなります。 – mcsi

+0

私はフォームフィードを無視し、人生を乗り切ります。 –

+0

@briandfoyもし私がこれを回したければそれはうまくいくでしょう。 –

答えて

5

これはASCII形式のフィードです。両方の場合に印刷されている可能性がありますが、lessは実際にはです。と表示されています。 perlformperlvarによると、perlは$^L$FORMAT_FORMFEEDuse English)の内容を出力しています。 varを空文字列や改行に設定してみてください。

+0

ありがとう、それは完全に働いた。 –