2016-08-03 5 views
-3

私はちょうどperlを学び始めました。私はHello Worldプログラムhello.plを書いて、 '+ x'を使って実行可能にしました。Perl Hello World Not Working

私はperlのhello.plを使用して、それを実行することができますが、私は./hello.plしようとすると、エラーが来ている:エラー:そのようなファイルの「Hello World」

理由は何ですか?

編集:

私のプログラム

use warnings; 
use strict; 
use 5.010; 

print "Hello World"; 

私のエラー:プログラムの先頭で

./hello.pl: line 1: use: command not found ./hello.pl: line 2: use: command not found ./hello.pl: line 3: use: command not found Error: no such file "Hello World"

+6

コードを投稿してください。エラーメッセージから、私はそこにいくつかのバッククイックを持っているか、そうでなければあなたのスクリプトで何か変なことをしていると推測しています。 – Sobrique

+1

[なぜシバン線は常に最初の線でなければならないのですか?](http://stackoverflow.com/questions/12910744)...私は前に間違った重複で閉じました。 –

+1

あなたは、それが動作するようにperlに指示することによって正常に動作し、それ自体では動作しないと言うと、perlはそれを実行していません。あなたが拡張子 ".pl"を与えてperlで動くことを期待していると指定すると、拡張機能が関係するwin32の行に沿って考えていることがわかります。しかし、彼らはunix/linuxには関係ありません。これは、実行可能ファイルを実行する必要があることをシェルに伝えるために "shbang行"が必要な理由です。 – Axeman

答えて

7

使用shebang lineとそれはカーネルまたはApacheするように指示use warnings;use strict;を置く必要がありますPerlスクリプトとして解釈する。シェバング

Does the shebang determine the shell which runs the script?

Why should the shebang line always be the first line?

+0

私はこれにも 'use strict;警告を使う; - 早くその習慣を得るのは良いことだ!:) – Sobrique

+1

@Sobriqueありがとう:)投稿編集 – mkHun

+0

それは働いて、ありがとう! – DanielJames

1

について

#!/usr/bin/perl 
use warnings; 
use strict; 

print "hello world"; 

そして、もっとあなたのコードを見ずに、これは単なる推測です(なぜ人々は、我々は彼らを見ないで自分のプログラムをデバッグすることができると思いますか?)あなたのプログラムには正しい種類の引用文字がありますか?

あなたのプログラムは次のようになります。

#!/usr/bin/perl 

use strict; 
use warnings; 
use 5.010; 

say 'Hello World'; 

またはこのような(のPerlの古いバージョンで):

#!/usr/bin/perl 

use strict; 
use warnings; 

print "Hello World\n"; 

私の最初のバージョンは、文字列の周りに一重引用符を使用していますし、私の第二のバージョンを二重引用符を使用します。 「そのようなファイルがありません」というエラーが表示された場合は、外部プログラムを実行するために使用されるバッククォートを使用しているようです。あなたのprint行は次のようになりん:

print `Hello World\n`; # Warning! Wrong kind of quotes! 

更新:いいえ、これは問題ではありません。この場合、perl hello.plでプログラムを実行することはできません。これはシバン線の上での混乱である可能性が非常に高いです。mkHun saysしかし、もう一度、私たちはあなたのコードを見ずに本当にあなたを助けることはできません。