2016-10-06 4 views
6

perl script에서 IntelliJ Idea를 사용하려고합니다. IDEA 용 perl plugin과 Windows 용 Strawberry Perl을 설치했습니다 (10).IntelliJ Idea에서 Perl 스크립트 실행

구문 강조 기능 및 기타 기능이 작동하지만 프로그램 실행하려고하면이 일어나는 것이다 : 나는 펄에서 초보자 해요

Running the Program

을, 그래서 나는 여전히 명령을 사용하고 있습니다 라인 스터프와 ASCII 그래픽. IntelliJ에서 내 perl 프로그램을 실행, 테스트 및 디버깅하기를 바랬지 만, print 문이 perl이 실행될 때이 대화 상자에 아무 것도 넣지 않습니다 ...

위의 이미지에는 여전히 물건을 입력 할 수 있습니다. 커서가 잘못되어 잘못 입력하면 오류가 발생할 수 있습니다. 따라서 <STDIN>은 올바르게 매핑 된 것 같습니다. 그러나 <STDOUT>은 아닙니까? 아니면 뭔가 다른 것이 있습니까? 나는 cmd를 위해 실행 보여줍니다 명령을 복사하는 경우

, 그것은 완벽하게 작동합니다 :

Mancala working

그래서이 대화 상자에서 <STDOUT>를 얻을 수 인 IntelliJ를 구성하는 방법은 무엇입니까? 어떤 도움을 주시면 감사하겠습니다. ,

Test.pl working

어쩌면 문제는 내가 외부 소스에서 펄 파일을 가져올 것입니다 :


지금, Chankey의 대답 다음, 나는 테스트 스크립트를했습니다, 그 하나의 작품 그리고 IntelliJ는 그것이 스크립트 같은 것임을 깨닫지 못합니다. 그러나 새 파일에 코드를 복사하면 작동하지 않습니다.

test.pl의 경우 use warnings; 대신 use warnings FATAL => 'all';이라는 한 가지 차이점이 있습니다. 나는 이것을 시도 할 때, 나는 숫자 입력이 예상되는 문자열을 입력 할 때까지 작동하고, 다음의 전체 무리를 출력 그것이 프로그램 종료로를 따라 모든 인쇄 된해야하는지 : 다시

Some of the output shown now

을, 출력이 cmd에서 제대로 작동하므로 IntelliJ의 문제라고 생각합니다. 어떤 아이디어? 어쩌면 @ 기호가 문제를 만들고 있을까요? 다른 것? 누구든지 Windows 용 IDEA를 사용하고 코드를 가지고 놀고 싶다면 github에 있습니다.

+0

'인쇄 "물건"'오른쪽 STDOUT로 이동 하는가? – Menasheh

+0

print의 일반적인 구문은'print FILEHANDLE LIST'입니다. FILEHANDLE이 생략되면, 마지막으로 선택된 (select를보십시오) 출력 핸들로 인쇄합니다. 따라서'select'를 사용하여 FILEHANDLE을 변경하지 않으면 STDOUT 인 기본 FILEHANDLE로 출력됩니다. –

답변

1

나를 위해 잘 작동합니다.다음 단계는 다음과 같습니다

  1. 그것을 저장, 다음 Perl5 file
  2. 을 선택
  3. 마우스 오른쪽 단추로 프로젝트를 클릭하고 New을 선택 프로젝트를 생성하여 스크립트를 작성 제출하고 드롭 다운
  4. 에서 Script을 선택하는 이름을 지정 사용자 입력이 다음 Enter
  5. ,369을 누를
  6. 눌러 CTRL+SHIFT+F10
  7. 일부 데이터를 제공

출력 :

enter image description here

여전히 아마 제대로 설치 펄을하지 않은 당신을 위해 작동하지 않는 경우.

File->Project Structure으로 이동하여 perl을 Project SDK에 추가하십시오.

enter image description here

는 스크린 샷 당으로 난 당신이 perl.exe에 대한 absolute path를 사용하는 것을 볼 수 있습니다. 즉 에 perl을 추가하지 않았습니다. 이것이 IntelliJ가 스크립트를 실행하지 못하는 이유입니다. 그런 다음 wiki page of Camelcade plugin 통과를 위해 그 또한 문제가 해결되지 않는 경우

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

를 수행합니다. 작성자는이 플러그인을 설치하는 방법에 대한 단계별 지침을 제공합니다. 추가

+0

Strawberry Perl 대신 Cygwin을 사용할 수 있습니까? – AbhiNickz

+0

또한 Perl의 절대 경로를 사용하고 있지만 Linux를 사용하고 있으므로 Strawberry Perl을 사용하지 않는 경우 제대로 질문에 대답 할 수 없습니다. 그게 분명하지 않다면 나는 창문 위에있다. 어디에서 "do PATH = C : \ Strawberry \ perl \ bin; % PATH %'를 할 것입니까? – Menasheh

+2

@abhinickz intellij? 어쩌면 당신은 그 질문을 스스로 따로해야할까요? – Menasheh

0

시도 :

$| = 1; 

... 스크립트의 상단. Perl 버퍼 stdout을 추가하면 $| = 1; 버퍼가 즉시 플러시되고 IntelliJ 디버그 콘솔의 print 문 출력을 표시해야합니다.

은 참조 :

perl $|=1; What is this?

관련 문제