Perlで外部コマンドの結果を取り込む
l-w-i
l-w-i
ATOMRSS
  • ソースコードID: 347
  • 登録日時: 2007/10/11 16:19
  • 最終更新日時: 2007/10/27 23:21
  • アクセス数: 3159
  • タグ:  perl
  • codeなにがしブックマークに追加する 0 users
  • このページを del.icio.us に追加
  • このページをはてなブックマークに追加
  • GoodJob
  • 1

GJ

説明

Perlで外部コマンドを実行するには通常system()を使いますが、その結果を取り込んでPerlで処理する必要が出てきてsystem()ではうまくいきませんでした。

少し調べたところ、単にコマンドをバッククォートでくくれば結果が取れることが分かりました。

そういえば普段はopen()の第2パラメータにコマンドを指定しているのを思い出しました。

既出かもしれませんが、備忘録として両方の手順を書いておきます。

ソースコード

コメント

  • mikiT
  • 1:mikiT
  • 2007/10/11 16:39

>@result `ps`;

ps の結果を @result に代入します。
ということで、コマンドの出力ぶんメモリを食うので、あまりよろしくない書き方かと思われます。

  • GoodJob
  • 0

  • l-w-i
  • 2:l-w-i
  • 2007/10/11 16:53

コマンドの出力ぶんメモリを食うので...

おっしゃるとおりです。

なので`ps -ax`等の結果ではなく、控えめに`ps`の結果にしてみました(笑)。

きちんと書くならやはり入り口で出力データを絞るということですよね。

ご指摘ありがとうございます。

  • GoodJob
  • 0

  • ゲスト
  • 3:ゲスト
  • 2007/10/27 17:06

my $var readpipe( 'コマンド' );
でもOKですね。

ただ、1行の値として読み込んでしまうので、
複数行を標準出力に出力するコマンドの場合は、
注意が必要です。

  • GoodJob
  • 0

  • l-w-i
  • 4:l-w-i
  • 2007/10/27 23:21

ゲストさん

こんな方法もあるんですね。

ありがとうございます。

参考になります。

1行ずつ配列に入れれば楽に使えますね。

my @var readpipe('ps');

foreach(@var)
{
  print;
}

  • GoodJob
  • 0

前へ 1 次へ

コメントする

[block]から[/block]までの範囲はブロック表示されます。
部分的に目立たせたい時や、引用などにお使いください。

[code]から[/code]までの範囲は等幅表示されます。
ソースコードや設定ファイルの記述などにお使いください。

ゲスト投稿者:ゲスト:

PDFLib | A library for processing PDF on the fly プレゼン公開・共有サイト handsOut.jp オープンタイプ株式会社 チーム・マイナス6% - みんなで止めよう温暖化

ソースコードのブログパーツ

デフォルトのフォントサイズ
修飾
表示サイズ
px px
プレビュー (表示する)
下のプレビュー領域をクリックすると、ポップアップで全体を見ることができます。
パラメータが不正です

    GoodJobしたユーザ

    ブックマークコメント

    関連するなにがし

    前へ 1 次へ

    タグ

    dyndnsbytearrayinputstreamobjectinputstreambytearrayoutputstreamobjectoutputstreamディープコピーdeepcopyarraylistiteratorチェックボックス複数multibytexencentos文字エンコーディングinit_connectcharacter-set-servercollation-serverdefault-character-setf:label動的メソッド呼び出しヘルパーメソッドwsse2重登録防止prototype.js位置positionpositionedoffsetscrolltoスクロールlink_tocyclecheck_box_tagチュートリアルactive_formerror_messages_forハイライトバリデーションvalidate便利リストデコレーションメールデコメ非対応機種tilestext_field_tag一括複数情報etherealrtphexテキストデータ抽出validwhenリセット一括更新plop置換replacepcoslogmixisregソケットnet::telnetfopenmutexサンプルcalendar[linux][bash][シェルスクリプト][大容量]mobilerorrails2.1clipboardクリップボード横向きピラミッドs2jdbc-genjsonicお絵かきフルパス名抽出サブドメインサブドメイン名s2jdbc自動生成エンティティドコモxhtmlrestdoltengspidering背景変更グラデーションiso一括登録xトークンチェックevalmonitorslavereplication画像処理

    前へ 1 2 3 ... 8 次へ