
いつもお世話になります。自分の書いた長めのファイルから、あるキーワードを含む行を抜き出して表示するプログラムを作ったの(それもここで質問に答えてもらってはじめてできたん_)ですが、一致する行が多いときには、ザクザクと画面上を流れて(print;を使っています)前半部がよく見れません。>filenameでファイルに保存はできるので、後で開けばみれるのですが、できれば10行くらい表示したらストップして、何かキーボードのキーを押したら、また続きを表示するようにしたいのです。BASICでは、STOPだかWAITだかで実現できてたように思うのですが。。。適当な制御命令がありますか。頭をお借りしてよろしいでしょうか。
No.2ベストアンサー
- 回答日時:
案a)STDOUTを"|more"でオープンし直して出力。
案b)$whatを@ARGVから読み取り、コマンドラインで指定できるようにする。
――とか。具体的なコードは省略。
昨晩からお答えを見ていたのですが、うまく利用しきれずにお礼が遅くなりました。教えていただいた二つの案ともうまくいきました、ありがとうございます。案a)の方は実はうまくSTDOUTを使えず、プログラム中で一旦名前をつけて、それをsystem("moreで開いています。案b)はしっかり理解できたつもりです。最初のお答えですでに十分なヒントをもらってたんですね。初心者の質問にいいアドバイスをありがとうございました。
No.3
- 回答日時:
10行づつなら、取り合えずwhile以下を
while (<IN>)
{
if(/$what/)
{print;
$count++;
if($count>=10)
{$count=0;
<>;
}
}
}
close IN;
# <> は <STDIN>の略形です ( http://ryulife.com/attic/perl.html の第五章 )
思ってたとおりに動きます!ありがとうございます。ただ、なんでうまくいってるのか、まだよくわからないです。でも、そっちはゆっくり考えようと思います。初心者の質問にいいアドバイスをありがとうございます。しっかし、なんでやろ~。
No.1
- 回答日時:
コマンドラインから実行してるのであれば、
perl a.pl | more
みたいに、ページャにリダイレクトするのが一番手っ取り早いかと。
参考URL:http://journal.mycom.co.jp/special/msdos/028.html
この回答への補足
こんなプログラムです(段組みがひどいですが)
print "what?"; $what = <STDIN>; chomp($what);
open (IN, "file_a");
while (<IN>){
if($_=~/$what/){
print $_;
}}
close IN;
入力を待つためか、うまく |more が使えませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
隣の枝がはみ出してきたら切ってもいい?最もやってはいけないことは?
「隣の木が越境してきて困るが、勝手に切ってはいけないと聞くし…」そう思っている方も多いだろう。実は、2023年4月1日に民法が改正され、この「越境枝」のルールが大きく変わった。 教えて!gooでも「境界から出て...
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlのプログラミング 部分入れ...
-
Perlでファイルの末尾から指定...
-
テキストファイルで提出とは?
-
perl の open について教えてく...
-
Perl言語について。
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlについて
-
perlのrequireの動き方について...
-
perlの構文でカンマの意味が分...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パールの-pオプションの値0777...
-
登録画像のファイル名について
-
CGIでhtmlを作成するもブラウザ...
-
ディレクトリのファイル数取得
-
ファイル内の平均のだしかた教...
-
SUN BBSの改造方法
-
wordの数式について 定積分を書...
-
掲示板(kentさんの所のsunbbs...
-
ラジオボタンが両方とも選択で...
-
「value」に2つの値をセットす...
-
チェックボックスの返す値
-
[HTML]プルダウンメニューの横...
-
WEBページを強制的に横画面で見...
-
FORMのselectの選択肢を最初か...
-
VB.net データーグリッドビュー...
-
MSPゴシックで、一番幅を取る文字
-
別formのhidden項目を自form値...
-
select値をhiddenのvalueに渡し...
-
リストボックス(multipleなsel...
-
チェックボックスとセレクトボ...
おすすめ情報