perl에서 이것을 어떻게 해석 해야 하나요
글쓴이: dreamer / 작성시간: 목, 2003/10/16 - 3:08오후
PERL="Unknown" path_userperl=`echo $PATH | sed -e 's/:/ /g'` for perl_path in $path_userperl ; do userperl=$userperl" "$perl_path/perl userperl=$userperl" "$perl_path/Perl done for perl_path in $userperl $ATRIAHOME/bin/Perl $CLEARCASEHOME/bin/Perl /usr/atria/bin/Perl /opt/rational/clearcase/bin/Perl ../bin/Perl ../../../bin/Perl; do if [ -x "$perl_path" ] ; then # Found the name, is it good enough for our task? TEST_INTERP=`$perl_path -e 'require 5; print "Good" if ($] =~ /5\.00[0-3]/);' 2>&1` if [ "$TEST_INTERP" = "Good" ] ; then PERL=$perl_path break fi fi done
install program에서 있는건데,
perl의 버전이 5.0이상인지를 확인 하는 스크립트인데...
Perl 5.6.0에서는 찾아내고 Perl5.8.0에서는 찾지를 못합니다.
무슨 이유가 있나요...
아니면 애초에 다른 문제인가요?
알려주세요
TEST_INTERP=`$perl_path -e 'require 5; print "Good" if ($] =~ /5\.00[0-3]/);' 2>&1`
특히 이부분을 모르겠네요
Forums:
Re: perl에서 이것을 어떻게 해석 해야 하나요
perl 버젼이 5.000 ~ 5.003 (즉 5.0 ~ 5.3 이상이면 굿이란 얘기죠)
근데 왜 5.006(5.6)에서 나온다고 되어있나요?
이상하네요
$perl -e 'print $]'
해보세요
-------------------------------
== warning 대부분 틀린 얘기입니다 warning ===
5.8의 경우는 $]의 값이 5.008입니다.위 스크립트는 5.6이든
5.8의 경우는 $]의 값이 5.008입니다.
위 스크립트는 5.6이든 5.8이든 안되어야 정상인데요.
(5.003까지만 검사하므로)
--
익스펙토 페트로눔
버전이 5.6.0인 perl[code:1]perl -e 'requ
버전이 5.6.0인 perl
를 찍어보면
Good5.006001
이렇게 나요내요
그리고 버전이 5.8.0인 경우는
Good5.008
이렇게 나옵니다.
상화은 이런데 누가 좀더 이론적으로 설명해주시면 감사하겠습니다.
$]에는 현재 실행한 perl의 버전 번호가 들어갑니다.이걸 5\.*
$]에는 현재 실행한 perl의 버전 번호가 들어갑니다.
이걸 5\.*과 비교하면 5.006001 이나 5.008은
매치가 되겠죠. 그러니 good이 출력되는 것이고,
require 5는 perl이 버전 5보다 낮은 버전이면 그냥 종료하도록 합니다(perl 4등). perl4에는 require가
없으니까 아마 그냥 에러 내겠죠.
--
익스펙토 페트로눔
댓글 달기