• ベストアンサー

画面確認 (超初心者)

 Perlで学ぶゼロからのプログラミングと言う本で perlの勉強を始めたばかりです。 p20に「実行し終わると、DOS窓はすぐにとじてしまうので、結果を画面で 確認することはできません。画面確認するためには、つねに入力待ちで待機 させておくなどの工夫が必要です。」 とありますが、待機のさせかたがわかりません。 たしかにメモ張で作ったtest.plはすぐにとじてしまってみえません。 またDOS窓からC:\data_pl>test.plを実行するとコマンドまたは ファイル名が違います。とでます。しかしたしかにメモ帳でつくった test.plはdata_plフォルダの中にあります。 ちなみに cd data_plまではうまくいきます。 よろしくお願いします。

  • Perl
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • slash4004
  • ベストアンサー率46% (25/54)
回答No.1

dos窓で test.plと同じディレクトリーまで移動します。 そこで >perl test.pl(リターン) とやったらうまくいきませんか? 閉じてしまうのはダブルクリックしたときですよね。

naga092
質問者

お礼

すばやい回答たいへんありがとうございました。 おかげでうまくいきました。 たいへんたすかりました。

その他の回答 (1)

  • drmoreau
  • ベストアンサー率41% (33/79)
回答No.2

c:\data_pl>perl test.pl とすれば実行されます。 windows上では、pl拡張子のファイルは、perlインタープリタに関連付けされているので、自動的に上に書いたようなコマンドラインを実行してくれますが、pl拡張子のファイルはテキストファイルなので、DOSで実行するためには、perlインタープリタに引数として渡してやる必要があります。 ちなみに c:\data_pl>perl test.pl > result.txt として実行すれば、結果のをテキストファイルとして保存してくれます。 あとでdata_plの中にできているresult.txtをメモ帳で開けば実行結果を見ることができます。

naga092
質問者

お礼

すばやい回答たいへんありがとうございました。 おかげでうまくいきました。 たいへんたすかりました。

関連するQ&A

  • Windows版Perlの標準入力&標準出力

    Windows2000にActive Perl5.6をインストールしています。 標準入力をそのまま標準出力するプログラムを作っているのですが うまく動きません。 DOSコマンドの使い方が間違っているのか、Perlの書き方が間違って いるのか、それともWindows版のPerlではこのような使い方はできない のか、教えてください。 ■プログラムソース(c:\test.pl) while(<>){ print; } ■実行方法 c:\data.dat|test.pl>data2.dat ■データ(data.datの中身) こんにちわ ※実行するとdata2.datにdata.datの内容がCOPYされる 予定なのですが、正しく動きません。

    • ベストアンサー
    • Perl
  • 初心者 Hello worldをしたい

    ActivePerl をインストールしました。 早速、Hello worldを表示させようと思うのですが メモ帳に「print "Hello world!!\n";」と記載して 「hello.pl」という名前で保存しました。 それをデスクトップにおきました。 その状態で コマンドプロンプトで「perl hello.pl」を実行しても Can't open perl script "hello.pl": No such file or directory (和訳:開いたperlは、「hello.pl」のスクリプトを書くことができません:そのようなファイルまたはディレクトリ) が返って来ます。 多分、デスクトップにおくのが間違いだと思うのですが どこに「hello.pl」を置いて 「perl hello.pl」を実行すればいいのでしょうか? ご教授よろしくお願い致します。

    • ベストアンサー
    • Perl
  • Perlの超初心者です。

    Perlの超初心者です。 mac osXを使っています。テキストエディットで、#! /usr/bin/perl print "hello world!\n";と書いてperl-test.plと保存しました。そしてターミナルを起動してperl-test.plとタイプしたのですが、-bash: perl-test.pl: No such file or directoryとなってしまいます。 試しにターミナルでperl -le "print 'hello world';"とタイプするとhello worldとかえってきました。 perl-test.plはfinderのデスクトップに保存してあります。いったいどうすればperl-test.plのファイルを実行できるのですか? 教えて下さい。よろしくお願いします。

  • warnやdieの出力先を変更したい

    お世話になります。 現在perlを勉強しているのですが(ActivePeal5.12.2) コマンドプロンプトから test.pl > test.log と実行した場合、test.pl内で標準出力した文字列がtest.logにリダイレクトされますが test.pl内で ~die "ERROR~"とした場合、"ERROR~"はtest.logに出力されません。 これを簡単にtest.logに出力する方法はないでしょうか。 リダイレクトせず実行した場合、画面に出力されているのでリダイレクトすればそのまま良いと思っていたのですが・・

    • ベストアンサー
    • Perl
  • bad interpreter:エラーについて

    -bash: ./test.pl: usr/bin/perl: bad interpreter: というエラーについてです。 掲題のエラーが出てしまい、perlが動かないので困っています。 どうすればいいのか教えてもらえませんでしょうか。 【状況】 VMwareplayer3.1.2上で、CentOS5.5を動かし、デフォルトで入っているperlを使ったファイル「test.pl」を作っています。 test.plを実行しようとしているのですが、以下のエラーメッセージが表示されます。 -bash: ./test.pl: usr/bin/perl: bad interpreter: そのようなファイルやディレクトリはありません 実行した際のコマンドは./test.plです。 test.plの中身は以下。 ------------------------------------------------------ #!/usr/bin/perl use strict; use warnings; my $name = "morifuji"; print "Hello ". $name . "\n"; ------------------------------------------------------ 【確認済み事項】  test.plの置き場所は/usr/bin/perlです。  ls -lで権限をみたところ、rwxr-xr-x furukawa root 4096となっている。  perl test.plと命令するとエラーは返らずちゃんと表示されます。  (perlを省いて、test.plと命令するとエラーになる。これだと、webから表示されたときに動きません)  FTPとかで転送すると文字コードの問題でバグが出る、という風な記事を見かけたが、VMwarePlayerなのでそういったやりかたはしていない。  which perlと命令してperlの場所を探したが、 /usr/bin/ にある。

  • perlスクリプトをコマンドラインから実行する際、ファイル名だけで動かしたい

    はじめまして。どうぞ宜しくお願いします。 コマンドラインでperlを実行する際、 $ perl test.pl と先頭に「perl」をつけると正しく動作しますが、 $ test.pl と「perl」を外すと以下のようなエラーが出ます。 $ -bash: test.pl: command not found もう一台あるLinux機では、プログラム名だけでも動作しているので 何らかの方法があるのだと思います。 たとえば、Windowsで言う拡張子の関連付けなどのような事ができるのでしょうか。 ご存じの方がおられましたら、よろしくお願いします。 OS:RedHat9

    • ベストアンサー
    • Perl
  • perl/tkを使って作ったGUIを実行すると。。。

    perl/tkを使って作ったGUIを実行すると、DOS窓が開いたままの状態です。 GUIを閉じるとDOS窓も閉じます。 GUIを実行中、DOS窓が開かないようにできないのでしょうか? perlのバージョンはv5.8.8。 osはxpです。

    • ベストアンサー
    • Perl
  • Perl から csh 実行

    やまとです。 いつもありがとうございます。 Perl + csh を同時(?)に実行する方法を教えてください。 OSはSunです。 具体的にどのような処理を行いたいか簡単に説明しますと。 1.Perlでcshを実行(system関数?)し、cshで環境変数をセット(source)する。 2.cshで環境変数をセットしたら、ファイルを出力する処理が行われます。 3.Perlでcshによって出力されたファイルの内容を画面に表示します。 以下ソースを掲載します。(抜粋して) ================================================== = Perl ( test_perl.pl ) $data = "ABC"; $ret = system(`test_csh.sh $data`); ・ ・ ファイル(test.log)を開き、読込、画面に表示します(まだ作成してません。) ================================================== = Csh ( test_csh.sh ) source test_source.sh echo $1 > test.log ================================================== = test_source.sh setenv CLASSPATH .:/aaa・・・・・・ ↑ PATHの設定を行ってます。 ================================================== 画面に、「ABC」と出力させたいのです。 Perlからcshが実行されていないように思えるのですが、 Perlのsystem関数の使い方が誤っているのでしょうか? それとも、ClassPath等の設定をしなければならないのでしょうか? ちなみにコマンドから、 # test_csh.sh ABC と実行しますと、ファイルが出力され、かつ、sourceも実行されています。 Perlから実行する方法を教えてください。 説明が不十分であれば、補足いたしますのでご指摘ください。 宜しくお願いします。

    • ベストアンサー
    • Perl
  • Win98+PWS4.0でPERLが動作しません

    Win98+PWS4.0でPERLを動作させたいのですがうまくいきません。 ディレクトリ「Inetpub」-「scripts」へTEST.PLという名で 下記のプログラムを入れて実施すると、 --------------- #!/user/local/bin/perl print "Content-type: text/html\n\n"; print "<html>\n"; print "<body>\n"; print "<p>\n"; print "Hello\n"; print "</p>\n"; print "</body>\n"; print "</html>\n"; --------------- HTTP エラー 403 403.1 許可されていません: 実行アクセスは許可されていません --------------- と出ます。 レジストリの設定は ".pl",".cgi”とも「C:\Perl\Bin\Perl.exe %s %s 」として、 PWSの設定で「scripts」は”実行””スクリプト”とも チェエク入をれています。 「wwwroot」のルートへ置いても同様のエラーが発生します。 DOS窓から「Inetpub」-「scripts」内でTEST.PLとすると 正常に表示はされます。 PerlへのパスもC:¥から実行確認済みです。 何が原因と考えられるでしょうか。 宜しくご教示お願いします。

  • JSPでのincludeについて

    JSPからincludeでperlを呼び出したのですが、 perlのファイル内で記載したスクリプトがそのまま文字列として表示されてしまいます。 なにか設定する必要があるのでしょうか。 コマンドから直接perlを実行した場合は期待する結果が返ってくることが確認できました。 --------------------------------------------- ■test.jsp // perlを呼び出し <jsp:include page="test.pl" flush="true"></jsp:include> ■test.pl #!/usr/bin/perl print $result; exit; ■test.jspで表示される結果 #!/usr/bin/perl print "aaaaaaaaaaaaaaaa"; exit; ■期待する結果 aaaaaaaaaaaaaaaa --------------------------------------------- よろしくお願いします。

専門家に質問してみよう