• 締切済み

perlのprint文がうまく動きません

perlの勉強を始めました。 perlの本の最初に Hello.plというファイルに print”Hello!”;と記述して perl Hello.plとすると画面にHello!と表示されるとあるのですが、何も表示されません。 ファイルの記述をprint ”Hello!\n";としてやるとHello!と一応表示されるのですがなぜ改行が必要になるのかがよくわかりません。どのように理解すればいいのでしょうか?

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

みんなの回答

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.3

print”Hello!”; じゃなくて、 print "Hello!"; です。 必ず小文字で、かつprint の後に半角スペースを開けてください。 なお、改行がない場合は、すぐ次にコマンドプロンプトが表示されますが、改行があると一行間が開きます。 Windowsのコマンドプロンプトからと、Cygwinのbashからの画面をあげておきます。 #!/usr/local/bin/perl print "Hello World!";

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

どんな環境(OS:WindowsとかLinuxとか/実行環境:なにかの開発環境なのかコマンドラインなのか、等)での結果でしょうか? perlのprintは、それだけでは改行をしません。 なので、print "Hello!"を実行すると ! の直後にカーソルが来てプログラムが終わります。 その後に表示されるプロンプトが、その行の始めから表示されて、Hello!を上書きすることもあります。 普通 C:¥> とか出るプロンプトがHello!の後に続いて Hello!C:¥> 等と表示される場合もあります。 改行単位で表示するウィンドウだったりすると、次の改行が来るまで「Hello!」は出力待ちになってしまいます。

回答No.1

こんにちは。 なぜか?と聞かれると、上書きされるから・・・。 普通は、 command>コマンド入力待ち の状態で、 command>perl Hello.pl と入力して実行したら、 Hello! と表示するのですが、改行がないため、一瞬で command> に置き換わります。 なので見えないです・・・。

HETERO
質問者

お礼

なるほど!そういうことなのですね。! でも、そうだとすると、入門書にこうやるとHelloと出力されるという記述は初心者 にとってはあまり適切ではない説明だったのですね。 やっとわかりました。

関連するQ&A

  • 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のファイルを実行できるのですか? 教えて下さい。よろしくお願いします。

  • 超初心者です

    最近Perlの勉強を本をつかって始めたのですが、 最初の段階でつまずいています。 プログラムは #!/usr/bin/perl #プログラム:hello.pl print "Hello, world!\n"; という本当に実に単純なものなのですが、これをターミナルで実行しようとすると $ hello.pl bash: hello.pl: command not found と表示されてしまします。 $ perl hello.pl Hello, world! ではちゃんと動いています。 Perlの場所は $ find /usr -name perl /usr/bin/perl /usr/doc/db3-devel-3.2.9/ref/perl により間違っていないと思いますし、 chmod 755 hello.pl も行っています。 なにぶん初心者ですので何が他に理由でエラーになるのかわかりません。もしよろしければ、アドバイスをいただけるとうれしいです。 自分はVineLinux2.6を使っていてPerlのバージョンは5.006001です。

    • ベストアンサー
    • Perl
  • perl use strict エラーにならない?

    perlの使い方を勉強しているのですが use strict;を記述すると 変数宣言が必要になるということですが 以下のように記述してもエラーになりません。 use strict;を記述すると my $a;がないと$a="Hello";で エラーになるのではないのでしょうか。 ---test.pl---- use strict; $a="Hello"; print $a; -------------- >test.pl Hello > (Windows7, ActivePerl)

    • ベストアンサー
    • Perl
  • perlの起動法

    perl起動法について質問なのですが、 perlでファイルを作り、一番上に#!/usr/bin/perlと書いて、perl.plという名前で保存しました。 ターミナルで$chmod 755 perl.pl $./perl.pl とコマンドをうったのですが、print文で書いたhello worldというが表示されません。 でもperl perl.plとコマンドを打つと実行されます。 一体この違いはなんなのでしょうか?学校の課題で、どうしても./perl.plとして実行させなければならないので是非解答お願いします。

    • ベストアンサー
    • Perl
  • perl 初めてのプログラムにエラーが出ます

    hello.pl というファイルに print “hello”; と、書きました。 ターミナルに perl -cw hello.pl と、入力しました。 Unrecognized character \xE2; marked by <-- HERE after print <-- HERE near column 7 at hello.pl line 1. と、メッセージが出ました。 解決方法を教えて頂きたいです。 よろしくお願いします。

    • ベストアンサー
    • 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:¥から実行確認済みです。 何が原因と考えられるでしょうか。 宜しくご教示お願いします。

  • 初心者 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
  • WindowsでPerlをする際,1行目の"#! ~"はどのように?

    Perlの参考書・本等ではプログラムファイルの第1行目は #! /usr/local/bin/perl という1行がよく有りますが,WindowsXPを用いている場合では,この1行をどう直せばよいのでしょうか? #! (perl.exeが存在するフォルダのパス) でよいのでしょうか? 私はWindowsXPを使っていて,この1行を使わずにプログラムを書いておりましたので,この1行の意味がよく分かりません。 ある参考書には,"#!はその行に書いたコマンドに,ファイルの残りの部分を渡して実行すると言う性質を持っている"と有りました。だから,試しにfile1.plとfile2.txtを準備し, file1.plの中身  #! (perlの存在するフォルダのパス)\perl.exe  while(<STDIN>){   print;  } file2.txtの中身  hello world として,コマンドプロンプトで file1.pl < file2.txt としたのですが正しく動作しませんでした.(perl file1.pl < file2.txt と入力した場合は正しく"hello world"となりました)

    • ベストアンサー
    • Perl
  • ブラウザ表示できません

    perl初心者です。これから勉強しようとしてます。 ですが、プログラムを打つ前に早速難関が・・・ perlをブラウザで表示しようとしてるのですが、出来ません!!(><) 本の通りに次のような作業をしました。 __________________ 1、ActivePerlのインストール 2、AN HTTPDのインストール 3、試しにcgi-binフォルダ内にhello.plの作成。 内容___________ #!/usr/bin/perl print"content-type: text/html\n\n"; print "Hello,world!"; _______________ と、打ち、コマンドプロンプトでperl hello.plと、入力すると、 content-type: text/html Hello,world! と、出力されます。 ですが、本の通り、ブラウザのアドレスバーに ”http://localhost/cgi-bin/hello.pl” と、入力すれば、Hello,world!と、表示されるはずなのに されません。 ちなみに、 サーバーが見つからないか、DNS エラーです。 と、表示されます 同じような質問があり、そこでの対策も試してみましたが、 どれも効果がありません。 初歩的な質問で申し訳ありません。 しかし、これからperlを勉強するに当たって避けては通れない道だと 思い、質問しました。 解決策以外にも他の方法でブラウザで表示する方法が あれば、そちらも試してみたいと思ってますので、 そちらのほうも、紹介していただけるなら、よろしくお願いします。

    • ベストアンサー
    • Perl
  • perlがうごきません

    htmlファイルには <html> <form action="form2.cgi" method="get"> 食品名1<input type="text"name="form1"> <br> 食品名2<input type="text"name="form2"> <input type="submit"value="送信"> </form> </html> cgiファイルには #! /usr/bin/perl require "cgi-lib.pl"; &ReadParse(); print "Content-type:text/html\n"; print "\n"; print "<html>\n"; print "<head>\n"; print "<title>フォーム</title>\n"; print "</head>\n"; print "<body>\n"; print "おいしい$in{'form1'}\n"; print "まずい$in{'form2'}\n"; print "</body>\n"; print "</html>\n"; exit; cgi-lib.plはサーバーにいれております。 どうしてうごかないのでしょうか。 perlの場所も正確です。

    • ベストアンサー
    • Perl

専門家に質問してみよう