2016-10-06 16 views
6

私はIntelliJ Ideaを使ってperl scriptで作業しようとしています。 IDEAの場合はperl plugin、Windowsの場合はStrawberry Perlをインストールしました(10)。IntelliJ Ideaの中でPerlスクリプトを実行する

シンタックスハイライトおよびその他の機能は動作しますが、これは私がプログラムを実行しようとすると何が起こるかです:

Running the Program

私は、Perlの初心者ですので、私はまだちょうどコマンドを使用していますラインのものとASCIIグラフィック。 IntelliJで私のperlプログラムを実行、テスト、デバッグすることを望んでいましたが、printステートメントはperlが実行されているときにこのダイアログに何も載せません...

私はまだ上記のイメージカーソルがあり、間違ったものを入力すると、想定されているとおりにエラーがスローされます。だから<STDIN>は正しくマップされているようですが、<STDOUT>はありませんか?それとも何か間違っている?私はCMDに実行されている示してコマンドをコピーする場合

は、それが完璧に動作します:

Mancala working

ので、このダイアログで<STDOUT>を取得するのIntelliJを設定する方法はありますか?どんな助けもありがとう。

Test.pl working

たぶん問題は、私は外部ソースからperlのファイルをインポートしていることである、:さて、Chankeyの答え以下、私がテストスクリプトを作った、と1つの作品


IntelliJはそれがスクリプトなのか、それとも何かを認識していませんか?しかし、私が新しいファイルにコードをコピーすると、どちらもうまくいきません。

test.plは、use warnings;の代わりにuse warnings FATAL => 'all';の違いがあります。私はこれをしようとすると、それは私が、数値入力が期待されている文字列を入力するまで動作し、それはそれはプログラムを終了するように沿って、すべての印刷されているべきものの全体の束を出力します。

Some of the output shown now

ここでも、 cmdで出力が正常に動作するので、これはIntelliJの問題です。何か案は?多分@記号が問題を作り出していますか?他に何か?誰かがIDEA for windowsを使用していて、自分のコードでおもしろいと思っているのであれば、githubにあります。

+0

'印刷 "もの" は'右、STDOUTに行くのですか? – Menasheh

+0

printの一般的な構文は 'print FILEHANDLE LIST'です。 FILEHANDLEを省略すると、最後に選択された(selectを参照)出力ハンドルに出力されます。したがって、 'select'を使ってFILEHANDLEを変更しない限り、デフォルトのFILEHANDLE(STDOUT)に出力されます。 –

答えて

1

私にとってうまく動作します。以下の手順のとおりです。

  1. プロジェクトを作成します右Perl5 file
  2. それを保存し、スクリプトを書く
  3. ドロップダウンからScriptを提出し、選択するために、名前を付け]を選択し、プロジェクトをクリックしてNewを選択
  4. 押しCTRL+SHIFT+F10
  5. Enter
  6. を押し、ユーザ入力としていくつかのデータを提供します

出力:

enter image description here

それはまだあなたのために動作しない場合は、おそらくあなたが適切にセットアップあなたのPerlを持っていません。

File->Project Structureにアクセスし、Project SDKにperlを追加してください。あなたのスクリーンショットを1として

enter image description here

私はあなたがperl.exeためabsolute pathを使用していることがわかります。つまり、PATHperlを追加していないことを意味します。それはIntelliJがあなたのスクリプトを実行するためにそれを見つけられない理由のように思われます。

あなたがwiki page of Camelcade pluginを通過するためにそれはまた、問題が解決しない場合

set PATH=C:\Strawberry\perl\bin;%PATH% 

を行います。作成者は、このプラグインの設定方法をステップバイステップで説明しています。追加

+0

Strawberry Perlの代わりにCygwinを使用する方法はありますか? – AbhiNickz

+0

また、perlの絶対パスを使用していますが、Linux上にあるので、Strawberry Perlを使用していないので、質問に正しく答えることはできません。それが明白でないなら、私は窓の上にいる。あなたはどこで '' PATH = C:\ Strawberry \ perl \ bin;%PATH% 'を設定しますか? – Menasheh

+2

@abhinickz intellij?たぶんあなたは別にその質問をするべきでしょうか? – Menasheh

0

試してみてください。

$| = 1; 

...あなたのスクリプトの先頭に。 Perlバッファーstdoutを追加すると、$| = 1;がバッファーにすぐにフラッシュされ、printステートメントの出力がIntelliJデバッグコンソールに表示されます。

も参照してください:

perl $|=1; What is this?

関連する問題