Amazon Best VPN GoSearch

온웍스 파비콘

perl581delta - 클라우드의 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터를 통해 OnWorks 무료 호스팅 제공업체에서 perl581delta 실행

이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 명령 perl581delta입니다.

프로그램:

이름


perl581delta - perl v5.8.1의 새로운 기능

기술


이 문서에서는 5.8.0 릴리스와 5.8.1 릴리스 간의 차이점에 대해 설명합니다.

5.6.1과 같은 이전 릴리스에서 업그레이드하는 경우 먼저 perl58delta를 읽고,
5.6.0과 5.8.0의 차이점을 설명합니다.

5.6.1에 대해 궁금하시다면 버그 수정 측면에서는 이전 버전과 거의 동일했습니다.
개발 릴리스 5.7.1. 헷갈리시나요? 이 타임라인이 조금이나마 도움이 되기를 바랍니다.
새로운 주요 릴리스, 유지 관리 릴리스, 개발 릴리스입니다.

새로운 유지 관리 개발

5.6.0 2000년 22월 XNUMX일
5.7.0 2000년 02월 XNUMX일
5.6.1 2001년 08월 XNUMX일
5.7.1 2001년 09월 XNUMX일
5.7.2 2001년 13월 XNUMX일
5.7.3 2002년 05월 XNUMX일
5.8.0 2002년 18월 XNUMX일
5.8.1 2003년 25월 XNUMX일

호환되지 않는 변경


해시 무작위화
주로 보안상의 이유로 해시의 "무작위 순서"가 더욱 강화되었습니다.
무작위. 이전에는 해시 요소의 순서가 키 (), 값 ()각() 였다
본질적으로 무작위적이었지만 여전히 반복 가능했습니다. 그러나 이제 순서는 다음과 같이 다양합니다.
Perl의 다양한 실행.

보장 어떤 주문하기 of 전에, 해시 , 그리고 주문은 이미
Perl 5의 수명 동안 여러 번 변경되었습니다. 또한 해시 키의 순서도 변경되었습니다.
삽입 순서는 항상 영향을 미쳤으며, 앞으로도 계속 영향을 미칠 것입니다.

추가된 무작위성은 애플리케이션에 영향을 미칠 수 있습니다.

가능한 시나리오 중 하나는 애플리케이션 출력에 해시 데이터가 포함된 경우입니다.
예를 들어, Data::Dumper 모듈을 사용하여 데이터를 다른 파일에 덤프한 경우
그런 다음 데이터가 변경되었는지 확인하기 위해 파일을 비교합니다. 이제 거짓이 표시됩니다.
해시가 덤프되는 순서가 달라지기 때문에 긍정적입니다. 일반적으로 해결책은 다음과 같습니다.
키(또는 값)를 정렬합니다. 특히 Data::Dumper가 "Sortkeys"를 사용하는 경우
옵션. 특정 순서가 정말 중요한 경우 연결된 해시를 사용하세요. 예를 들어
기본적으로 해시 요소의 순서를 유지하는 Tie::IxHash 모듈
추가.

더 미묘한 문제는 "지구 파괴"라는 명령에 의존하는 것입니다.
실행이 끝날 때 발생합니다. Perl은 사용자 데이터를 포함한 모든 데이터 구조를 파괴합니다.
소멸자(DESTROY 서브루틴)가 특정 순서를 가정한 경우
전 지구적 파괴가 일어나면 앞으로 문제가 생길 수도 있습니다. 예를 들어, 하나의 소멸자에서
객체의 경우 다른 클래스의 객체가 여전히 사용 가능하다고 가정할 수 없습니다.
이에 대한 참조를 유지합니다. 환경 변수 PERL_DESTRUCT_LEVEL이 다음과 같이 설정된 경우
0이 아닌 값 또는 Perl이 생성된 스레드를 종료하는 경우 일반 스레드도 파괴합니다.
더 이상 사용되지 않는 참조 및 심볼 테이블. 클래스 메서드를 호출할 수 없습니다.
또는 그런 방식으로 수집된 클래스의 일반적인 함수입니다.

해시 난수화는 특정 항목에 대한 숨겨진 가정을 확실히 드러낼 것입니다.
해시 요소의 순서 및 완전한 버그: Perl 코어에서 몇 가지 버그가 드러났습니다.
핵심 모듈.

런타임에 해시 무작위화를 비활성화하려면 환경 변수 PERL_HASH_SEED를 설정하세요.
Perl을 실행하기 전에 0(영)으로 설정합니다(자세한 내용은 perlrun의 "PERL_HASH_SEED" 참조).
컴파일 시간에 기능을 완전히 비활성화하려면 "-DNO_HASH_SEED"로 컴파일하세요(참조).
INSTALL).

이것의 원래 근거에 대해서는 perlsec의 "알고리즘 복잡도 공격"을 참조하세요.
변경합니다.

UTF-8 On 파일 핸들 아니 더 길게 활성화 By 장소
Perl 5.8.0에서는 표준 파일 핸들을 포함한 모든 파일 핸들이 암묵적으로 설정되었습니다.
로케일 설정에서 UTF-8을 사용하도록 지정된 경우 유니코드 UTF-8로 표시됩니다. 이 기능은
너무 많은 문제를 일으켰기 때문에 해당 기능이 꺼지고 재설계되었습니다. "핵심"을 참조하세요.
개선 사항”.

단일 숫자 V-스트링 are 아니 이상 V-스트링 전에 "=>"
버전 문자열 또는 v-문자열(perldata의 "버전 문자열" 참조) 기능이 도입되었습니다.
Perl 5.6.0은 특히 사용자가 원하지 않을 때 혼란의 원인이 되었습니다.
그것을 사용했지만 Perl은 더 잘 알고 있다고 생각했습니다. 특히 문제가 된 것은 다음과 같은 기능이었습니다.
"=>" 앞에 버전 문자열(숫자 뒤에 "v"가 붙음)이 다음과 같이 해석되었습니다.
문자열 리터럴 대신 v-string을 사용합니다. 즉,

%h = ( v65 => 42 );

Perl 5.6.0 이후로 의미됨

%h = ( 'A' => 42 );

(적어도 ASCII 자손 플랫폼에서는) Perl 5.8.1은 보다 자연스러운 것을 복원합니다.
해석

%h = ( 'v65' => 42 );

v65.66 및 65.66.67과 같은 다중 숫자 v-문자열은 Perl에서도 여전히 v-문자열로 남아 있습니다.
5.8.

(윈32) The -C 스위치 있다 있었어. 용도 변경
-C 스위치가 호환되지 않는 방식으로 변경되었습니다. 이 스위치의 이전 의미 체계는
Win32에서만 의미가 있었고 8.x 릴리스의 "utf5.6 사용" 세계에서만 의미가 있었고 의미가 없었습니다.
5.8.0의 유니코드 구현에 대한 의미입니다. 이 스위치는 사용할 수 없었기 때문에
누구에 의해서든 용도가 변경되었습니다. 이 스위치가 5.6.x에서 활성화한 동작은
향후 릴리스에서는 투명하고 데이터 기반 방식으로 릴리스가 지원될 수 있습니다.

이 스위치의 새로운 기능에 대해서는 "UTF-8은 더 이상 UTF-8 로케일에서 기본값이 아닙니다"를 참조하세요.
perlrun의 "-C".

(윈32) The /d 스위치 Of cmd.exe를
Perl 5.8.1은 cmd.exe 셸을 내부적으로 실행할 때 /d 스위치를 사용합니다. 체계(),
백틱과 외부 프로그램에 파이프를 열 때. 추가 스위치는 다음을 비활성화합니다.
일반적으로 바람직하지 않은 것으로 간주되는 레지스트리에서 AutoRun 명령 실행
외부 프로그램을 실행할 때. 이전 프로그램과의 호환성을 유지하려면
동작을 원하시면 환경에서 PERL5SHELL을 "cmd /x/c"로 설정하세요.

핵심 개선


UTF-8 아니 이상 디폴트 값 아래에 UTF-8 지방의
Perl 5.8.0에서는 많은 유니코드 기능이 도입되었습니다. 그중 하나는 다음과 같은 것으로 밝혀졌습니다.
이점보다 귀찮음: 파일 핸들의 자동(그리고 조용한) "UTF-8화"
사용자의 로케일 설정이 UTF-8을 사용하도록 지정된 경우 표준 파일 핸들을 포함합니다.

예를 들어, 로케일이 "en_US.UTF-8"인 경우 STDIN 및 STDOUT은 다음과 같습니다.
자동으로 "UTF-8", 즉 암묵적인 binmode(..., ":utf8")가 설정되었습니다.
말하자면, 인쇄하려고 시도하는 것을 의미합니다. chr(0xff)는 0xc3 0xbf 바이트를 인쇄했습니다. 거의
Perl 5.8.0의 이 기능을 알고 있지 않았다면 당신이 생각했던 것과 같은 문제입니다.
대다수의 사람들이 그렇지 않았다는 점: 예를 들어 RedHat 릴리스 8 및 9에서는
디폴트 값 로케일 설정은 UTF-8이므로 모든 RedHat 사용자는 UTF-8 파일 핸들을 얻습니다.
원하든 원하지 않든. Perl 5.8.0의 유니코드 구현으로 인해 고통이 더욱 심해졌습니다.
(아직도) 특히 s/// 및 tr// 사용과 관련된 심각한 버그가 있습니다./. (버그가
5.8.1에서 수정되었습니다)

따라서 기능을 후퇴시키고 암묵적인 침묵에서 변경하기로 결정했습니다.
명시적인 의식적 옵션으로 기본 설정됩니다. 새로운 Perl 명령줄 옵션 "-C"와 해당
이제 상대 환경 변수 PERL_UNICODE를 사용하여 Perl과
유니코드는 I/O 및 명령줄 인수와 같은 인터페이스에서 상호 작용합니다.
자세한 내용은 perlrun에서 "-C"를 입력하고, perlrun에서 "PERL_UNICODE"를 입력하세요.

위험한 신호 다시 가능
Perl 5.8.0에서는 소위 "안전 신호"가 도입되었습니다. 즉, Perl에서는
더 이상 신호를 즉시 처리하지 않고 대신 "opcode 사이"에서 안전하게 수행할 수 있을 때 처리합니다.
그래서. 더 빠른 즉각적인 처리가 Perl의 내부 상태를 쉽게 손상시킬 수 있습니다.
신비한 충돌이 발생함.

하지만 새로운 안전 모델에도 문제가 있습니다. 이제 기본 단위인 opcode가
Perl 실행은 중단되지 않고 대신 완료될 때까지 실행됩니다.
지금은 시간이 오래 걸릴 수 있는 작업이 실제로는 시간이 오래 걸립니다. 예를 들어, 특정
네트워크 작업에는 자체 차단 및 시간 초과 메커니즘이 있으며 다음을 수행할 수 있습니다.
즉시 방해해 주면 좋겠다.

따라서 perl 5.8.1은 5.8.0 이전(실제로는 5.7.3 이전) 버전을 복원하기 위한 "백도어"를 도입했습니다.
신호 동작입니다. PERL_SIGNALS 환경 변수를 "unsafe"로 설정하면 됩니다.
즉각적이고 안전하지 않은 신호 처리 동작이 반환됩니다. perlrun의 "PERL_SIGNALS"를 참조하세요.
그리고 perlipc의 "지연된 신호(안전 신호)".

전혀 관련 없는 소식이지만, 이제 POSIX::SigAction에서 안전한 신호를 사용할 수 있습니다. 다음을 참조하세요.
POSIX의 "POSIX::SigAction"

묶여 배열 부정 배열 색인
이전에는 "FETCH", "STORE", "EXISTS" 및 "DELETE" 메서드에 전달된 인덱스가 다음과 같이 연결되었습니다.
배열 클래스는 항상 음수가 아니었습니다. 실제 인수가 음수이면 Perl은
FETCHSIZE를 암시적으로 호출하고 결과를 인덱스에 추가한 다음 결과를 인덱스에 전달합니다.
연결된 배열 메서드. 이 동작은 이제 선택 사항입니다. 연결된 배열 클래스에
$NEGATIVE_INDICES라는 패키지 변수는 true 값, 음수 값으로 설정됩니다.
"FETCH", "STORE", "EXISTS", "DELETE"에 변경되지 않고 전달됩니다.

지방의 ${$x}
구문

현지 ${$x}
로컬 @{$x}
로컬 %{$x}

이제 $x가 유효한 변수 이름이므로 변수를 지역화합니다.

유니 코드 캐릭터 데이터베이스 4.0.0
Perl 5.8에 포함된 유니코드 문자 데이터베이스 사본이 4.0.0으로 업데이트되었습니다.
3.2.0부터. 이는 예를 들어 유니코드 문자 속성이 다음과 같다는 것을 의미합니다.
유니코드 4.0.0.

천칭 경고
새로운 기능 중 하나가 더 이상 지원되지 않습니다. Perl 5.8.0에서는 몇 가지 지원 중단 경고를 추가하는 것을 잊었습니다.
이러한 경고가 추가되었습니다. 마지막으로, 곧 삭제될 기능의 알림을 알려드립니다.

(알림) 의사 해시 are 사용되지 않는 (정말)

가상 해시는 Perl 5.8.0에서 더 이상 사용되지 않으며 Perl 5.10.0에서 제거될 예정입니다.
자세한 내용은 perl58delta를 참조하세요. 의사 해시에 액세스하려고 할 때마다 경고가 발생합니다.
"의사 해시는 더 이상 사용되지 않습니다." 의사 해시를 계속 사용하고 싶지만
사용 중단 경고를 보지 않으려면 다음을 사용하세요.

경고 없음 '더 이상 사용되지 않음'

또는 필드 프래그마를 계속 사용할 수 있지만 데이터 구조를 기대하지 마십시오.
더 이상 가짜 해시가 아닙니다.

(알림) 5.005 스타일 스레드 are 사용되지 않는 (정말)

5.005 스타일 스레드(use Thread;로 활성화됨)는 Perl 5.8.0에서 더 이상 사용되지 않으며
Perl 5.8 이후 제거되었습니다. 자세한 내용은 perl58delta를 참조하세요. 각 5.005 스타일 스레드 생성
"5.005 스레드는 더 이상 지원되지 않습니다"라는 경고가 발생합니다. 계속 진행하려면
5.005 스레드를 사용하지만 사용 중단 경고를 보지 않으려면 다음을 사용하세요.

경고 없음 '더 이상 사용되지 않음'

(알림) The $* 변수 is 사용되지 않는 (정말)

다중 줄 일치를 제어하는 ​​$* 변수는 더 이상 사용되지 않으며 제거됩니다.
5.8 이후. 해당 변수는 오랫동안 더 이상 사용되지 않으며 사용 중단 경고가 표시됩니다.
"$*의 사용이 더 이상 사용되지 않습니다"라는 메시지가 표시되면 이제 해당 변수가 최종적으로 제거됩니다.
패턴 매칭에서 "/s" 및 "/m" 수정자로 기능이 대체되었습니다.
$*-변수를 계속 사용하고 싶지만 사용 중단 경고를 보고 싶지 않은 경우
용도:

경고 없음 '더 이상 사용되지 않음'

그 외 개선
void 컨텍스트의 "map"은 더 이상 비용이 많이 들지 않습니다. "map"은 이제 컨텍스트를 인식하며
void 컨텍스트에서 호출되면 목록을 구성합니다.

소켓이 서버에 인쇄하는 동안 닫히면 이제 클라이언트는 SIGPIPE를 받게 됩니다.
이 새로운 기능은 계획되지 않았지만 PerlIO 변경 사항에서 자연스럽게 제외되었으며
우연한 특징으로 간주될 수 있다.

PerlIO::get_layers(FH)는 파일 핸들에서 활성화된 PerlIO 계층의 이름을 반환합니다.

PerlIO::via 레이어는 이제 레이어가 다음과 같은지 여부를 나타내는 선택적 UTF8 메서드를 가질 수 있습니다.
스트림을 "auto-:utf8"로 지정하고 싶습니다.

utf8::is_utf8() 스칼라가 인코딩되었는지 테스트하는 빠른 방법으로 추가되었습니다.
내부적으로 UTF-8(유니코드)로 작성됩니다.

모듈 그리고 프라그 마타


업데이트 모듈 Audiencegain과 프라그 마타
Perl 5.8.0 이후로 다음 모듈 및 pragmata가 업데이트되었습니다.

기지
B::바이트코드
예전보다 훨씬 좋아졌습니다. 아직 완벽과는 거리가 멀지만, 어쩌면 가치가 있을 수도 있습니다.
시험.

B::간결
B::데파스
기준
선택 기능인 ":hireswallclock"을 사용하면 이제 고해상도 벽시계를 사용할 수 있습니다.
시간(Time::HiRes 사용).

바이트로더
B::Bytecode를 참조하세요.

바이트
이제 bytes::substr이 있습니다.

CGI
문자 이름
이제 사용자 정의 캐릭터 이름 별칭을 가질 수 있습니다.

CPAN
이제 CPAN.pm 모듈에 대한 간단한 명령줄 프런트엔드가 있습니다. cpan.

데이터 :: 덤퍼
새로운 옵션인 Pair를 사용하면 해시 키와 값 사이의 구분 기호를 선택할 수 있습니다.

DB_파일
개발::PPPort
다이제스트 :: MD5
암호로 바꿔 쓰다
인코딩 프래그마 기능(tr/// 및 DATA)에 대한 중요한 업데이트
파일 핸들, 형식).

파일 핸들이 인코딩을 갖도록 표시된 경우 매핑할 수 없는 문자는 다음과 같습니다.
입력 중에 이미 감지되었으므로 나중에(손상된 데이터가 사용될 때) 감지되지 않습니다.

ISO 8859-6 변환표가 수정되었습니다(0x30..0x39가 잘못 매핑됨)
U+0660..U+0669 대신 U+0030..U+0039로 변환). GSM 03.38 변환은 수행되지 않았습니다.
이스케이프 시퀀스를 올바르게 처리합니다. UTF-7 인코딩이 추가되었습니다(Encode
(Unicode::String을 포함한 완전한 기능)

분야
libnet
수학 :: BigInt
Perl v1.60에 포함된 버전인 v5.8.0 이후로 많은 버그가 수정되었습니다.
특히 주목할 만한 것은 Calc의 버그로 인해 일부에서 div 및 mod가 실패하는 것입니다.
큰 값과 잘못된 입력을 처리하는 방법에 대한 수정 사항.

몇 가지 새로운 기능이 추가되었습니다. 루트() 이제 메서드에 매개변수를 전달할 수 있습니다.
구성() 런타임에 일부 설정을 변경하고 이제 트랩이 가능합니다.
NaN과 무한대의 생성.

평소처럼 몇 가지 최적화가 이루어졌고 전반적인 계산 속도가 약간 더 빨라졌습니다.
어떤 경우에는 실제로 훨씬 더 빠릅니다. 특히 다음과 같은 대체 라이브러리의 경우
Math::BigInt::GMP는 이 기능의 이점을 제공합니다. 또한, 꽤 투박한 루틴 중 상당수가
처럼 fsqrt() 그리고 팔다() 지금은 훨씬 더 빨라졌습니다.

MIME :: Base64
다음
다이아몬드 상속이 이제 가능합니다.

넷::핑
PerlIO::스칼라
문자열이 아닌 스칼라(특수 변수, Perlvar 참조)에서 읽는 것이 이제 가능합니다.

포드레이터
포드::라텍스
포드파서
파드::펄독
완전히 다시 작성했습니다. 부작용으로 루트로 실행할 때 더 이상 시작되지 않는 문제가 해결되었습니다.

스칼라 :: Util
새로운 유틸리티: refaddr, isvstring, Looks_like_number, set_prototype.

저장 가능
이제 코드 참조를 저장할 수 있습니다(B::Deparse를 통해, 완벽하지는 않음).

엄격한
이전 버전의 strict pragma는 암시적으로 전달된 매개변수를 확인하지 않았습니다.
"import"(사용) 및 "unimport"(불가져오기) 루틴으로 인해 다음과 같은 잘못된 관용구가 발생했습니다.
으로 :

엄격한 qw(@ISA);를 사용하세요.
@ISA = qw(푸);

그러나 이것은 (아마도) 엄격한 refs, vars 및
구독이 시행되고 있었고 (그리고 @ISA가 어떻게든 "선언"되었습니다). 하지만 엄격한 참조는
vars 및 subs는 지원 이런 거짓 관용어를 사용할 때는 강제로 적용됩니다.

Perl 5.8.1부터 위의 결제 게이트웨이, 오류가 발생할 수 있습니다. 이로 인해
경고나 오류 없이 정상적으로 실행되던 프로그램이 실패합니다.
5.8.1에서 실행될 때 발생합니다. 이는 다음과 같은 이유로 발생합니다.

엄격한 qw(@ISA);를 사용하세요.

이제 다음 오류로 실패합니다.

알 수 없는 'strict' 태그 '@ISA'

이 문제를 해결하려면 다음 코드를 올바른 관용구로 바꾸면 됩니다.

엄격한 사용;
vars qw(@ISA);를 사용합니다.
@ISA = qw(푸);

용어::ANSIcolor
테스트 :: 하네스
이제 테스트 스크립트의 추가 출력이나 누락된 출력을 훨씬 더 까다롭게 처리합니다.

테스트::더 보기
테스트 :: 단순
텍스트::균형
시간::고해상도
사용 나노슬립(), 가능한 경우 알람과 함께 1초 미만의 수면 시간을 혼합할 수 있습니다.

스레드
예를 들어 여러 가지 수정 사항 어울리다() 문제와 메모리 누수가 발생합니다. 일부 플랫폼에서는
(Linux와 같이) glibc를 사용하는 경우 하나의 스레드의 최소 메모리 공간이 다음과 같습니다.
수백 킬로바이트 감소.

스레드::공유
많은 메모리 누수가 해결되었습니다.

유니코드::소트
유니코드::정규화
Win32::GetFolderPath
Win32::GetOS 버전
이제 추가 정보를 반환합니다.

유틸리티 변경


"h2xs" 유틸리티는 이제 더욱 현대적인 레이아웃을 생성합니다. Foo-Bar/lib/Foo/Bar.pm 대신
푸/바/바.pm. 또한 보일러플레이트 테스트는 이제 다음과 같이 불립니다. t/푸-바.t 대신 t/1.t.

Perl 디버거(lib/perl5db.pl)은 이제 광범위하게 문서화되었으며 버그가 발견되었습니다.
문서화하는 동안 문제가 해결되었습니다.

"perldoc"는 더욱 강력하고 기능이 풍부해지도록 처음부터 다시 작성되었습니다.

"perlcc -B"는 이제 적어도 좀 더 잘 작동하지만, "perlcc -c"는 좀 더 손상되었습니다.
(Perl 컴파일러 제품군은 전반적으로 계속해서 실험 중입니다.)

신제품 문서


perl573delta가 추가되었습니다(이제는 거의 사용되지 않음)
개발 릴리스 5.7.2 및 5.7.3.

perl58delta가 추가되었습니다. 이는 5.8.0의 perldelta로, 차이점을 자세히 설명합니다.
5.6.0과 5.8.0 사이.

perlartistic이 추가되었습니다: pod 형식의 Artistic License로 더 쉽게 사용할 수 있습니다.
모듈에서 이를 참조하도록 합니다.

perlcheat이 추가되었습니다. Perl 치트 시트입니다.

perlgpl이 추가되었습니다. 이는 pod 형식의 GNU General Public License입니다.
모듈에서 참조하기가 더 쉽습니다.

perlmacosx는 Mac OS X에서 Perl을 설치하고 사용하는 방법에 대해 알려주기 위해 추가되었습니다.

perlos400은 OS/400 PASE에서 Perl을 설치하고 사용하는 방법에 대해 알려주기 위해 추가되었습니다.

perlreref가 추가되었습니다. 이는 정규 표현식에 대한 빠른 참조입니다.

설치 그리고 구성 개선 내용


Unix 표준 Perl 위치, /usr/빈/펄, 더 이상 기본적으로 덮어쓰지 않습니다.
존재합니다. 이 변경은 많은 Unix 공급업체가 이미 제공하고 있기 때문에 매우 신중했습니다.
/usr/빈/펄그러나 동시에 많은 시스템 유틸리티가 해당 버전에 의존할 수 있습니다.
Perl의 경우 덮어쓰지 않는 것이 좋습니다.

이제 사이트 및 공급업체 매뉴얼 및 HTML 페이지에 대한 설치 디렉토리를 지정할 수 있습니다.
사이트 및 공급업체 스크립트. 참조 INSTALL.

이제 Perl 설치를 위한 대상 디렉토리를 지정하여 지정할 수 있습니다.
"make install"에 대한 DESTDIR 변수입니다. (이 기능은 다음과 약간 다릅니다.
이전 "Configure -Dinstallprefix=..."를 참조하세요. INSTALL.

gcc 버전 3.x에서는 Perl에서 많은 소음을 발생시키는 새로운 경고가 도입되었습니다.
컴파일: "gcc -Ialreadyknowndirectory (경고: 검색 순서 변경)". 이 경고는
이제 Configure가 컴파일 전에 이런 디렉토리를 제거함으로써 이런 문제가 발생하지 않습니다.

이제 Configure 플래그를 사용하여 Perl 코어 모듈의 하위 집합을 빌드할 수 있습니다.
"-Dnoextensions=..." 및 "-Donlyextensions=..."를 참조하세요. INSTALL.

플랫폼별 향상
Cygwin에서 Perl을 이제 스레드로 빌드할 수 있습니다("Configure -Duseithreads"). 이 기능은 다음과 함께 작동합니다.
Cygwin 1.3.22와 Cygwin 1.5.3 모두.

최신 FreeBSD 릴리스에서는 Perl 5.8.0 컴파일이 사용하려고 시도했기 때문에 실패했습니다. malloc.h,
FreeBSD에서는 이 파일이 더미 파일일 뿐이고, 사용하려고 시도하는 것조차 치명적인 오류입니다. 지금은 malloc.h
사용되지 않습니다.

Perl은 이제 Hitachi HI-UXMPP에서도 빌드되는 것으로 알려져 있습니다.

Perl은 이제 LynxOS에서 다시 빌드되는 것으로 알려져 있습니다.

Mac OS X는 이제 설치 디렉토리 이름에 Perl 버전 번호가 포함되어 설치됩니다.
사용자가 컴파일한 Perl의 업그레이드를 보다 쉽게 ​​하기 위해, 그리고 일반적인 설치 디렉토리를 위해
더 표준적입니다. 즉, 기본 설치가 더 이상 Apple-
Perl을 제공했습니다. 반면, "Configure -Dprefix="를 사용하면/ usr"이제 정말로 할 수 있습니다
Apple에서 제공하는 Perl을 교체합니다(부디 be 주의).

Mac OS X는 이제 Perl을 기본적으로 정적으로 빌드합니다. 이 변경은 주로 더 빠른 속도를 위해 이루어졌습니다.
시작 시간. Apple에서 제공하는 Perl은 여전히 ​​동적으로 연결되고 공유되며
"Configure -Duseshrplib"를 사용하여 자신의 Perl 빌드에 대한 공유 기능을 활성화할 수 있습니다.

Perl은 IBM의 OS/400 PASE 환경으로 이식되었습니다. Perl을 빌드하는 가장 좋은 방법은
PASE는 AIX 호스트를 크로스 컴파일 환경으로 사용합니다. README.os400을 참조하세요.

또 다른 교차 컴파일 옵션이 추가되었습니다. 이제 Perl은 OpenZaurus를 기반으로 빌드됩니다.
Sharp Zaurus PDA용 Mandrake + Embedix 기반 Linux 배포판입니다.
Cross/README 파일.

gcc 64을 사용하면 Tru3에서 최적화가 중단됩니다. toke.c 거대하기 때문에 "-O2"로
기본 "-O3"을 사용하여 메모리를 사용합니다.

Tru64는 이제 새로운 Berkeley DB로 Perl을 빌드할 수 있습니다.

WinCE에서 Perl을 빌드하는 기능이 크게 향상되었습니다. README.ce 그리고 README.perlce.

선택된 곤충 수정


폐쇄, 평가 그리고 어휘
익명 하위, 어휘 및 클로저 영역에서 많은 수정이 이루어졌습니다.
이는 Perl이 이제 더 "정확"해졌다는 것을 의미하며 일부 기존 코드가
잘못된 동작에 의존하는 중단이 발생합니다. 실제로는 다음과 같은 경우가 아니면 발생하지 않습니다.
귀하의 코드에는 익명의 sub, eval, lexical이 매우 복잡하게 중첩되어 있습니다.

일반적인 고정 된
입력 파일 핸들이 ":utf8"로 표시되고 Perl이 불법적인 UTF-8을 수신하는 경우
" ", 경고가 활성화된 경우 경고가 즉시 표시됩니다.
Perl이 나중에 깨진 데이터에 대해 불만을 품는 것에 대해. (":encoding(utf8)" 레이어)
(또한 같은 방식으로 작동합니다.)

binmode(SOCKET, ":utf8")은 출력 측이 아닌 입력 측에서만 작동했습니다.
소켓. 이제 양방향으로 작동합니다.

스레드 Perls의 경우 다음과 같은 특정 시스템 데이터베이스 기능이 있습니다. getpwent() 그리고 겟그렌트() 지금
실패하는 대신 결과 버퍼를 동적으로 늘립니다. 즉,
많은 사용자와 그룹이 더 이상 부분적인 결과만 반환하여 함수가 실패하지 않습니다.

Perl 5.8.0은 실수로 사용자가 자신의 기능을 정의하는 기능을 망가뜨렸습니다.
대문자<->소문자 유니코드 매핑(Camel에서 광고한 대로). 이 기능은
수정되었으며 문서화도 더 잘 되었습니다.

5.8.0에서는

$some_unicode .= ;

제대로 작동하지 않고 데이터가 손상되었습니다. 이제 이 문제가 해결되었습니다.

FETCH 등과 같은 연결된 메서드는 이제 연결된 값에 안전하게 액세스할 수 있습니다. 즉,
FETCH 등에 대한 재귀 호출. 단, 재귀를 끊는 것을 잊지 마세요.

Perl은 시작할 때 SIGFPE 신호를 차단합니다. Perl이 이에 대해 할 수 있는 일이 많지 않기 때문입니다.
이전에는 Perl 내에서 실행되는 프로그램에도 이 차단이 적용되었습니다. 이제
Perl은 실행하기 전에 원래 SIGFPE 처리 루틴을 복원합니다.
외부 프로그램.

Perl 스크립트의 줄 번호는 이제 65536 또는 2**16보다 클 수 있습니다. (Perl 스크립트에는
항상 그보다 더 크게 할 수 있었지만 보고된 오류에 대한 줄 번호는 다음과 같습니다.
그리고 경고가 "감싸여 있습니다".) 일반적으로 그렇게 큰 스크립트는 필요성을 나타냅니다.
코드를 조금 다시 생각해 보세요. 예를 들어 생성된 결과와 같은 Perl 스크립트가 존재합니다.
코드. 이제 줄 번호는 4294967296, 즉 2**32까지 가능합니다.

플랫폼별 고정 된
Linux

· $0을 설정하면 다시 작동합니다(Perl이 할 수 없는 특정 제한 사항이 있음: 참조).
(perlvar에서는 "$0")

HP-UX

· 이제 $0을 설정할 수 있습니다.

VMS

· 구성은 이제 "poll()"의 존재 여부를 테스트하고 IO::Poll은 이제 다음을 사용합니다.
감지된 경우 공급업체에서 제공하는 기능입니다.

· Perl 이미지가 설치된 경우 Perl 시작 시 드물게 액세스 위반이 발생할 수 있습니다.
권한이 있거나 하위 시스템 속성이 설정된 식별자가 있는 경우
프로세스의 권한 목록. 이러한 상황 중 하나가 오염 코드를 트리거했습니다.
포인터 버그가 있었습니다. 잘못된 포인터 연산이 수정되었습니다.

· %ENV 해시의 값(키 아님) 길이 제한이 255바이트에서 증가했습니다.
최대 32640바이트(PERL_ENV_TABLES 설정이 기본 사용을 재정의하는 경우 제외)
%ENV에 대한 논리적 이름). 외부에서 이러한 긴 값에 액세스해야 하는 경우
Perl은 검색 목록 논리 이름을 사용하여 구현된다는 점을 알아 두십시오.
각 255바이트 조각(최대 128개)이 요소인 조각 단위의 값
검색 목록입니다. Perl 내에서 %ENV에서 조회를 수행할 때 요소가 결합됩니다.
단일 값으로 변환합니다. 개별 요소에 액세스할 수 있는 기존 VMS 특정 기능
$ENV{'foo;N'} 구문을 통한 검색 목록 논리적 이름(여기서 N은 검색 목록입니다)
지수)는 손상되지 않았습니다.

· 파이핑 구현은 이제 상호 작용에 대해 글로벌 DCL 기호가 아닌 로컬 DCL 기호를 사용합니다.
프로세스 커뮤니케이션.

· File::Find는 이름이 같은 상대 디렉토리로 이동할 때 혼동될 수 있습니다.
논리적 이름과 충돌했습니다. 이 문제는 디렉터리를 추가하여 해결되었습니다.
구문을 상대 경로 이름으로 변환하여 논리적 이름 변환을 방해합니다.

Win32

· 메모리 누수 포크() 에뮬레이션이 수정되었습니다.

· 반환 값 ioctl() 내장 함수가 5.8.0에서 실수로 손상되었습니다.
이것은 수정되었습니다.

· 차단 작업 중 Perl이 실행하는 내부 메시지 루프는 때때로
Perl 외부의 메시지를 방해했습니다. 이로 인해 종종 차단이 발생했습니다.
Perl이 실행 중일 때 작업이 조기에 종료되거나 잘못된 결과가 반환되는 경우
Windows 메시지를 생성할 수 있는 환경에서 실행 중입니다.
수정되었습니다.

· 파이프와 소켓은 이제 자동으로 이진 모드가 됩니다.

· 4인수 형식 고르다() $!(errno)가 제대로 보존되지 않았습니다.
기본 호출에 오류가 있었습니다. 이제 이 문제가 해결되었습니다.

· "CR CR LF" 문제가 수정되었으며 binmode(FH, ":crlf")는 이제 효과적으로
무작동.

신제품 or 변경 진단


관련된 모든 경고 팩() 그리고 풀다() 더욱 유익하고 일관성 있는 정보가 제공되었습니다.

변경 "A 퇴장 한 동안 %d 스레드 했다 달리기"
이전 버전

%d개의 다른 스레드가 실행 중일 때 스레드가 종료되었습니다.

"다른" 내용에는 경고를 한 스레드도 포함되기 때문에 오해의 소지가 있었습니다.

제거됨 "시도 선명한 a 한정된 해시시"
제한된 해시를 지우는 것은 불법이 아니므로 경고가 제거되었습니다.

신제품 "불법적인 선언 of 익명 서브루틴
"sub"에 대한 코드 블록을 지정해야 합니다.

변경 "유효하지 않은 범위 "%에스" in 음역 연산자"
이전 버전

음역 연산자의 [] 범위 "%s"가 잘못되었습니다.

tr//에 "[] 범위"가 없기 때문에 단순히 틀렸습니다./.

신제품 "없어진 제어 이륜 전차 name in \기음"
자기 설명.

신제품 "줄바꿈 in 왼쪽 정렬 을 통한 %에스"
패딩 공백은 줄바꿈 문자 뒤에 나타나는데, 이는 아마도 당신이 가지고 있었던 것이 아닐 것입니다.
마음.

신제품 "가능한 상위 문제 on 비트 단위의 %c 연산자"
당신이 이렇게 생각한다면

$x & $y == 0

$x와 $y의 비트 AND 결과가 0인지 테스트하는 경우 이 경고가 마음에 들 것입니다.

신제품 "가짜 해시 are 더 이상 사용되지 않음
이 경고는 5.8.0에 이미 나와 있어야 합니다.

신제품 "읽다() on %s 파일 핸들 %에스"
당신은 할 수 읽다() (또는 시스템 읽기()) 닫히거나 열리지 않은 파일 핸들에서.

신제품 "5.005 스레드 are 더 이상 사용되지 않음
이 경고는 5.8.0에 이미 나와 있어야 합니다.

신제품 "묶여 변수 해방 된 동안 여전히 in 사용"
살아있는 묶인 변수의 플러그를 무언가가 뽑았고, Perl은 이를 풀어서 안전하게 플레이합니다.

신제품 "%s님께: 불법 매핑 '%에스'"
불법적인 사용자 정의 유니코드 대소문자 매핑이 지정되었습니다.

신제품 "사용 of 해방 된 가치 in 반복"
반복되는 값이 무언가에 의해 수정되었습니다. 좋지 않습니다.

변경 내부


이 뉴스는 XS 코드를 작성하거나 해킹에 대해 알고 싶어하는 경우에만 중요합니다.
Perl 내부(Devel::Peek 또는 "B::" 모듈 사용 가능) 또는 Perl 실행을 좋아합니다.
"-D" 옵션을 사용합니다.

perlembed의 임베딩 예시는 최신이고 일관성이 있는 것으로 검토되었습니다.
예를 들어, 올바른 사용 PERL_SYS_INIT3() 그리고 PERL_SYS_TERM().

패드 코드(어휘 변수를 담당하는 코드)의 광범위한 재작업이 이루어졌습니다.
데이브 미첼이 지휘함.

존 피콕이 V-스트링에 대해 광범위하게 연구했습니다.

UTF-8 길이 및 위치 캐시: Unicode(UTF-8) 스칼라 처리 속도를 높이기 위해
캐시가 도입되었습니다. 확장 프로그램이 공식 API를 우회할 경우 잠재적인 문제가 발생할 수 있습니다.
그리고 SV의 PV를 직접 수정합니다. UTF-8 캐시가 제대로 지워지지 않습니다.

Perl 5.8.0에서 폐기된 API(sv_2pv, sv_catpvn, sv_catsv, sv_setsv 등)는 다시
사용할 수 있습니다.

cxinc 및 regatom과 같은 특정 Perl 코어 C API는 더 이상 코드 작성에 사용할 수 없습니다.
Perl 코어 확장의 Perl 코어 외부. 이는 의도적인 것입니다. 그들은 절대
더 짧은 이름으로도 사용할 수 있어야 하며, 귀하의 애플리케이션이 이에 의존하는 경우,
당신은 (부끄러워해야 하고) perl5-porters에 연락하여 적절한 API가 무엇인지 논의해야 합니다.

"Perl_list"와 같은 특정 Perl 코어 C API는 더 이상 "Perl_" 없이 사용할 수 없습니다.
접두사. XS 모듈이 일부 함수를 찾을 수 없어 작동을 멈추는 경우
간단한 수정 방법은 함수와 스레드 컨텍스트에 "Perl_" 접두사를 추가하는 것입니다.
함수 호출의 첫 번째 인수로 "aTHX_"를 사용합니다. 항상 이렇게 해야 합니다.
Perl_-less 폼이 코어에서 누출되도록 하는 것은 사고였습니다.
더 깔끔한 임베딩을 위해 컴파일 시 cpp를 정의하여 모든 API에 대해 이를 강제로 적용할 수도 있습니다.
PERL_NO_SHORT_NAMES를 정의합니다.

Perl_save_bool() 추가되었다.

정규 표현식 객체("qr"로 생성된 객체)가 이제 R-매직 대신 S-매직을 갖습니다. 이 수정 사항은
/...(??{...;$x})/ 형태의 정규 표현식을 사용하면 더 이상 $x에 대한 변경 사항을 무시하지 않습니다. S-magic
캐싱 최적화를 중단하고 (??{...}) 구조를 엄청나게 느리게 만드는 것을 방지합니다.
(결과적으로 쓸모가 없습니다.) perlguts의 "매직 변수"도 참조하세요. Regexp::Copy는
이 변경 사항의 영향을 받습니다.

Perl 내부 디버깅 매크로 디버그() 그리고 데브() 로 이름이 바뀌었습니다 PERL_디버그() 그리고
PERL_DEB() 네임스페이스 충돌을 피하기 위해.

"-DL" 제거됨(누출 테스트가 수년간 중단되고 지원되지 않음, 대체 사용)
(malloc 디버깅이나 valgrind, Purify와 같은 도구).

"-DXv"와 "-Dsv"에 자세한 수정자 "v"가 추가되었습니다. perlrun을 참조하세요.

신제품 테스트


Perl 5.8.0에는 약 69000개의 테스트 파일에 약 700개의 개별 테스트가 있었고 Perl 5.8.1에는
약 77000개의 테스트 파일에 약 780개의 개별 테스트가 있습니다. 정확한 숫자는
Perl 구성 및 운영 체제 플랫폼.

알려진 문제


"비호환 변경 사항"에 언급된 해시 무작위화는 확실히 문제가 있습니다.
잠복해 있던 버그를 깨우고 나쁜 가정을 깨우겠습니다.

Perl 2과 함께 mod_perl 5.8.1.x를 사용하려면 mod_perl-1.99_10 이상이 필요합니다.
mod_perl 2.x의 이전 버전은 무작위 해시와 함께 작동하지 않습니다. (mod_perl 1.x)
(잘 작동합니다.) Apache::Test 1.04 이상도 필요합니다.

Perl 100에서 5.8.0% 또는 그에 가깝게 작동하는 희귀한 플랫폼 중 다수가 있습니다.
최근에 유지 관리자가 바빠서 약간 관리가 소홀해졌습니다.
따라서 해당 플랫폼에서는 더 많은 실패가 발생할 것입니다. 이러한 플랫폼에는 Mac이 포함됩니다.
OS Classic, IBM z/OS(및 기타 EBCDIC 플랫폼), NetWare 등이 있습니다. 가장 널리 사용되는 Perl은
플랫폼(Unix 및 Unix 유사 플랫폼, Microsoft 플랫폼 및 VMS)에는 충분히 큰 테스트가 있습니다.
전문가 집단에서는 자신들이 잘하고 있다고 말합니다.

묶여 해시 in 스칼라 문맥
연결된 해시는 현재 스칼라 컨텍스트에서 유용한 것을 반환하지 않습니다. 예를 들어,
부울 테스트로 사용됨:

if (%tied_hash) { ... }

현재의 말도 안되는 동작은 항상 false를 반환하는 것입니다.
해시가 비어 있거나 요소가 있습니다.

근본 원인은 연결된 해시를 구현하는 사람들을 위한 인터페이스가 없다는 것입니다.
스칼라 컨텍스트에서 해시의 동작을 구현합니다.

넷::핑 450_서비스 그리고 510_ping_udp 실패
lib/Net/Ping/t/9_service.t의 하위 테스트 18와 450, 그리고 하위 테스트 2
네트워크 설정이 비정상적이면 lib/Net/Ping/t/510_ping_udp.t가 실패할 수 있습니다.
예를 들어 후자의 경우 테스트는 IP 주소로 UDP ping을 보내려고 합니다.
127.0.0.1.

기원전
C 생성 컴파일러 백엔드 B::C(프런트엔드는 "perlcc -c")가 훨씬 더 많습니다.
광범위한 어휘 변수 변경으로 인해 이전보다 더 망가졌습니다. (좋은
(뉴스는 B::Bytecode와 ByteLoader가 예전보다 더 좋아졌다는 것입니다.)

플랫폼 특정 문제


EBCDIC 플랫폼
IBM z/OS와 기타 EBCDIC 플랫폼은 유니코드 지원과 관련하여 계속해서 문제가 있습니다.
많은 유니코드 테스트가 실제로 수정되어야 할 때 건너뛰어집니다.

Cygwin에서 1.5 문제
Cygwin 1.5에서는 io/텔 그리고 op/sysio 아직 알려지지 않은 이유로 테스트가 실패합니다.
1.5.5에서는 stress_cv, stress_re 및 stress_string 스레드 테스트가 실패합니다.
환경 변수 PERLIO가 "perlio"로 설정되어 있습니다(이로 인해 io/tell 실패도 발생합니다.
떨어져 있는).

Perl 5.8.1은 Cygwin 1.3에서 잘 빌드되고 작동합니다: (uname -a) "CYGWIN_NT-5.0 ...
1.3.22(0.78/3/2) 2003-03-18 09:20 i686 ..." 100% "make test"가 달성되었습니다.
"Configure -des -Duseithreads"를 실행합니다.

HP-UX: HP cc 경고 about 센드파일 그리고 전송 경로
특정 HP C 컴파일러 릴리스(예: B.11.11.02)에서는 이와 같은 경고가 많이 표시됩니다.
(읽기 쉽도록 줄바꿈):

cc: "/usr/include/sys/socket.h", 504번째 줄: 경고 562:
다른 저장 클래스 지정자를 사용하여 "sendfile"을 다시 선언:
"sendfile"은 내부적으로 연결됩니다.
cc: "/usr/include/sys/socket.h", 505번째 줄: 경고 562:
다른 저장 클래스 지정자를 사용하여 "sendpath"를 다시 선언:
"sendpath"는 내부적으로 연결됩니다.

경고는 Perl 빌드 중과 특정 lib/ExtUtils 테스트 중에 모두 표시됩니다.
C 컴파일러를 호출하는 경고입니다. 하지만 이 경고는 심각하지 않으므로 무시해도 됩니다.

아이릭스: t/uni/tr_7jis.t 거짓으로 실패
테스트 t/uni/tr_7jis.t는 'make test' 또는 테스트 하네스에서 실패를 보고하는 것으로 알려져 있습니다.
IRIX의 특정 릴리스(최소 IRIX 6.5 및 MIPSpro 컴파일러 버전 7.3.1.1m)의 경우
하지만 수동으로 실행하면 테스트가 완전히 통과됩니다.

Mac OS X: 아니 usemymalloc
Perl malloc("-Dusemymalloc")은 Mac OS X에서는 전혀 작동하지 않습니다.
하지만 기본 malloc이 잘 작동하므로 심각하지는 않습니다.

트루64: 아니 나사산이 달린 빌드 GNU cc (gcc)
최신 Tru64 릴리스(예: v5.1B 이상)에서는 gcc를 사용하여 컴파일할 수 없습니다.
시스템이 " "파일에 대해 알지 못함
gcc.

Win32 : 시스코펜, 시스템 읽기, 시스템 쓰기
5.8.0 릴리스부터 시스템오픈()/시스템 읽기()/시스템 쓰기() 예전처럼 행동하지 마세요
5.6.1 이하 버전에서는 "텍스트" 모드와 관련하여 이러한 내장 기능이 항상 작동합니다.
"바이너리" 모드(심지어 시스템오픈() O_TEXT 플래그가 전달되었거나 빈모드() 에 사용되었습니다
파일 핸들). 이 문제는 디스크 파일에만 영향을 미친다는 점에 유의하십시오.
소켓과 파이프는 Windows 포트에서 항상 "바이너리" 모드로 작동했습니다. 이러한 동작은
현재 버그로 간주되지만 호환 가능한 동작이 향후 다시 도입될 수 있습니다.
출시. 그때까지는 시스템오픈(), 시스템 읽기() 그리고 시스템 쓰기() 지원되지 않습니다
"텍스트" 모드 작업.

미래 오시는 길


다음 사항 수도 미래에 발생할 수 있습니다. 공개적으로 사용 가능한 첫 번째 릴리스는 다음과 같습니다.
이러한 특성은 개발자가 Perl 5.9.x를 출시할 때 가장 중요하며 Perl에서 정점을 이룹니다.
5.10.0 릴리스. 현재로서는 저희가 추측한 내용입니다.
재고.

· PerlIO가 기본으로 설정됩니다. 현재(Perl 5.8.x)에서는 stdio 라이브러리가 여전히
Perl이 stdio를 실행하기 위해 특정 트릭을 사용할 수 있다고 생각하는 경우 사용됩니다. 정말 빠르다.
향후 릴리스에서는 PerlIO를 더욱 빠르게 만드는 것이 목표입니다.

· 새로운 기능이라고 불리는 주장 사용할 수 있습니다. 즉, 코드를 가질 수 있다는 의미입니다.
코드에 뿌려진 어설션이라고 합니다. 일반적으로 최적화되어 제거되지만
"-A" 옵션을 사용하여 활성화할 수 있습니다.

· 새로운 연산자 "//"(정의된 또는)가 제공됩니다. 즉,
to say

$a // $b

대신

$a ? $a : $b 를 정의했습니다

그리고

$c //= $d;

대신

$c가 정의되지 않은 경우 $c = $d

이 연산자는 "||"와 동일한 우선순위와 결합성을 갖습니다. 소스 코드
Perl 5.8.1 소스에 대한 패치는 CPAN에서 사용 가능합니다.
저자/id/H/HM/HMBRAND/dor-5.8.1.diff.

· "unpack()"은 기본적으로 $_를 압축 해제합니다.

· Perl의 속도를 높이기 위해 다양한 Copy-On-Write 기술이 조사될 것입니다.

· CPANPLUS, Inline, Module::Build가 핵심 모듈이 됩니다.

· 진정한 어휘 범위 프래그마를 작성하는 능력이 소개됩니다.

· 바이트컴파일러와 바이트로더 작업은 계속 진행됩니다.

· 현재 존재하는 v-string은 더 이상 사용되지 않을 예정입니다. v-less 형식은
(1.2.3)은 "use", "require" 및 $VERSION과 함께 사용될 경우 "버전 객체"가 됩니다.
$^V는 또한 "버전 개체"가 되므로 printf("%vd",...) 구조는 더 이상 유효하지 않습니다.
필요할 것입니다. v-ful 버전(v1.2.3)은 더 이상 사용되지 않습니다.
문자열과 v-문자열(예: 현재 5.8.0은 "\5\8\0"과 동일)이 사라질 것입니다.
5월 be 아니 천칭 경고 을 통한 V-스트링하지만: 감지하기가 꽤 어렵습니다.
V-스트링을 안전하게 사용하는 경우와 사용하지 않는 경우입니다.

· 5.005개의 스레드가 제거됩니다.

· $* 변수는 제거됩니다(오래전에 더 이상 사용되지 않음)

· 의사 해시가 제거됩니다.

통계 보고서 버그


버그라고 생각되는 것을 찾으면 최근에 게시된 기사를 확인할 수 있습니다.
comp.lang.perl.misc 뉴스 그룹 및 perl 버그 데이터베이스 http://bugs.perl.org/ . 그곳에
에서 정보를 얻을 수도 있습니다. http://www.perl.com/ , Perl 홈 페이지.

보고되지 않은 버그가 있다고 생각되면 다음을 실행하십시오. 펄버그 에 포함된 프로그램
당신의 석방. 버그를 작지만 충분한 테스트 케이스로 줄이십시오. 당신의 버그
보고서는 "perl -V"의 출력과 함께 다음으로 전송됩니다. [이메일 보호]
Perl 포팅 팀에서 분석했습니다. Perl 5 버그를 찾아보고 검색할 수 있습니다.
http://bugs.perl.org/

onworks.net 서비스를 사용하여 온라인으로 perl581delta 사용


무료 서버 및 워크스테이션

Windows 및 Linux 앱 다운로드

Linux 명령

Ad




×
광고
❤️여기에서 쇼핑, 예약, 구매하세요. 비용이 들지 않아 서비스를 무료로 유지하는 데 도움이 됩니다.