2014-07-07 7 views
4

저는 Perl에 익숙하지 않아서 질문이 사소한 경우 용서해줍니다.Windows에서 따옴표없이 Perl의 백틱 연산자가 작동하지 않는 이유는 무엇입니까?

직장에서 나는 다른 개발자가 자신의 업무 마감일을 놓칠 때 전자 메일을 보내는 스크립트를 작성하는 임무를 가지고 있습니다. 모든 일이 Windows에서 작동해야하므로 Strawberry Perl을 사용하여 windows 명령 date /T을 사용하여 날짜 확인을 수행했습니다. 나는 역 따옴표 연산자를 사용하여, 외부 명령을 꽤 많이 불리는,하지만이 특별한 경우에는 역 따옴표가 작동하지 않을 것입니다 :

my $date = `date /T`; 

는 출력 :

:

date: invalid date `/T' 

몇 가지 추가 따옴표를 사용하여 고정

my $date = `"date /T"` 

출력 :

Mon 07/07/2014 

제 질문은 : 왜 그런가요?

backticks가있는 다른 외부 호출이 동일하게 작동하는 경우 해당 호출을 사용해야합니다.

+1

따옴표없이 나를 위해 작동합니다. – ooga

+0

따옴표를 제외하면 ("작동하지 않음"외에) 어떻게됩니까? – AKHolland

+0

저는 이것을 스크립트로 실행하고 있습니다. 또한 "작동하지 않음"이라는 출력을 놓쳐서 미안합니다. 나는 그것이 어떻게 든 명백한 것이라고 생각했습니다. 멍청한 실수. – imkort

답변

5

실수로 Cygwin/GnuTools 버전 date을 사용하는 것 같습니다.

Windows 명령 프롬프트에서 date /T은 현재 시간을 제공합니다.
이것은 실행 파일이 아니며 명령입니다.

그러나 Cygwin/GnuTools 환경에서 date /T을 실행하면 date: invalid date '/T'이됩니다. 환경 1)는 Windows date명령2)PATH 환경 변수에서 date실행을 발견하고 대신 실행을 볼 수 없기 때문에
이다.