• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Perlでpopen()的なものを使って・・)

Perlでコマンドの結果値を表示する方法

このQ&Aのポイント
  • Perlでちょっとしたアプリを作っていて、コマンドの結果値をHTMLで表示させる方法について教えてください。
  • C言語で作成したアプリをPerlに移行したい場合、popen()やfgets()、strtok()に相当する関数を使う方法を教えてください。
  • 初めてPerlを触るため、ネット上には参考になる情報がなかなか見つからない状況です。アドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.2

print `ls -la`; が一番簡単だと思いますが、あえて質問文に似せるなら、 open (ls, 'ls -la |'); while(read( ls,$result,1024)){ print $result; } close(ls); ぐらいかな。 もう少し簡略化して、 open (ls, 'ls -la |'); while(<ls>){ print; } close(ls); とも書けます。 strtokが何をしているか、いまいちよくわからないので無視しています。 一応、 popen()->open() fgets()->read() strtok()->split() ぐらいに対応すると思います。 splitはちょっと違うかもしれませんが。 http://plaza27.mbn.or.jp/~satomii/jdoc/perltut/split.html

参考URL:
http://www.tokyo-nagasaki.net/dayan/tips/unix/perl.html
fm0606
質問者

お礼

できました!! ありがとうございます。

その他の回答 (1)

回答No.1

C言語はあまり存じ上げないのですが、 system関数はCにもありませんでしたっけ? print system("dir"); #win系なら でそのまま一覧表示できたりします。 (単純すぎて物足りないものでしょうか?) もしくは、バッククオートを使って、 print `dir`; でも同じことができます。 こちらの方が応用がきくかもしれません。 FileHandle使わなくても、 my @list = `dir`; で代入まで済みますので、 多分popen()の代わりにこの場合なっていると思います。 その他 Shellモジュールもコマンド操作用に用意されてますので、 興味があれば調べてみてください。 #何分Cの方がわかっていないので、勘違いしていたらすみません。

関連するQ&A