• 締切済み

別プログラムの標準入力に引数を渡す方法

以下の加算プログラムhoge.plがあります $aaa = <STDIN>; $bbb = <STDIN>; print($aaa+$bbb); hoge.plを別プログラムから以下のように実行し open(OUT,"| hoge.pl"); hoge.plの$aaa、$bbbに値を代入したい場合どのように渡したらよいのでしょうか?

  • Perl
  • 回答数1
  • ありがとう数3

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

OUT に対して print する.

dpdpdpdp
質問者

お礼

ありがとうございました。 解決いたしました。

関連するQ&A

  • perlプログラム内で中間ファイルを利用するには

    perlプログラムについて 処理1 の アウトプットデータを用いて、処理2を行うというのを1つのperlのプログラム内で実装したいと考えています。 処理1のアウトプットファイルの書き出しに時間がかかり 処理2が先に動き、ファイル読み込みできずに終わってしまいます。 処理1のアウトプットファイル書き出しが終了を待ってから、処理2を実施したいのですが、 どのように記載すればよいのでしょうか? 例) perl program.pl AAA > BBB program.pl 内 open(OUT1,"> program1_work"); open(ARG,$ARGV[0]); while(<ARG>){ 処理1 print OUT1 "XXXXXX"; } close(ARG); open(ARG1,OUT1); while(<ARG1>){ 処理2 print "XXXXXX"; } close(ARG1);

  • エクセルで入力するデータを別シートで集計する方法

    エクセル初心者です。 いままでの質問と重複しておりましたら申し訳ございません。 不定期に打込むデータを、別シートで集計したいと思っています。 イメージ下記のような感じです。 宜しくお願いします。 (1)〔Sheet1〕にランダムに打込む。 (2)〔Sheet2〕に個人別に集計 (2)点数10点満点で、8点以上が合格 (3)8点以上には1000円の金額が合計欄に加算 (4)8点以下には100円の金額が加算欄に加算 〔Sheet1〕 名前  点数 aaa   8 bbb   10 ccc   7 bbb   5 aaa   10 bbb   9 〔Sheet2〕 名前  合格   小計  不合格   小計   合計 aaa    2    2000    0       0    2000 bbb    2    2000    1      100   2100 ccc    0      0    1      100    100

  • 外部パラメータを使用したファイルの作成・書き込み

    テキストファイルに以下の内容が書かれています。 ファイルパス:/aaa/bbb/ccc ファイル名:ファイル.txt これを読み込んで $filepath = /aaa/bbb/ccc $filename = ファイル.txt となっています。 この時(「ファイル.txt」は存在しません。)、以下のような処理を行うと「/aaa/bbb/ccc」ではなく、「/aaa/bbb」に「ファイル.txt」が作成されるのですが、なぜでしょうか?? open(TXT, ">> $filepath/$filename"); flock(TXT, 2); print TXT $header; flock(TXT, 8); close(TXT); この処理の前に$filepathの値を調べましたが、確かに「/aaa/bbb/ccc」となっています。 何か注意する点や、ここが問題では?と言うようなことがあれば教えてください。

    • ベストアンサー
    • Perl
  • 出力ファイル名を標準入力から指定したい。

    初心者ですが、よろしくお願いします。 perlで、data.txtというファイルへ $protein の 情報を書き込みたい場合、以下のようにすれば 良いということはわかるのですが、 open(OUT, ">data.txt"); print OUT $protein; では、出力ファイルを data.txtではなく、プログラムを 実行させる度に標準入力から指定してやることはどうやれば できるのでしょうか?

    • ベストアンサー
    • Perl
  • Perl ファイルハンドルを閉じずに反映させる

    お世話になっております。 Perl(プログラミング言語)について質問です。 openメソッドで開いたファイルハンドルに print文で書込みを行った際に、ファイルハンドルをcloseせずに、 書込みを反映させる方法はありますか? 開くのはファイルではなく(他プロセスへの)パイプです。 $| を設定してもだめでした (例としては perl1.pl , perl2.pl を用意する <perl1.pl> $i; open(OUT,"| perl2.pl") while(1){ print OUT "$i" $i++  } close(OUT) <perl2.pl> while( <STDIN> ) { print $_; } のようなことをやりたいです。 上記のようなスクリプトを実行したところ、 perl1のcloseが実行されるまで反映されません。 これをcloseをせずに反映させる方法はありますでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • PL/SQL)Functionの引数(文字列)をWHERE文に記述する方法

    PL/SQLで、Functionの中で実行するselect文のWhereに、Functionの 引数で受けとった値をセットしようとしています。 この引数が文字列(VARCHAR2型)の場合、どのようにWHEREで、記述したらよいのでしょうか? ご教授のほどをよろしくお願いします。 CREATE OR REPLACE FUNCTION Fn_TBL_AAA (psCODE IN VARCHAR2) IS CURSOR TBL_AAA_CUR IS SELECT * FROM TBL_AAA WHERE BBB = psCODE ; TBL_AAA_REC TTBL_AAA_CUR%ROWTYPE;       :       : ※上記のように記述すると、実行ではエラーが発生しないのですが、  取得したい結果が返ってきません。TABLE(TBL_AAA)のBBBは、  VARCHAR2なので、通常のSQL*PLUSのSELECT文ではBBB = psCODE  はBBB = 'psCODE'のように [']で括るのですが、PL/SQLの  FUNCTION内ではどのように記述すればよいのかが  わかりません。 以上、よろしくお願いいたします。

  • javaのプログラム

    int型の配列の各要素に1~10の乱数を代入し、各要素の値を縦向きの*のグラフで表示するプログラムを作っているのですが、結果がランダムででるので、自分の書いたプログラムが正しいのかわかりません。ソースを載せますので合っているのか間違っているか教えて下さい。もし間違っているならどこが間違いなのか教えていただけると嬉しいです。よろしくお願いします。 ●ソース import java.util.Random; import java.util.Scanner; class Graph { public static void main(String[] args){ Random rand = new Random(); Scanner stdIn = new Scanner(System.in); System.out.print("要素数:"); int n = stdIn.nextInt(); int a[] = new int[n]; for (int i = 0; i < n; i++) a[i] = 1 + rand.nextInt(10); for (int i = 1; i <= 10; i++){ for (int j = 0; j < n; j++) if (a[j] <= i) System.out.print("* "); else System.out.print(" "); System.out.println(); } } } ●実行例 要素数:12 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    • ベストアンサー
    • Java
  • 標準出力しながらファイルに出力

    標準出力に表示したものを、そのままファイルに書き込むことは可能でしょうか? 例えば下記のように実現できるかと思いますが、printする度に2行書くのは厳しく思ってます。 ----------------------------- open(OUT, "> outfile.txt") ; print $aaa ; print OUT $aaa ; -----------------------------

  • Perl言語でファイル入出力プログラムについて

    Perlでファイル入出力のプログラムをコーディングしたいのですが、いまいちハッシュが理解しずらく困っています。わかる方よろしくお願いします。 moto.pl の中にあらかじめ AAA aaa AaAa AAaa BBB bbb BbBb BBbb CCC ccc CcCc CCcc AAA aaa AaAa AAaa .... というように一行ずつ文字列があり、この場合では最初の大文字AAAが二つあるので、その結果を例えばsaki.plに AAA 2 ... というように出力するプログラムを教えて頂けませんか?

    • ベストアンサー
    • Perl
  • Perlのプログラミングについて

    Perlのプログラミングでつまづきました。 # ファイルから指定文字列を含む行を収集する # 入力ファイルのオープンと読み込み print( "入力ファイル名?" ); $n = <STDIN>; chomp( $n ); open( FIN, "<$n" ) or die "入力ファイルオープンエラー: $!\n"; $n = @a = <FIN>; close( FIN ); print( "$n 行読み込みました\n" ); # 行の収集 print( "検索文字列?" ); $x = <STDIN>; chomp( $x ); $ptn = $x; #指定の文字列 $x = @b = grep( /$ptn/, @a ); print( "$x 行見つかりました\n" ); # 出力ファイルのオープンと書き出し print( "出力ファイル名?" ); $y = <STDIN>; chomp( $y ); open( FOUT, ">$y" ) or die "出力ファイルオープンエラー: $!\n"; print FOUT ( $ptn, "\n" ); print FOUT ( $x, "\n" ); print FOUT ( @b ); close( FOUT ); というプログラムで実行すると C:\My Perl\pl>perl プログラムの実行.pl 入力ファイル名?sample1.txt 168 行読み込みました 検索文字列?k 45 行見つかりました 出力ファイル名?out3-24.txt 続行するには何かキーを押してください . . . となり出力ファイルの中身が表示されません。 どこを間違えているのかご指摘いただけないでしょうか?

専門家に質問してみよう