ภาษาอังกฤษอาหารฝรั่งเศสสเปน

ไอคอน Fav ของ OnWorks

perl589delta - ออนไลน์ใน Cloud

เรียกใช้ perl589delta ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง perl589delta ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


perl589delta - มีอะไรใหม่สำหรับ perl v5.8.9

DESCRIPTION


เอกสารนี้อธิบายความแตกต่างระหว่างรุ่น 5.8.8 และรุ่น 5.8.9

แจ้งให้ทราบ


รีลีส 5.8.9 จะเป็นรีลีสสุดท้ายที่สำคัญของซีรีส์ 5.8.x อนาคตใด ๆ
การเปิดตัว 5.8.x มีแนวโน้มที่จะจัดการกับปัญหาด้านความปลอดภัยและการสร้างแพลตฟอร์มเท่านั้น
ความล้มเหลว ดังนั้นคุณควรมองหาการย้ายไปยัง 5.10.x หากคุณยังไม่ได้เริ่ม
ดู "ปัญหาที่ทราบ" สำหรับข้อมูลเพิ่มเติม

เข้ากันไม่ได้ การเปลี่ยนแปลง


โครงสร้างเฉพาะในซอร์สโค้ดของส่วนขยายที่เขียนด้วย C ++ อาจจำเป็น
การเปลี่ยนแปลง. ดู "การเปลี่ยนแปลงภายใน" สำหรับรายละเอียดเพิ่มเติม นามสกุลทั้งหมดเขียนด้วย C ส่วนใหญ่
เขียนด้วย C ++ และส่วนขยายที่คอมไพล์แล้วทั้งหมดจะไม่ได้รับผลกระทบ นี่เป็นสิ่งจำเป็นเพื่อ
ปรับปรุงการรองรับ C ++

นอกเหนือจากนี้ ไม่มีการเปลี่ยนแปลงโดยเจตนาที่เข้ากันไม่ได้กับ 5.8.8 ถ้ามี
มีข้อบกพร่องและยินดีต้อนรับรายงาน

แกน การเพิ่มประสิทธิภาพ


Unicode คาแรคเตอร์ ฐานข้อมูล 5.1.0.
สำเนาของฐานข้อมูลอักขระ Unicode ที่รวมอยู่ใน Perl 5.8 ได้รับการอัปเดตเป็น 5.1.0
จาก 4.1.0 ดูhttp://www.unicode.org/versions/Unicode5.1.0/#NotableChanges> สำหรับ
การเปลี่ยนแปลงที่โดดเด่น

stat และ -X on ไดเรกทอรี จับ
ขณะนี้สามารถเรียก "stat" และตัวดำเนินการ filestat "-X" บนตัวจัดการไดเร็กทอรีได้แล้ว เนื่องจาก
ทั้งไดเร็กทอรีและตัวจัดการไฟล์เป็นคำเปล่าอาจมีความคลุมเครือซึ่งเคยเป็น
ตั้งใจ. ในสถานการณ์เหล่านี้ ควรใช้ความหมายของการจัดการไฟล์ ทั้งยังรักษา
*FILE{IO} ไฟล์จัดการเช่น *FILE filehandle

แหล่ง ฟิลเตอร์ in @ไอเอ็นซี
เป็นไปได้ที่จะปรับปรุงกลไกของ subroutine hooks ใน @INC โดยการเพิ่ม source
ตัวกรองที่ด้านบนของ filehandle ที่เปิดและส่งคืนโดย hook ฟีเจอร์นี้ถูกวางแผนไว้
นานมาแล้ว แต่ไม่ค่อยได้ผลจนถึงตอนนี้ ดู "ต้องการ" ใน perlfunc สำหรับ
รายละเอียด. (นิโคลัส คลาร์ก)

ข้อยกเว้น in คงที่ พับ
รูทีนการพับคงที่ตอนนี้ถูกรวมไว้ในตัวจัดการข้อยกเว้น และหากการพับล้มเหลว
ข้อยกเว้น (เช่นพยายามประเมิน 0/0) ตอนนี้ Perl จะเก็บ optree ปัจจุบันไว้
แทนที่จะยกเลิกโปรแกรมทั้งหมด หากไม่มีการเปลี่ยนแปลงนี้ โปรแกรมจะไม่คอมไพล์
ถ้าพวกเขามีสำนวนที่เกิดขึ้นเพื่อสร้างข้อยกเว้นแม้ว่าพวกเขาจะ
นิพจน์อยู่ในรหัสที่ไม่สามารถเข้าถึงได้ในขณะใช้งานจริง (นิโคลัส คลาร์ก, เดฟ
มิทเชลล์)

"ไม่ รุ่น"
ตอนนี้คุณสามารถใช้ "ไม่" ตามด้วยหมายเลขเวอร์ชันเพื่อระบุว่าคุณต้องการใช้ a
เวอร์ชันของ perl ที่เก่ากว่าที่ระบุ

ปรับตัวดีขึ้น ภายใน UTF-8 แคช รหัส
รหัสที่แคชคำนวณออฟเซ็ต UTF-8 ไบต์สำหรับการชดเชยอักขระสำหรับสตริงมี
ถูกเขียนใหม่ บั๊กหลายตัวถูกพบและกำจัดไปแล้ว และตอนนี้โค้ดก็ทำให้
ใช้ข้อมูลที่มีอยู่ได้ดีขึ้น ดังนั้นควรเร็วกว่านี้ โดยเฉพาะมันไม่สแกน
ต่อท้ายสตริงก่อนคำนวณออฟเซ็ตภายในสตริง ซึ่งควรเพิ่มความเร็ว
เพิ่มการดำเนินการบางอย่างในสายยาว ตอนนี้คุณสามารถปิดการใช้งานรหัสแคชเมื่อทำงาน
เวลาเพื่อตรวจสอบว่าไม่ใช่สาเหตุของปัญหาที่น่าสงสัย

Runtime เคลื่อนย้ายได้ การติดตั้ง
ตอนนี้จะมี กำหนดค่า รองรับการสร้าง Perl tree ที่สามารถเคลื่อนย้ายได้ในขณะใช้งาน
ดู "การติดตั้งที่ย้ายได้"

ใหม่ ภายใน ตัวแปร
"${^CHILD_ERROR_NATIVE}"
ตัวแปรนี้ให้สถานะดั้งเดิมที่ส่งคืนโดยการปิดไปป์สุดท้าย, backtick
คำสั่ง โทรสำเร็จเพื่อ "รอ" หรือ "waitpid" หรือจากโอเปอเรเตอร์ "ระบบ" ดู
perlvar สำหรับรายละเอียด (สนับสนุนโดย Gisle Aas.)

"${^UTF8CACHE}"
ตัวแปรนี้ควบคุมสถานะของโค้ดแคชออฟเซ็ต UTF-8 ภายใน 1 สำหรับ on
(ค่าเริ่มต้น), 0 สำหรับปิด, -1 เพื่อดีบักรหัสแคชโดยตรวจสอบผลลัพธ์ทั้งหมด
กับการสแกนเชิงเส้น และการตื่นตระหนกกับความคลาดเคลื่อนใดๆ

"หัวอ่าน" is ตอนนี้ เอาชนะได้
ฟังก์ชัน "readpipe" ในตัวสามารถลบล้างได้ เอาชนะมันอนุญาตให้ยัง
แทนที่คู่ของตัวดำเนินการ "qx//" (เรียกอีกอย่างว่า "``")

ง่าย ข้อยกเว้น การจัดการ แมโคร
Perl 5.8.9 (และ 5.10.0 เป็นต้นไป) มีมาโครสองสามตัวเพื่อทำข้อยกเว้นพื้นฐาน
การจัดการในโมดูล XS คุณสามารถใช้มาโครเหล่านี้ได้หากคุณเรียกรหัสที่อาจ "บ่น" แต่
คุณต้องทำการล้างข้อมูลก่อนที่จะให้การควบคุมกลับไปยัง Perl ดู "การจัดการข้อยกเว้น"
ใน perlguts สำหรับรายละเอียดเพิ่มเติม

-D ตัวเลือก ปรับปรุง
· "-Dq" ระงับ กำลังดำเนินการ... ข้อความเมื่อทำงานภายใต้ "-D"

· "-Dl" บันทึกการเข้าและออกของลูป runop และกระโดดระดับ popping

· "-Dv" แสดง ID กระบวนการซึ่งเป็นส่วนหนึ่งของเอาต์พุตการติดตาม

XS ช่วย สวอชเก็ท
โค้ด perl บริสุทธิ์ที่เอ็นจิน regexp ใช้เพื่อดึงคุณสมบัติ Unicode และ
มีการปรับใช้การแมปการทับศัพท์ใหม่ใน XS เพื่อการทำงานที่รวดเร็วยิ่งขึ้น (ซาดาฮิโร
โทโมยูกิ)

ค่าคงที่ ซับรูทีน
ขณะนี้ระบบภายในของล่ามรองรับรูปแบบอินไลน์ได้ที่มีประสิทธิภาพมากขึ้นแล้ว
ค่าคงที่ การจัดเก็บการอ้างอิงถึงค่าคงที่ในตารางสัญลักษณ์จะเทียบเท่ากับa
full typeglob อ้างอิงถึงรูทีนย่อยคงที่ แต่ใช้หน่วยความจำน้อยกว่า 400 ไบต์
รูทีนย่อยค่าคงที่พร็อกซีนี้ได้รับการอัพเกรดโดยอัตโนมัติเป็น typeglob จริงด้วย
รูทีนย่อยหากจำเป็น วิธีการที่ใช้นั้นคล้ายคลึงกับพื้นที่ที่มีอยู่
การปรับให้เหมาะสมสำหรับการประกาศ stub ของรูทีนย่อย ซึ่งถูกเก็บไว้เป็นสเกลาร์ธรรมดาแทน
ของ typeglob เต็มรูปแบบ

อย่างไรก็ตาม เพื่อช่วยความเข้ากันได้ย้อนหลังของรหัสที่มีอยู่ ซึ่ง (ผิด) ไม่ได้คาดหวัง
อย่างอื่นนอกจาก typeglobs ในตารางสัญลักษณ์ ไม่มีอะไรในคอร์ที่ใช้คุณสมบัตินี้ อื่นๆ
กว่าการทดสอบการถดถอย

สตับสำหรับรูทีนย่อยต้นแบบถูกเก็บไว้ในตารางสัญลักษณ์เป็นสตริงธรรมดา และ
stubs สำหรับรูทีนย่อยที่ไม่ได้สร้างต้นแบบเป็นหมายเลข -1 ตั้งแต่ 5.005 ดังนั้นโค้ดที่ถือว่า
ที่แกนกลางวางเฉพาะ typeglobs ในตารางสัญลักษณ์ทำให้สมมติฐานไม่ถูกต้อง
มานานกว่า 10 ปี

ใหม่ แพลตฟอร์ม


คอมไพล์รองรับเพิ่มสำหรับ:

· ดราก้อนฟลายบีเอสดี

· เที่ยงคืนBSD

· MirOS BSD

· ระบบปฏิบัติการ RISC

· Cray XT4/Catamount

โมดูล และ ในทางปฏิบัติ


ใหม่ โมดูล
· "Module :: Pluggable" เป็นเฟรมเวิร์กง่ายๆ ในการสร้างโมดูลที่ยอมรับ sub-
โมดูล เวอร์ชันที่แถมมาคือ 3.8

· "Module::CoreList" เป็นแฮชของแฮชที่คีย์บนเวอร์ชัน Perl ตามที่ระบุไว้ใน
$]. เวอร์ชันที่แถมมาคือ 2.17

· "Win32API::File" พร้อมใช้งานแล้วในคอร์บน Microsoft Windows เวอร์ชันที่แถมมาคือ
0.1001_01

· "Devel::InnerPackage" ค้นหาแพ็คเกจทั้งหมดที่กำหนดโดยไฟล์เดียว เป็นส่วนหนึ่งของ
การกระจาย "Module :: Pluggable" รุ่นรวมคือ0.3

วันที่อัพเดท โมดูล
· "แอตทริบิวต์" อัปเกรดเป็นเวอร์ชัน 0.09

· "AutoLoader" อัปเกรดเป็นเวอร์ชัน 5.67

· "แยกอัตโนมัติ" อัปเกรดเป็น 1.06

· "ใช้อัตโนมัติ" อัปเกรดเป็นเวอร์ชัน 1.06

· "B" อัปเกรดจาก 1.09_01 เป็น 1.19

· จัดเตรียมมาโครนามธรรมที่เกี่ยวข้องกับแผ่นใหม่ "B::NV::COP_SEQ_RANGE_LOW",
"B::NV::COP_SEQ_RANGE_HIGH", "B::NV::PARENT_PAD_INDEX",
"B::NV::PARENT_FAKELEX_FLAGS" ซึ่งซ่อนความแตกต่างในการจัดเก็บใน 5.10.0 และ
ต่อมา

· ให้ "B::sub_generation" ซึ่งแสดง "PL_sub_generation"

· ให้ "B::GV::isGV_with_GP" ซึ่งใน pre-5.10 perls จะคืนค่าเป็น true เสมอ

· เพิ่มประเภทใหม่ "B::HE" ด้วยเมธอด "VAL", "HASH" และ "SVKEY_force"

· ตั้งค่าสถานะ "B::GVf_IMPORTED_CV" อย่างถูกต้องแล้วเมื่อค่าคงที่ของพร็อกซี
รูทีนย่อยถูกนำเข้า

· แก้ไขข้อผิดพลาดในการจัดการ "PMOP"

· "B::BM::PREVIOUS" คืนค่าเป็น "U32" ไม่ใช่ "U16" "B::CV::START" และ "B:CV::ROOT"
ส่งคืนตอนนี้ "NULL" บน XSUB, "B::CV::XSUB" และ "B::CV::XSUBANY" คืนค่า 0 ใน a
ไม่ใช่ XSUB

· "B::C" อัปเกรดเป็น 1.05

· "B::Concise" อัปเกรดเป็น 0.76

· ตัวเลือกใหม่ "-src" ทำให้เกิดการแสดงผลของแต่ละคำสั่ง (เริ่มต้นด้วย
nextstate OP) ที่จะนำหน้าด้วยบรรทัดแรกของซอร์สโค้ดที่สร้างมันขึ้นมา

· ตัวเลือกใหม่ "-stash="somepackage"", "require" "somepackage" แล้วเรนเดอร์แต่ละรายการ
ฟังก์ชั่นที่กำหนดไว้ในเนมสเปซ

· ตอนนี้มีเอกสารสัญลักษณ์คำใบ้โดยละเอียดแล้ว

· "B::Debug" อัปเกรดเป็นเวอร์ชัน 1.05

· "B::Deparse" อัปเกรดเป็นเวอร์ชัน 0.87

· แยกส่วนอย่างถูกต้อง "print readpipe $x, $y"

· ตอนนี้จัดการ "''-"()>, "::()", "sub :: {}", เป็นต้น ถูกต้อง [RT #43010] ข้อบกพร่องทั้งหมด
ในการแยกวิเคราะห์ไวยากรณ์ประเภทนี้ได้รับการแก้ไขแล้ว:

perl -MO=Deparse -e '"my %h = "->()'
perl -MO=แยกจากกัน -e '::->()'
perl -MO=แยกออก -e 'ย่อย :: {}'
perl -MO=แยกออก -e 'แพ็คเกจ a; ย่อย a::b::c {}'
perl -MO=Deparse -e 'ย่อย::main::road {}'

· ทำ ไม่ แยก $^H{v_string} ซึ่งถูกกำหนดโดย internals โดยอัตโนมัติ

· "B::Lint" อัปเกรดเป็นเวอร์ชัน 1.11

· "B::Terse" อัปเกรดเป็นเวอร์ชัน 1.05

· "ฐาน" อัปเกรดเป็นเวอร์ชัน 2.13

· การโหลดโมดูลผ่าน base.pm จะปกปิด $SIG{__DIE__} ทั่วโลกในโมดูลนั้น

· ดันทุกคลาสพร้อมกันใน @ISA

· "เกณฑ์มาตรฐาน" อัปเกรดเป็นเวอร์ชัน 1.10

· "bigint" อัปเกรดเป็น 0.23

· "bignum" อัปเกรดเป็น 0.23

· "bigrat" อัปเกรดเป็น 0.23

· "blib" อัปเกรดเป็น 0.04

· "ปลาคาร์พ" อัปเกรดเป็นเวอร์ชัน 1.10

ตอนนี้โค้ด backtrace ของอาร์กิวเมนต์แสดง "undef" เป็น "undef" แทนที่จะเป็น string "อันเดฟ".

· "CGI" อัปเกรดเป็นเวอร์ชัน 3.42

· "charnames" อัปเกรดเป็น 1.06

· "คงที่" อัปเกรดเป็นเวอร์ชัน 1.17

· "CPAN" อัปเกรดเป็นเวอร์ชัน 1.9301

· "Cwd" อัปเกรดเป็นเวอร์ชัน 3.29 พร้อมการปรับปรุงเฉพาะบางแพลตฟอร์ม (รวมถึงสำหรับ
VMS)

· อัปเกรด "Data::Dumper" เป็นเวอร์ชัน 2.121_17

· แก้ไขตำแหน่งปัจจุบันของ hash iterator ด้วยเวอร์ชัน Perl แท้ [RT #40668]

· การปรับปรุงประสิทธิภาพซึ่งจะเห็นได้ชัดเจนที่สุดบนแพลตฟอร์มที่ทำซ้ำ
การเรียก "realloc()" ของ C นั้นช้า เช่น Win32

· "DB_File" อัปเกรดเป็นเวอร์ชัน 1.817

· "DB_Filter" อัปเกรดเป็นเวอร์ชัน 0.02

· อัปเกรด "Devel::DPof" เป็นเวอร์ชัน 20080331.00

· "Devel::Peek" อัปเกรดเป็นเวอร์ชัน 1.04

· "Devel::PPPort" อัปเกรดเป็นเวอร์ชัน 3.14

· "การวินิจฉัย" อัปเกรดเป็นเวอร์ชัน 1.16

· "ไดเจสต์" อัปเกรดเป็นเวอร์ชัน 1.15

· อัปเกรด "Digest::MD5" เป็นเวอร์ชัน 2.37

· "DirHandle" อัปเกรดเป็นเวอร์ชัน 1.02

· ตอนนี้แปล $., $@, $!, $^E และ $? ก่อนที่จะปิดตัวจัดการไดเรกทอรีไปที่
ระงับการรั่วไหลของผลข้างเคียงของคำเตือนเกี่ยวกับมันถูกปิดไปแล้ว

· "DynaLoader" อัปเกรดเป็นเวอร์ชัน 1.09

"DynaLoader" สามารถโหลดวัตถุที่โหลดได้แบบไดนามิกจากไฟล์ที่ไม่มีค่าเริ่มต้น
ไฟล์นามสกุล.

· "เข้ารหัส" อัปเกรดเป็นเวอร์ชัน 2.26

"Encode::Alias" รวมการแก้ไขสำหรับการเข้ารหัส "646" บน Solaris (รู้จักกันดีในชื่อ ASCII)

· "ภาษาอังกฤษ" อัปเกรดเป็นเวอร์ชัน 1.03

· "Errno" อัปเกรดเป็นเวอร์ชัน 1.10

· "ผู้ส่งออก" อัปเกรดเป็นเวอร์ชัน 5.63

· "ExtUtils::Command" อัปเกรดเป็นเวอร์ชัน 1.15

· "ExtUtils::Constant" อัปเกรดเป็นเวอร์ชัน 0.21

· "ExtUtils::Embed" อัปเกรดเป็นเวอร์ชัน 1.28

· "ExtUtils::Install" อัปเกรดเป็นเวอร์ชัน 1.50_01

· "ExtUtils::Installed" อัปเกรดเป็นเวอร์ชัน 1.43

· "ExtUtils::Maker" อัปเกรดเป็นเวอร์ชัน 6.48

· รองรับการกำหนดค่า "INSTALLSITESCRIPT" และ "INSTALLVENDORSCRIPT"

· "ExtUtils::Manifest" อัปเกรดเป็นเวอร์ชัน 1.55

· "ExtUtils::ParseXS" อัปเกรดเป็นเวอร์ชัน 2.19

· "ร้ายแรง" อัปเกรดเป็นเวอร์ชัน 1.06

· อนุญาตให้บิวด์อินใน "CORE::GLOBAL" เป็นอันตรายถึงชีวิต

· "FCntl" อัปเกรดเป็นเวอร์ชัน 1.06

· "ฟิลด์" อัปเกรดเป็นเวอร์ชัน 2.12

· อัปเกรด "File::Basename" เป็นเวอร์ชัน 2.77

· "FileCache" อัปเกรดเป็นเวอร์ชัน 1.07

· "ไฟล์ :: เปรียบเทียบ" อัปเกรดเป็น 1.1005

· "ไฟล์ :: คัดลอก" อัปเกรดเป็น 2.13

· ตอนนี้ใช้ 3-arg open

· "ไฟล์ :: DosGlob" อัปเกรดเป็น 1.01

· "ไฟล์ :: ค้นหา" อัปเกรดเป็นเวอร์ชัน 1.13

· อัปเกรด "File::Glob" เป็นเวอร์ชัน 1.06

· แก้ไขผลลัพธ์ปลอมด้วยวงเล็บในเหล็กจัดฟัน

· อัปเกรด "File::Path" เป็นเวอร์ชัน 2.07_02

· อัปเกรด "File::Spec" เป็นเวอร์ชัน 3.29

· ปรับปรุงการจัดการข้อโต้แย้งที่ไม่ดี

· การปรับปรุงเฉพาะบางแพลตฟอร์ม (รวมถึง VMS และ Cygwin) ด้วย an
การเพิ่มประสิทธิภาพบน "abs2rel" เมื่อจัดการอาร์กิวเมนต์ที่สัมพันธ์กันทั้งสอง

· อัปเกรด "File::stat" เป็นเวอร์ชัน 1.01

· อัปเกรด "File::Temp" เป็นเวอร์ชัน 0.20

· "filetest" อัปเกรดเป็นเวอร์ชัน 1.02

· อัปเกรด "Filter::Util::Call" เป็นเวอร์ชัน 1.07

· อัปเกรด "Filter::Simple" เป็นเวอร์ชัน 0.83

· "FindBin" อัปเกรดเป็นเวอร์ชัน 1.49

· "GDBM_File" อัปเกรดเป็นเวอร์ชัน 1.09

· "Getopt::Long" อัปเกรดเป็นเวอร์ชัน 2.37

· "Getopt::Std" อัปเกรดเป็นเวอร์ชัน 1.06

· "Hash::Util" อัปเกรดเป็นเวอร์ชัน 0.06

· "ถ้า" อัปเกรดเป็นเวอร์ชัน 0.05

· "IO" อัปเกรดเป็นเวอร์ชัน 1.23

ลดจำนวนการโทรไปที่ "getpeername" ใน "IO::Socket"

· "IPC::Open" อัปเกรดเป็นเวอร์ชัน 1.03

· "IPC::Open3" อัปเกรดเป็นเวอร์ชัน 1.03

· "IPC::SysV" อัปเกรดเป็นเวอร์ชัน 2.00

· "lib" อัปเกรดเป็นเวอร์ชัน 0.61

·หลีกเลี่ยงคำเตือนเกี่ยวกับการโหลด .พาร์ ไฟล์

· "libnet" อัปเกรดเป็นเวอร์ชัน 1.22

· "List::Util" อัปเกรดเป็น 1.19

· "Locale::Maketext" อัปเกรดเป็น 1.13

· "Math::BigFloat" อัปเกรดเป็นเวอร์ชัน 1.60

· "Math::BigInt" อัปเกรดเป็นเวอร์ชัน 1.89

· "Math::BigRat" อัปเกรดเป็นเวอร์ชัน 0.22

· ใช้วิธี "as_float" ใหม่

· "คณิตศาสตร์ :: ซับซ้อน" อัปเกรดเป็นเวอร์ชัน 1.54

· "Math :: Trig" อัปเกรดเป็นเวอร์ชัน 1.18

· "NDBM_File" อัปเกรดเป็นเวอร์ชัน 1.07

· ทำให้ดีขึ้น g ++ การจัดการสำหรับระบบที่ใช้ส่วนหัวความเข้ากันได้ของ GDBM

· "Net::Ping" อัปเกรดเป็นเวอร์ชัน 2.35

· "NEXT" อัปเกรดเป็นเวอร์ชัน 0.61

· แก้ไขข้อบกพร่องหลายประการด้วย "NEXT" เมื่อทำงานกับ "AUTOLOAD", "eval" block และ
ภายในสตริงที่มากเกินไป

· "ODBM_File" อัปเกรดเป็น 1.07

· "เปิด" อัปเกรดเป็น 1.06

· "ops" อัปเกรดเป็น 1.02

· "PerlIO :: การเข้ารหัส" อัปเกรดเป็นเวอร์ชัน 0.11

· "PerlIO::scalar" อัปเกรดเป็นเวอร์ชัน 0.06

· [RT #40267] "PerlIO::scalar" ไม่เคารพการอ่านอย่างเดียว

· "PerlIO::via" อัปเกรดเป็นเวอร์ชัน 0.05

· "Pod::Html" อัปเกรดเป็นเวอร์ชัน 1.09

· "Pod::Parser" อัปเกรดเป็นเวอร์ชัน 1.35

· "Pod::Usage" อัปเกรดเป็นเวอร์ชัน 1.35

· "POSIX" อัปเกรดเป็นเวอร์ชัน 1.15

· ค่าคงที่ "POSIX" ที่ซ้ำกับ "Fcntl" ถูกนำเข้าจาก "Fcntl" แล้ว
และส่งออกใหม่ แทนที่จะทำซ้ำโดย "POSIX"

· "POSIX::remove" สามารถลบไดเร็กทอรีว่าง

· "POSIX::setlocale" ปลอดภัยกว่าการโทรหลายครั้ง

· เพิ่ม "POSIX::SigRt" ซึ่งให้การเข้าถึงฟังก์ชันสัญญาณเรียลไทม์ POSIX
ในระบบที่รองรับ

· "re" อัปเกรดเป็นเวอร์ชัน 0.06_01

· "ปลอดภัย" อัปเกรดเป็นเวอร์ชัน 2.16

· "Scalar::Util" อัปเกรดเป็น 1.19

· "SDBM_File" อัปเกรดเป็นเวอร์ชัน 1.06

· "SelfLoader" อัปเกรดเป็นเวอร์ชัน 1.17

· "เชลล์" อัปเกรดเป็นเวอร์ชัน 0.72

· "sigtrap" อัปเกรดเป็นเวอร์ชัน 1.04

· "ซ็อกเก็ต" อัปเกรดเป็นเวอร์ชัน 1.81

· แก้ไขการใช้ "gethostbyname" ในแง่ดี

· "เก็บได้" อัปเกรดเป็น 2.19

· "สวิตช์" อัปเกรดเป็นเวอร์ชัน 2.13

· "Sys::Syslog" อัปเกรดเป็นเวอร์ชัน 0.27

· "Term::ANSIColor" อัปเกรดเป็นเวอร์ชัน 1.12

· "Term::Cap" อัปเกรดเป็นเวอร์ชัน 1.12

· "Term::ReadLine" อัปเกรดเป็นเวอร์ชัน 1.03

· "ทดสอบ :: ตัวสร้าง" อัปเกรดเป็นเวอร์ชัน 0.80

· "Test :: Harness" เวอร์ชันอัปเกรดเป็น 2.64

· ทำให้สามารถขึ้นบรรทัดใหม่ได้

· "ทดสอบ :: เพิ่มเติม" อัปเกรดเป็นเวอร์ชัน 0.80

· อัปเกรด "Test ::Simple" เป็นเวอร์ชัน 0.80

· "Text::Balanced" อัปเกรดเป็นเวอร์ชัน 1.98

· "Text::ParseWords" อัปเกรดเป็นเวอร์ชัน 3.27

· "Text::Soundex" อัปเกรดเป็นเวอร์ชัน 3.03

· "Text::Tabs" อัปเกรดเป็นเวอร์ชัน 2007.1117

· "Text::Wrap" อัปเกรดเป็นเวอร์ชัน 2006.1117

· "เธรด" อัปเกรดเป็นเวอร์ชัน 2.01

· อัปเกรด "Thread::Semaphore" เป็นเวอร์ชัน 2.09

· อัปเกรด "Thread::Queue" เป็นเวอร์ชัน 2.11

· เพิ่มความสามารถในการเพิ่มโครงสร้างที่ซับซ้อน (เช่น แฮชของแฮช) ให้กับคิว

· เพิ่มความสามารถในการดีคิวหลายรายการพร้อมกัน

· เพิ่มวิธีการใหม่ในการตรวจสอบและจัดการคิว: "แอบดู", "แทรก" และ
"สารสกัด"

· "Tie :: Handle" อัปเกรดเป็นเวอร์ชัน 4.2

· "Tie::Hash" อัปเกรดเป็นเวอร์ชัน 1.03

· "Tie::Memoize" อัปเกรดเป็นเวอร์ชัน 1.1

· "Tie::Memoize::EXISTS" จะแคชผลลัพธ์อย่างถูกต้องแล้ว

· "Tie::RefHash" อัปเกรดเป็นเวอร์ชัน 1.38

· "Tie::Scalar" อัปเกรดเป็นเวอร์ชัน 1.01

· "Tie::StdHandle" อัปเกรดเป็นเวอร์ชัน 4.2

· อัปเกรด "Time::gmtime" เป็นเวอร์ชัน 1.03

· "Time::Local" อัปเกรดเป็นเวอร์ชัน 1.1901

· "Time::HiRes" อัปเกรดเป็นเวอร์ชัน 1.9715 พร้อมการปรับปรุงบิลด์ต่างๆ (รวมถึง
VMS) และการแก้ไขจุดบกพร่องเฉพาะแพลตฟอร์มเล็กน้อย (รวมถึง HP-UX 11 ia64)

· "กระทู้" อัปเกรดเป็น 1.71

· วิธีการข้อมูลสถานะเธรดใหม่: "is_running", "is_detached" และ
"is_joinable". วิธี "list" ที่ปรับปรุงเพื่อส่งคืนเธรดที่กำลังทำงานหรือเข้าร่วมได้

· วิธีสัญญาณเธรดใหม่: "ฆ่า"

· เพิ่มความสามารถในการระบุขนาดสแต็กของเธรด

· เพิ่มความสามารถในการควบคุมพฤติกรรมการออกของเธรด เพิ่มวิธีการ "ออก" ใหม่

· "threads ::shared" อัปเกรดเป็นเวอร์ชัน 1.27

· การใช้งานที่เล็กลงและเร็วขึ้นซึ่งกำจัดโครงสร้างภายในหนึ่งโครงสร้างและ
ระดับที่ตามมาของทางอ้อม

· ล็อคผู้ใช้ได้รับการจัดเก็บในลักษณะที่ปลอดภัยยิ่งขึ้น

· ฟังก์ชันใหม่ "shared_clone" สร้างสำเนาของออบเจกต์ที่ปล่อยให้องค์ประกอบที่ใช้ร่วมกัน
ตามที่เป็นอยู่และองค์ประกอบที่ไม่ได้แชร์แบบโคลนลึก

· เพิ่มวิธีการ "is_shared" ใหม่

· อัปเกรด "Unicode::Normalize" เป็นเวอร์ชัน 1.02

· อัปเกรด "Unicode::UCD" เป็นเวอร์ชัน 0.25

· "คำเตือน" อัปเกรดเป็นเวอร์ชัน 1.05_01

· "Win32" อัปเกรดเป็นเวอร์ชัน 0.38

· เพิ่มฟังก์ชันใหม่ "GetCurrentProcessId" ซึ่งส่งคืนกระบวนการ Windows ปกติ
ตัวระบุของกระบวนการปัจจุบัน แม้ว่าจะเรียกจากภายในส้อม

· "XSLLoader" อัปเกรดเป็นเวอร์ชัน 0.10

· "XS::APItest" และ "XS::Typemap" มีไว้สำหรับใช้ภายในเท่านั้นและด้วยเหตุนี้จึงไม่มีอีกต่อไป
ติดตั้ง เพิ่มการทดสอบอื่น ๆ อีกมากมายใน "XS::APItest"

ประโยชน์ การเปลี่ยนแปลง


ดีบัก อัพเกรด ไปยัง รุ่น 1.31
· Andreas Koenig สนับสนุนสองฟังก์ชันในการบันทึกและโหลดประวัติดีบักเกอร์

· "NEXT::AUTOLOAD" จะไม่ส่งคำเตือนภายใต้โปรแกรมดีบั๊กอีกต่อไป

· ดีบักเกอร์ควรค้นหา tty อุปกรณ์บน OS X 10.5 และ VMS ได้อย่างถูกต้องเมื่อ
โปรแกรม "ส้อม"

· ย่อย LVALUE ตอนนี้ทำงานภายในดีบักเกอร์

ขอบคุณมาก
Perl 5.8.9 เพิ่มยูทิลิตี้ใหม่ ขอบคุณมากซึ่งเป็นตัวแปรของ เพิร์ลบั๊กแต่สำหรับการส่ง
ไม่ใช่รายงานข้อผิดพลาดไปยังผู้เขียนและผู้ดูแล Perl ได้รับอะไรนอกจากรายงานข้อผิดพลาด
อาจทำให้เสียขวัญได้เล็กน้อย - เราจะดูว่าสิ่งนี้เปลี่ยนแปลงหรือไม่

เพิร์ลบั๊ก
เพิร์ลบั๊ก ตอนนี้ตรวจสอบว่าคุณกำลังรายงานเกี่ยวกับโมดูลที่ไม่ใช่โมดูลหลักหรือไม่ และแนะนำให้คุณรายงาน
ถึงผู้เขียน CPAN แทน

h2xs
· จะไม่กำหนดสตริงว่างเป็นค่าคงที่ [RT #25366]

· มีตัวอย่างสำหรับ "h2xs -X"

h2ph
· ตอนนี้พยายามที่จะจัดการกับความแตกต่างในความหมายของเส้นทางระหว่าง "" และ
การอ้างอิง "<>" ในคำสั่ง "#include"

· ตอนนี้สร้างรหัสที่ถูกต้องสำหรับ "#ถ้ากำหนด A || กำหนด B" [RT #39130]

ใหม่ เอกสาร


ตามปกติ เอกสารได้รับส่วนแบ่งของการแก้ไข การชี้แจง และอื่นๆ
นิตฟิกซ์ มีการเพิ่มแท็ก "" เพิ่มเติมสำหรับการจัดทำดัชนี

perlunitut เป็นบทช่วยสอนที่เขียนโดย Juerd Waalboer เกี่ยวกับคำศัพท์เกี่ยวกับ Unicode และวิธี
เพื่อจัดการ Unicode ในสคริปต์ Perl อย่างถูกต้อง

perlunicode ได้รับการอัปเดตในส่วนคุณสมบัติที่ผู้ใช้กำหนด

perluniintro ได้รับการปรับปรุงในตัวอย่างการตรวจจับข้อมูลที่ไม่ถูกต้องใน
การเข้ารหัสเฉพาะ

perlcommunity ให้ภาพรวมของชุมชน Perl พร้อมกับทรัพยากรเพิ่มเติม

CORE บันทึกเนมสเปซเทียมสำหรับรูทีนหลักของ Perl

การเปลี่ยนแปลง ไปยัง ที่มีอยู่ เอกสาร


perlglossary เพิ่ม เลิก โมดูล และ คุณสมบัติ และ ไปยัง be ปรับตัวลดลง โมดูล.

perlhack ได้รับการอัปเดตและเพิ่มทรัพยากรในการทดสอบควัน

คำถามที่พบบ่อย Perl (perlfaq1..perlfaq9) ได้รับการปรับปรุง

perlcheat ได้รับการอัปเดตด้วยรายละเอียดที่ดีขึ้นใน "\w", "\d" และ "\s"

perldebug ได้รับการอัปเดตด้วยข้อมูลเกี่ยวกับวิธีการเรียกโปรแกรมแก้ไขข้อบกพร่อง

เอกสาร perldiag อัปเดตด้วย รูทีนย่อย กับ an เครื่องหมาย ในการโต้แย้งกับ
"มีอยู่" และ "ลบ" และยังมีการอัปเดตคำศัพท์หลายคำในคำเตือน

perlfork จัดทำเอกสารข้อ จำกัด ของ "exec" ภายในกระบวนการหลอก

ประสิทธิภาพ:

· เอกสารได้รับการแก้ไขในส่วน "ผู้โทร" และ "ป๊อป"

· ฟังก์ชัน "alarm" กล่าวถึง "Time::HiRes::ualarm" แทน "select"

· เกี่ยวกับลำดับความสำคัญใน "-X" ตัวดำเนินการ filetest จะเหมือนกับตัวดำเนินการ unary แต่
ไม่เกี่ยวกับการแยกวิเคราะห์และวงเล็บ (เห็นโดย Eirik Berg Hanssen)

· เอกสารประกอบฟังก์ชัน "ย้อนกลับ" ได้รับตัวอย่างบริบทสเกลาร์

เอกสาร perllocale ถูกปรับปรุงสำหรับการแปลตัวเลขและ "POSIX::setlocale" เพื่อแก้ไข
ข้อบกพร่องของเดเบียน #379463

perlmodlib ได้รับการอัพเดตด้วย "CPAN::API::HOWTO" และ "Sys::Syslog::win32::Win32"

เอกสาร perlre อัปเดตเพื่อแสดงความแตกต่างระหว่าง "[[::]]" และ
"\p{IsXxxx}" ตรงกัน เพิ่มส่วนในการปรับเปลี่ยน "/ g" และ "/c"

perlreguts อธิบาย internals ของเอ็นจิ้นนิพจน์ทั่วไป มันเคยเป็น
สนับสนุนโดยอีฟ ออร์ตัน

perlrebackslash อธิบายแบ็กสแลชนิพจน์ทั่วไปของ Perl และลำดับหลีก

perlrecharclass อธิบายไวยากรณ์และการใช้คลาสอักขระใน Perl Regular
นิพจน์

perlrun ได้รับการอัปเดตเพื่อชี้แจงเกี่ยวกับเมล็ดกัญชา PERL_HASH_SEED. ข้อมูลเพิ่มเติมใน
ตัวเลือก "-x" และ "-u"

ตัวอย่าง perlsub ได้รับการอัปเดตเพื่อใช้ตัวแปรคำศัพท์สำหรับไวยากรณ์ "opendir"

perlvar แก้ไขความสับสนเกี่ยวกับ GID $ จริง (และ GID $ ที่มีประสิทธิภาพ)

ตัวอย่างการสอนเธรด Perl ได้รับการแก้ไขในส่วน "คิว: ส่งผ่านข้อมูลรอบ" ใน
perlthrtut และ perlthrtut

เอกสาร perlhack ได้รับการปรับปรุงอย่างกว้างขวางโดย Jarkko Hietaniemi และคนอื่นๆ

perltoot ให้ข้อมูลเกี่ยวกับการแก้ไข @UNIVERSAL::ISA

เอกสาร perlport ขยายเพื่อรวมความหมาย "kill(-9, ...)" ที่แตกต่างกันใน
วินโดว์. นอกจากนี้ยังระบุอย่างชัดเจนว่า "การถ่ายโอนข้อมูล" ไม่รองรับ Win32 และ cygwin

ติดตั้ง ได้รับการปรับปรุงและทันสมัย

ประสิทธิภาพ การเพิ่มประสิทธิภาพ


· ค่าดีฟอลต์เนื่องจาก perl 5.000 ใช้สำหรับ Perl เพื่อสร้างสเกลาร์ว่างกับทุก ๆ
ใหม่ typeglob การใช้ตัวแปรคำศัพท์ที่เพิ่มขึ้นหมายความว่าตอนนี้ส่วนใหญ่ไม่ได้ใช้
ด้วยความพยายามของ Nicholas Clark ทำให้ Perl สามารถรวบรวมได้ด้วย
"-DPERL_DONT_CREATE_GVSV" เพื่อหลีกเลี่ยงการสร้างสเกลาร์ว่างเหล่านี้ นี่จะ
ลดจำนวนสเกลาร์ที่จัดสรรสำหรับการกำหนดค่าทั้งหมดอย่างมีนัยสำคัญ และ
จำนวนสเกลาร์ที่ต้องคัดลอกเพื่อสร้างชุดข้อความ ในขณะที่ตัวเลือกนี้คือ
ไบนารีที่เข้ากันได้กับการติดตั้ง Perl ที่มีอยู่ มันเปลี่ยนมายาวนาน
สมมติฐานเกี่ยวกับ internals ดังนั้นจึงไม่ได้เปิดใช้งานตามค่าเริ่มต้นเหมือนอย่างที่สาม
รหัสปาร์ตี้อาจขึ้นอยู่กับพฤติกรรมแบบเก่า

เราขอแนะนำให้ทดสอบด้วยการกำหนดค่านี้ในการปรับใช้ Perl ใหม่
โดยเฉพาะสำหรับเซิร์ฟเวอร์แบบมัลติเธรด เพื่อดูว่ารหัสบุคคลที่สามทั้งหมดเป็นหรือไม่
เข้ากันได้เนื่องจากการกำหนดค่านี้อาจให้การปรับปรุงประสิทธิภาพที่เป็นประโยชน์
สำหรับการติดตั้งที่มีอยู่ เราไม่แนะนำให้เปลี่ยนเป็นการกำหนดค่านี้
เว้นแต่จะทำการทดสอบอย่างละเอียดก่อนนำไปใช้งาน

· "การวินิจฉัย" ไม่ใช้ $& อีกต่อไป ซึ่งส่งผลให้มีการเร่งความเร็วขนาดใหญ่สำหรับการจับคู่ regexp
ในรหัสทั้งหมดที่ใช้

· คลาสนิพจน์ทั่วไปของอักขระตัวเดียวตอนนี้ถือว่าเหมือนกับ
อักขระถูกใช้เป็นตัวอักษร หมายความว่ารหัสที่ใช้ char-classes เป็น an
กลไกการหลบหนีจะเห็นการเร่งความเร็ว (อีฟ ออร์ตัน)

· การสร้างอาร์เรย์นิรนามและการอ้างอิงแฮช (เช่น "[]" และ "{}") จะไม่เกิดขึ้นอีกต่อไป
ค่าใช้จ่ายมากกว่าการสร้างรายการที่ไม่ระบุชื่อหรือแฮช Nicholas Clark ให้การเปลี่ยนแปลงกับ
ประหยัดสอง ops และหนึ่ง stack push ซึ่งวัดได้ดีกว่า .เล็กน้อย
การปรับปรุง 5% สำหรับการดำเนินการเหล่านี้

· ยกเลิกการเรียกใช้ "strlen()" หลายครั้งแล้ว อาจเป็นเพราะความยาวหมดแล้ว
รู้จัก หรือโดยการปรับใช้หรือปรับปรุง API ที่ส่งผ่านความยาว นี้ได้รับความช่วยเหลือจาก
การนำ wrapper "my_sprintf()" มาใช้ ซึ่งคืนค่า C89 ที่ถูกต้อง - ความยาว
ของสตริงที่จัดรูปแบบ ก่อนหน้านี้เราไม่สามารถพึ่งพาค่าส่งคืนของ
"sprintf()" เพราะบนแพลตฟอร์มที่เก่าแต่ยังหลงเหลืออยู่ มันยังส่งคืน "char *"

· "ดัชนี" จะเร็วขึ้นหากสตริงการค้นหาถูกจัดเก็บใน UTF-8 แต่มีเฉพาะ
อักขระในช่วง Latin-1

· ตอนนี้ใช้แคชตัวอย่าง Unicode ภายในเอ็นจิน regexp แล้ว (การค้นหามีคีย์
ไม่ตรงกัน มีอยู่ตั้งแต่เริ่มใช้งานครั้งแรก) [RT #42839]

การติดตั้ง และ องค์ประกอบ การปรับปรุง


เคลื่อนย้ายได้ การติดตั้ง
ตอนนี้จะมี กำหนดค่า รองรับการสร้าง Perl tree ที่สามารถเคลื่อนย้ายได้ ถ้าคุณ กำหนดค่า กับ
"-Duserelocatableinc" จากนั้นเส้นทางใน @INC (และทุกอย่างอื่นใน %Config) ก็สามารถเป็นได้
เลือกได้ผ่านทางเส้นทางของ Perl ปฏิบัติการ

ณ เวลาเริ่มต้น หากมีเส้นทางใดใน @INC หรือ "Config" นั้น กำหนดค่า ทำเครื่องหมายว่าย้ายได้ (โดย
ขึ้นต้นด้วย ".../") จากนั้นนำหน้าไดเรกทอรี $^X สิ่งนี้ทำให้
การย้ายที่ตั้งสามารถกำหนดค่าได้สำหรับแต่ละไดเรกทอรี แม้ว่าค่าเริ่มต้นด้วย
"-Duserelocatableinc" คือทุกอย่างถูกย้ายไปที่อื่น การติดตั้งครั้งแรกเสร็จสิ้นเพื่อ
คำนำหน้าการกำหนดค่าดั้งเดิม

องค์ประกอบ การปรับปรุง
กำหนดค่า ตอนนี้ดีกว่าในการลบไฟล์ชั่วคราว ทอม คัลลาเวย์ (จาก RedHat) ด้วย
แพทช์สนับสนุนที่ทำให้ชุดของแฟล็กเสร็จสมบูรณ์ที่ส่งผ่านไปยังคอมไพเลอร์และลิงเกอร์
โดยเฉพาะอย่างยิ่งตอนนี้ "-fPIC" เปิดใช้งานบน Linux แล้ว มันจะบ่นเมื่อคุณ / dev / null
ไม่ใช่อุปกรณ์

ตัวแปรการกำหนดค่าใหม่ "d_pseudfork" ได้ไปที่ กำหนดค่าและสามารถใช้ได้เป็น
$Config{d_pseudfork} ในโมดูล "กำหนดค่า" สิ่งนี้ทำให้การสนับสนุน "ส้อม" ที่แท้จริงแตกต่างจาก
การจำลอง pseudofork ที่ใช้บนแพลตฟอร์ม Windows

Config.พ็อด และ config.sh ตอนนี้ถูกวางไว้อย่างถูกต้องสำหรับการคอมไพล์ข้าม

$Config{useshlplib} ตอนนี้เป็น 'จริง' แทนที่จะเป็น 'ใช่' เมื่อใช้ไลบรารี Perl ที่ใช้ร่วมกัน

การรวบรวม การปรับปรุง
การทำแบบคู่ขนานควรทำงานอย่างถูกต้องในขณะนี้ แม้ว่าจะยังมีปัญหาอยู่หาก "make
การทดสอบ" ได้รับคำสั่งให้ทำงานแบบขนาน

คำเตือนการคอมไพล์จำนวนมากได้รับการล้างแล้ว คำเตือนคอมไพเลอร์ที่ดื้อรั้นมากใน
"S_emulate_eaccess()" ถูกฆ่าหลังจากพยายามหกครั้ง g ++ การสนับสนุนได้รับการปรับ
โดยเฉพาะอย่างยิ่งสำหรับ FreeBSD

เอ็มเคพีพอร์ต ได้รับการบูรณาการและทั้งหมด ppport.h ไฟล์ในคอร์จะถูกสร้างโดยอัตโนมัติ
ที่เวลาสร้าง (และลบออกระหว่างการล้างข้อมูล)

การติดตั้ง การปรับปรุง
ช่างติดตั้ง ตอนนี้ใช้งานได้กับ "-Duserelocatableinc" และ "DESTDIR"

ติดตั้งperl ไม่ติดตั้งอีกต่อไป:

· ไฟล์ไลบรารีสแตติกของส่วนขยายที่ลิงก์แบบสแตติกเมื่อไลบรารี Perl ที่ใช้ร่วมกันคือ
กำลังใช้. (ไม่จำเป็น ดู "Windows" ด้านล่าง)

· SIGNATURE และ PAUSE*.ผับ (ไฟล์ CPAN)

· หมายเหตุ และ แพทช์ (ไฟล์ ExtUtils)

· แย่ และ ld2 (ไฟล์ Cygwin)

ระบบปฏิบัติการ โดยเฉพาะ การเปลี่ยนแปลง
มีคำแนะนำที่ปรับปรุงสำหรับ AIX, Cygwin, DEC/OSF, FreeBSD, HP/UX, Irix 6 Linux, MachTen,
NetBSD, OS/390, QNX, SCO, Solaris, SunOS, System V รีลีส 5.x (UnixWare 7, OpenUNIX 8),
Ultrix, UMIPS, uts และ VOS

FreeBSD

· วาง "-std=c89" และ "-ansi" หากใช้ "long long" เป็นประเภทอินทิกรัลหลัก อย่างอื่นใน
FreeBSD 6.2 (และอาจมีรุ่นอื่นๆ) ส่วนหัวของระบบจะไม่ประกาศฟังก์ชันบางอย่าง
จำเป็นโดย Perl

Solaris

· เริ่มต้นด้วย Solaris 10 เราไม่ต้องการให้มีไลบรารีที่ใช้ร่วมกันแบบมีเวอร์ชัน เพราะสิ่งเหล่านี้
มักระบุว่าเป็นห้องสมุดส่วนตัวเท่านั้น ปัญหาเหล่านี้มักเกิดขึ้นได้
เมื่อติดตั้ง SUNWbdb (Berkeley DB) ดังนั้นหากตรวจพบ Solaris 10 ให้ตั้งค่า
"ignore_versioned_solibs=y".

VMS

· อนุญาตให้ยกเลิกการเลือกคณิตศาสตร์ IEEE บน OpenVMS I64 (แต่ยังคงเป็นค่าเริ่มต้น)

· บันทึกการใช้ IEEE ใน "config.h"

· ช่วยคอมไพเลอร์ VMS รุ่นเก่าโดยใช้ "ccflags" เมื่อสร้าง "munchconfig.exe"

· อย่าพยายามสร้างส่วนขยาย "Thread" แบบเก่าบน VMS เมื่อเลือก "-Duseithreads" แล้ว

· ผ่านสตริงดิบของ "NaN" ถึง งง ทำให้เกิดการถ่ายโอนข้อมูลหลัก - ดังนั้นสตริงจึงเป็น
เปลี่ยนเป็น "*NaN*"

· t/op/stat.t การทดสอบจะทดสอบฮาร์ดลิงก์บน VMS หากได้รับการสนับสนุน

Windows

·เมื่อใช้ไลบรารี Perl ที่ใช้ร่วมกัน ติดตั้งperl ไม่ติดตั้งไฟล์ไลบรารีแบบคงที่อีกต่อไป
นำเข้าไฟล์ไลบรารีและส่งออกไฟล์ไลบรารี (ของส่วนขยายที่ลิงก์แบบสแตติก) และ
ไฟล์บูตสแตรปว่าง (ของส่วนขยายที่เชื่อมโยงแบบไดนามิก) วิธีนี้ช่วยแก้ปัญหา
การสร้าง PAR-Packer บน Win32 ด้วยการสร้างการดีบักของ Perl

· การปรับปรุงต่างๆ ในกระบวนการสร้าง win32 รวมถึงการรองรับ Visual C++ 2005
Express Edition (หรือที่เรียกว่า Visual C++ 8.x)

· เพิร์ล.exe ตอนนี้จะมีไอคอนหากสร้างด้วย MinGW หรือ Borland

· การปรับปรุงกระบวนการสร้าง perl-static.exe

· เพิ่มตัวเลือก Win32 makefile เพื่อเชื่อมโยงส่วนขยายทั้งหมดแบบสแตติก

· วินซี ไดเร็กทอรีถูกผสานเข้ากับ Win32 ไดเรกทอรี

· การทดสอบ "setlocale" ถูกเปิดใช้งานอีกครั้งสำหรับ Windows XP เป็นต้นไป

เลือก Bug แก้ไข


Unicode
ข้อบกพร่องมากมายที่เกี่ยวข้องกับการใช้งาน Unicode ภายใน (UTF-8) ได้รับการแก้ไขแล้ว ใน
โดยเฉพาะอย่างยิ่ง ข้อบกพร่องที่มีมายาวนานที่เกี่ยวข้องกับการส่งคืน Unicode ผ่าน "tie" การโอเวอร์โหลดหรือ $@
ได้หายไปแล้ว ซึ่งบางรายการไม่เคยได้รับรายงาน

"unpack" จะแปลงสตริงกลับจาก UTF-8 เป็นประเภทตัวเลขภายใน มันคือ
ประนีประนอมระหว่างความสอดคล้องอย่างสมบูรณ์ใน 5.10 กับพฤติกรรมปัจจุบันซึ่งก็คือ
มักใช้เป็น "คุณลักษณะ" ในประเภทสตริง

การใช้เลเยอร์ IO ":crlf" และ "UTF-16" ร่วมกันจะใช้งานได้

แก้ไขปัญหาเกี่ยวกับ "split", Unicode "/\s+/" และ "/ \0/"

แก้ไขข้อผิดพลาด RT #40641 - การเข้ารหัสอักขระ Unicode ในนิพจน์ทั่วไป

แก้ไขข้อผิดพลาดที่ใช้รูปแบบบางอย่างใน regexp ทำให้เกิดความตื่นตระหนก [RT #45337]

Perl ไม่มี segfaults อีกต่อไป (เนื่องจากการเรียกซ้ำภายในที่ไม่มีที่สิ้นสุด) หากอักขระของสถานที่คือ
ไม่ใช่ UTF-8 [RT #41442]:

ใช้ open ':locale';
พิมพ์ STDERR "\x{201e}"; # „

PerlIO
ความไม่สอดคล้องกันได้รับการแก้ไขในการนับอ้างอิงที่ PerlIO ใช้เพื่อติดตาม
ตัวอธิบายไฟล์ Unix และ API ที่ใช้โดยโค้ด XS เพื่อจัดการการรับและปล่อย "FILE
*"ส

มายากล
ข้อบกพร่องหลายอย่างได้รับการแก้ไขใน Magic ระบบภายในที่ใช้เพื่อใช้งานคุณสมบัติเช่น
เป็น "เน็คไท" การเสียดสีและการแบ่งปันกระทู้

ตอนนี้ "undef @array" ในอาร์เรย์ที่ผูกไว้เรียกเมธอด "CLEAR" ได้อย่างถูกต้อง

ops ระดับบิตบางตัวไม่ได้ตรวจสอบว่าข้อโต้แย้งของพวกเขามีเวทย์มนตร์มาก่อนหรือไม่
ใช้พวกเขา [RT #24816]

เวทมนตร์จะไม่ถูกเรียกใช้สองครั้งโดยนิพจน์ "\&$x" อีกต่อไป

ข้อบกพร่องในการกำหนดตัวเลขจำนวนมากและการปนเปื้อนได้รับการแก้ไขแล้ว [RT #40708]

เพิ่มรายการใหม่ใน MAGIC vtable - "svt_local" ใช้เมื่อคัดลอก
มหัศจรรย์สู่ค่าใหม่ระหว่าง "ท้องถิ่น" ทำให้มีปัญหากับการแปลเป็นภาษาท้องถิ่น
ตัวแปรที่จะแก้ไข

สำหรับรายละเอียดการใช้งาน โปรดดูที่ "ตารางเสมือนวิเศษ" ในหัวข้อ

ให้พร ล้นมือ วัตถุ ตอนนี้ โรงงาน
ภายใน perl object-ness อยู่ที่ผู้อ้างอิง ไม่ใช่การอ้างอิง แม้ว่าเมธอด
สามารถเรียกผ่านการอ้างอิงเท่านั้น อย่างไรก็ตาม การใช้งานเดิมของการโอเวอร์โหลด
แฟล็กที่เก็บไว้ที่เกี่ยวข้องกับการโอเวอร์โหลดในการอ้างอิง โดยอาศัยแฟล็กที่ถูกคัดลอก
เมื่อมีการคัดลอกข้อมูลอ้างอิงหรือตั้งค่าเป็นข้อมูลอ้างอิงใหม่ นี้ประจักษ์
ในจุดบกพร่อง - หากคุณให้พรวัตถุจากคลาสที่มีการโอเวอร์โหลดให้เป็นวัตถุ
ไม่เช่นนั้นการอ้างอิงที่มีอยู่อื่น ๆ คิดว่าพวกเขา (ยังคง) ชี้ไปที่โอเวอร์โหลด
วัตถุ เลือกเส้นทางรหัส C เหล่านี้แล้วโยนข้อผิดพลาด ในทำนองเดียวกันให้พรเป็น
คลาสโอเวอร์โหลดเมื่อมีการอ้างอิงอื่น ๆ จะส่งผลให้ไม่ใช้โอเวอร์โหลด

การใช้งานได้รับการแก้ไขสำหรับ 5.10 แต่การแก้ไขนี้เปลี่ยนความหมายของแฟล็ก
บิต จึงไม่รองรับไบนารี ดังนั้นจึงใช้กับ 5.8.9 ไม่ได้ อย่างไรก็ตาม 5.8.9 มี
วิธีแก้ปัญหาที่ใช้การแก้ไขข้อผิดพลาดเดียวกัน หากผู้อ้างอิงมีการอ้างอิงหลายรายการ
จากนั้นการอ้างอิงอื่น ๆ ทั้งหมดจะถูกระบุและแก้ไข หลีกเลี่ยงการค้นหาเต็มรูปแบบเมื่อใดก็ตามที่
เป็นไปได้โดยการสแกนศัพท์จากรูทีนย่อยปัจจุบันและอาร์กิวเมนต์
กอง

ผู้จำหน่าย Linux ที่รู้จักกันดีบางรายใช้เวอร์ชันที่ไม่สมบูรณ์ของการแก้ไขข้อผิดพลาดนี้กับ
/usr/bin/perl แล้วปิดรายงานข้อบกพร่องเกี่ยวกับปัญหาด้านประสิทธิภาพก่อนเวลาอันควรโดยไม่ต้อง
ให้คำปรึกษาย้อนกลับต้นน้ำ แค่นี้ยังไม่พอ ก็เพิกเฉยต่อ
การแก้ไขที่จำเป็นสำหรับการเปลี่ยนแปลงที่ยังไม่เผยแพร่เหล่านี้เป็นเวลา 11 เดือน จนกระทั่งเกิดแรงกดดันมหาศาล
นำไปใช้โดยลูกค้าที่จ่ายเงินที่ทนทุกข์ทรมานมายาวนาน กระตุ้นโดยความล้มเหลวที่นำเสนอ
บนบล็อกที่โดดเด่นและ Slashdot

"เข้มงวด" ตอนนี้ แพร่พันธุ์ ได้อย่างถูกต้อง เข้าไป เชือก อีวัล
ต่ำกว่า 5.8.8 และเก่ากว่า:

$ perl5.8.8 -e 'ใช้อย่างเข้มงวด; eval "ใช้ foo bar" หรือตาย $@'
ไม่พบ foo.pm ใน @INC (@INC มี: ... .) ที่ (eval 1) บรรทัด 2
BEGIN ล้มเหลว - การรวบรวมถูกยกเลิกที่ (eval 1) บรรทัดที่ 2

ต่ำกว่า 5.8.9 และใหม่กว่า:

$ perl5.8.9 -e 'ใช้อย่างเข้มงวด; eval "ใช้ foo bar" หรือตาย $@'
ห้ามใช้ "bar" แบบ Bareword ขณะใช้งาน "strict subs" ที่ (eval 1) บรรทัดที่ 1

ซึ่งอาจทำให้เกิดปัญหากับโปรแกรมที่แยกวิเคราะห์ข้อความแสดงข้อผิดพลาดและอาศัยbuggy
พฤติกรรม.

อื่นๆ แก้ไข
· ตัวสร้างโทเค็นจะไม่ถือว่า "=น่ารัก" (และคำอื่นๆ ที่ขึ้นต้นด้วย "=ตัด") เป็น a . อีกต่อไป
คำพ้องความหมายสำหรับ "=cut"

· เรียก "CORE::require"

"CORE::require" และ "CORE::do" จะถูกแยกวิเคราะห์เป็น "require" และ "do" เสมอเมื่อ
แทนที่ ตอนนี้ได้รับการแก้ไขแล้ว

·หยุดการรั่วไหลของหน่วยความจำเป็นเวลานาน / etc / groups รายการ.

· "while (my $x ...) { ...; redo }" ไม่ควร "undef $x"

ต่อหน้า "ของฉัน" ในเงื่อนไขของ "while()", "until()" หรือ "for(;;)"
วนซ้ำ ตอนนี้เราเพิ่มขอบเขตพิเศษให้กับเนื้อหาเพื่อให้ "ทำซ้ำ" ไม่ได้ "ยกเลิก"
คำศัพท์

· Pragma "เข้ารหัส" ตอนนี้ละเว้นสิ่งที่ตามหลังอักขระ "@" ใน . อย่างถูกต้อง
ตัวแปรสภาพแวดล้อม "LC_ALL" และ "LANG" [RT # 49646]

· segfault สังเกตกับบางคน gcc 3.3 การเพิ่มประสิทธิภาพได้รับการแก้ไขแล้ว

· Segfault ที่เป็นไปได้เมื่อ "unpack" ที่ใช้ในบริบทสเกลาร์ด้วยกลุ่ม "()" ได้รับการแก้ไข
[RT #50256]

· แก้ไขปัญหาที่ $! สามารถเปลี่ยนได้โดยตัวจัดการสัญญาณที่ขัดจังหวะ "ระบบ"
โทร.

· แก้ไขข้อผิดพลาด RT #37886 อนุญาตให้ยกเลิกการอ้างอิงเชิงสัญลักษณ์ในอาร์กิวเมนต์ของ "กำหนด"
แม้จะอยู่ภายใต้อิทธิพลของ "ใช้ 'ผู้อ้างอิง' ที่เข้มงวด"

· แก้ไขข้อผิดพลาด RT #43207 โดยที่ "lc"/"uc" ภายใน "sort" ส่งผลต่อค่าส่งคืน

· แก้ไขข้อผิดพลาด RT #45607 โดยที่ "*{"BONK"} = \&{"BONK"}" ทำงานไม่ถูกต้อง

· แก้ไขข้อผิดพลาด RT #35878 บ่นจาก XSUB ที่เรียกผ่าน "goto &xsub" ทำให้ Perl เสียหาย
ภายใน

· แก้ไขข้อผิดพลาด RT #32539 DynaLoader.o ถูกย้ายเข้า libperl.so เพื่อหลีกเลี่ยงความจำเป็นที่จะ
เชื่อมโยง DynaLoader เข้ากับ stub Perl ที่เรียกใช้งานได้ ด้วยสิ่งนี้ libperl.so
จัดเตรียมทุกสิ่งที่จำเป็นเพื่อให้ล่าม Perl ฝังตัวทำงานได้

· แก้ไขข้อผิดพลาด RT #36267 เพื่อให้การกำหนดแฮชที่ผูกไว้ไม่เปลี่ยนแฮชพื้นฐาน

· แก้ไขข้อผิดพลาด RT #6006, regexp แทนที่โดยใช้ตัวแปรทดแทนขนาดใหญ่ล้มเหลวบางส่วน
เวลา, เช่น เมื่อการแทนที่มีบางอย่างเช่น "${10}" (สังเกตวงเล็บ)
แทนที่จะเป็นแค่ 10 เหรียญ

· แก้ไขข้อผิดพลาด RT #45053 "Perl_newCONSTSUB()" ตอนนี้ปลอดภัยสำหรับเธรดแล้ว

ระบบปฏิบัติการ โดยเฉพาะ แก้ไข
ดาร์วิน / MacOS X

· การปรับปรุงต่างๆ ในการสร้าง 64 บิต

· เพิ่มการป้องกัน Mutex ใน "PerlIOStdio_close()" เพื่อหลีกเลี่ยงสภาวะการแข่งขัน หวังว่า
สิ่งนี้แก้ไขความล้มเหลวในการทดสอบเธรด ฟรี และ block.t.

· เพิ่มการรองรับเทอร์มินัลแบบแยกสำหรับดีบักเกอร์ พร้อมความสามารถในการอัปเดตหน้าต่าง
ชื่อเรื่อง

OS / 2

· ปัญหาในการสร้างโดยระบุ "USE_MULTI" และ "USE_ITHREADS" แต่ไม่มี
"USE_IMP_SYS" ได้รับการแก้ไขแล้ว

· "OS2::REXX" อัปเกรดเป็นเวอร์ชัน 1.04

ตรู64

· สอดคล้องนโยบายการสร้างจุดลอยตัวสำหรับ cc และ gcc.

RedHat ลินุกซ์

· ทบทวนแพทช์จาก 5.6.1 สำหรับ RH7.2 สำหรับ Intel's ICC [RT #7916] เพิ่มอีกนิด
ตรวจสอบ $Config{gccversion}

โซลาริส/i386

· ใช้ "-DPTR_IS_LONG" เมื่อใช้จำนวนเต็ม 64 บิต

VMS

· แก้ไข "PerlIO::Scalar" ในรูปแบบบันทึกไฟล์ในหน่วยความจำที่อ่านแล้ว

· การปิดท่อเมื่อออกจากกระบวนการควรจะมีประสิทธิภาพมากขึ้น

· แก้ไขข้อผิดพลาดในการจัดการทางออกของ VMS ที่ "Test::Harness" 2.64 ได้รับการแก้ไขแล้ว

· แก้ไขการทดสอบความสามารถในการล็อก "fcntl()" ใน configuration.com.

· แทนที่ "shrplib='define'" ด้วย "useshrplib='true'" บน VMS

Windows

· "File::Find" ใช้ล้มเหลวเมื่อไดเร็กทอรีเป้าหมายเป็นอักษรระบุไดรฟ์และ
"no_chdir" คือ 1 (ค่าเริ่มต้นคือ 0) [RT #41555]

· ปัญหาในการสร้างโดยระบุ "USE_MULTI" และ "USE_ITHREADS" แต่ไม่มี
"USE_IMP_SYS" ได้รับการแก้ไขแล้ว

· รหัสกระบวนการจะไม่ถูกตัดให้เหลือ 16 บิตบนแพลตฟอร์ม Windows บางรุ่นอีกต่อไป (
http://bugs.activestate.com/show_bug.cgi?id=72443 )

· แก้ไขข้อผิดพลาด RT #54828 ใน เพอร์ลิโอ.ซี โดยที่การเรียก "binmode" บน Win32 และ Cygwin อาจทำให้เกิด
ความผิดพลาดในการแบ่งส่วน

ที่มีขนาดเล็ก แก้ไข
· ขณะนี้เป็นไปได้ที่จะโอเวอร์โหลด "eq" เมื่อใช้ "nomethod"

· ปัญหาต่างๆ ในการใช้ "โอเวอร์โหลด" กับจำนวนเต็ม 64 บิตได้รับการแก้ไขแล้ว

· จำนวนการอ้างอิงของตัวอธิบายไฟล์ "PerlIO" ได้รับการจัดการอย่างถูกต้องแล้ว

· บน VMS จุด Escape จะถูกรักษาไว้เมื่อแปลงเป็นไวยากรณ์ Unix

· "คีย์ %+" จะไม่แสดงคำเตือน 'คลุมเครือ' อีกต่อไป

· การใช้ "#!perl -d" อาจทำให้เกิดการยืนยัน ซึ่งได้รับการแก้ไขแล้ว

· อย่าทำให้การอ้างอิงโค้ดผูกมัดใน @INC เมื่อเรียก "require"

· การอ้างอิงโค้ดใน @INC จะรายงานชื่อไฟล์ที่ถูกต้องเมื่อใช้ "__FILE__"

· ความกว้างและความแม่นยำใน sprintf ไม่สามารถจัดการอักขระที่เกิน 255 ได้อย่างถูกต้อง [RT
#40473]

· แสดงรายการส่วนที่มีดัชนีอยู่นอกช่วง ตอนนี้ทำงานอย่างสม่ำเสมอมากขึ้น [RT #39882]

· การเปลี่ยนแปลงที่นำมาใช้กับ perl 5.8.1 ทำให้การแยกวิเคราะห์อาร์กิวเมนต์ของแบบฟอร์มไม่ได้ผล
"-foo=bar" โดยมี "-s" ในบรรทัด <#!> สิ่งนี้ได้รับการแก้ไขแล้ว ดู
http://bugs.activestate.com/show_bug.cgi?id=43483

· "tr///" เป็น threadsafe แล้ว ก่อนหน้านี้มันเก็บ swash ไว้ใน OP ของมันมากกว่า
กว่าในแผ่น

· pod2html เลเบลจุดยึดอย่างสม่ำเสมอมากขึ้นและจัดการรายการคำจำกัดความที่ซ้อนกันได้ดียิ่งขึ้น

· ขยายการยับยั้งการล้าง "เธรด" เพื่อรวม "perl_free()" และ
"perl_destruct()"

· ในบางระบบ การเปลี่ยนแปลงของ $ENV{TZ} จะไม่ได้รับการยอมรับจากผู้อ้างอิงเสมอไป
โทรไปที่ "localtime_r()" ตอนนี้ Perl บังคับให้มีการตรวจสอบสภาพแวดล้อมเกี่ยวกับสิ่งเหล่านี้
ระบบ

· ตัวแปรพิเศษ $^R ถูกตั้งค่าให้มีความสม่ำเสมอมากขึ้นเมื่อเรียกใช้งาน regexps โดยใช้คำสั่ง
"(?{...})" สร้าง โดยเฉพาะอย่างยิ่ง มันจะยังคงถูกตั้งค่าแม้ว่า backreferences หรือ
รูปแบบย่อยที่เป็นตัวเลือก "(?:...)?" ถูกนำมาใช้

ใหม่ or เปลี่ยน การวินิจฉัย


ตื่นตกใจ: sv_สับ %s
ข้อผิดพลาดร้ายแรงใหม่นี้เกิดขึ้นเมื่อรูทีน C "Perl_sv_chop()" ถูกส่งผ่านตำแหน่งที่
ไม่อยู่ภายในบัฟเฟอร์สตริงของสเกลาร์ สิ่งนี้เกิดจากรหัส XS ของรถบั๊กกี้และที่นี้
ไม่สามารถกู้คืนคะแนนได้

สูงสุด นับ of คาราคาซัง สัญญาณ (%NS) เกินกว่าที่กำหนด
ข้อผิดพลาดร้ายแรงใหม่นี้เกิดขึ้นเมื่อต้องยกเลิกกระบวนการ Perl เนื่องจากรอดำเนินการมากเกินไป
สัญญาณซึ่งถูกผูกไว้เพื่อป้องกันไม่ให้ Perl สามารถจัดการกับสัญญาณขาเข้าเพิ่มเติมได้
อย่างปลอดภัย

ตื่นตกใจ: ความพยายาม ไปยัง โทรศัพท์ %s in %s
ข้อผิดพลาดร้ายแรงใหม่นี้เกิดขึ้นเมื่อใช้ตัวดำเนินการทดสอบไฟล์เวอร์ชัน ACL ในที่ที่เป็น
ไม่สามารถใช้งานได้บนแพลตฟอร์มปัจจุบัน การตรวจสอบก่อนหน้านี้หมายความว่าไม่ควรเป็น
เป็นไปได้ที่จะได้รับสิ่งนี้

ดึงขนาด กลับ a เชิงลบ ความคุ้มค่า
ข้อผิดพลาดใหม่ระบุว่าอาร์เรย์ที่ผูกไว้อ้างว่ามีจำนวนองค์ประกอบติดลบ

ลาด อัพเกรด %s (%ง) ไปยัง %d
ก่อนหน้านี้ข้อผิดพลาดภายในจากรหัสอัปเกรด SV นั้นให้ข้อมูลน้อยกว่า ลาด
อัพเกรด ที่ ชนิด of เกลา. ตอนนี้รายงานประเภทภายในปัจจุบันและประเภทใหม่
ร้องขอ

%s อาร์กิวเมนต์ is ไม่ a กัญชา or อาร์เรย์ ธาตุ or a รูทีนย่อย
ข้อผิดพลาดนี้ เกิดขึ้นหากมีการระบุอาร์กิวเมนต์ที่ไม่ถูกต้องให้กับ "มีอยู่" ตอนนี้รวมถึง
"หรือรูทีนย่อย" [RT #38955]

ไม่สามารถ ทำ ไม่สามารถแทนที่ได้ ในตัว %s ร้ายแรง
ข้อผิดพลาดนี้ใน "ร้ายแรง" ก่อนหน้านี้ไม่แสดงชื่อของบิวด์อินที่เป็นปัญหา (ตอนนี้
แสดงโดย %s ด้านบน)

ที่ไม่รู้จัก ตัวอักษร '%NS' in คอลัมน์ %d
ข้อผิดพลาดนี้ไม่ได้ระบุคอลัมน์ก่อนหน้านี้

สาขา ด้านนอก เชือก
ตอนนี้สามารถสร้างขึ้นโดย "ค้นหา" บนตัวจัดการไฟล์โดยใช้ "PerlIO::scalar"

โมฆะ หลบหนี in ที่ระบุไว้ การเข้ารหัส in regexp; โดดเด่น by <- ที่นี่ in นางสาว/
ข้อผิดพลาดใหม่ ซึ่งเป็นส่วนหนึ่งของการแก้ไข RT #40641 เพื่อจัดการกับการเข้ารหัส Unicode
อักขระในความคิดเห็นนิพจน์ทั่วไป

ของคุณ เครื่อง ไม่ สนับสนุน ดัมพ์/ดัมพ์
มีข้อผิดพลาดร้ายแรงที่ให้ข้อมูลมากขึ้นเมื่อเรียก "ดัมพ์" ใน Win32 และ Cygwin (เพราะว่า
จุดประสงค์ของ "ดัมพ์" คือการยกเลิกด้วยคอร์ดัมพ์ และไม่สามารถผลิตคอร์ดัมพ์ได้บน
แพลตฟอร์มเหล่านี้มีประโยชน์มากกว่าการออกจากระบบอย่างเงียบๆ)

เปลี่ยน internals


ขณะนี้แหล่งที่มาของ Perl สามารถคอมไพล์ด้วยคอมไพเลอร์ C ++ แทนคอมไพเลอร์ C อา
รายละเอียดการใช้งานที่จำเป็นคือภายใต้ C ++ มาโคร "XS" ที่ใช้เพื่อกำหนด XSUBs
ขณะนี้มีคำจำกัดความ "ภายนอก" "C" ผลข้างเคียงของเรื่องนี้ก็คือ C + + รหัสที่ใช้
การก่อสร้าง

typedef XS (SwigPerlWrapper);

ตอนนี้ต้องเขียน

พิมพ์ XSPROTO (SwigPerlWrapper);

โดยใช้มาโคร "XSPROTO" ใหม่ เพื่อคอมไพล์ นามสกุล C จะไม่ได้รับผลกระทบแม้ว่า
ส่วนขยาย C ก็สนับสนุนให้ใช้ "XSPROTO" เช่นกัน การเปลี่ยนแปลงนี้มีอยู่ใน 5.10.0
ปล่อย Perl ดังนั้นรหัสใด ๆ ที่ได้รับการดูแลอย่างแข็งขันที่เกิดขึ้นกับโครงสร้างนี้
ควรได้รับการดัดแปลงแล้ว รหัสที่ต้องการเปลี่ยนจะล้มเหลวด้วยการรวบรวม
ความผิดพลาด

"ตั้งค่า" เวทย์มนตร์ในการโลคัลไลซ์/กำหนดให้กับตัวแปรเวทย์มนตร์ตอนนี้จะทริกเกอร์สำหรับ .เท่านั้น
ภาชนะ เวทมนตร์กล่าวคือใช้สำหรับ %ENV หรือ %SIG แต่ไม่ใช่สำหรับ $#array

สามารถใช้มาโคร API ใหม่ "newSVpvs()" แทนโครงสร้างเช่น
"newSVpvn("ISA", 3)" มันใช้ค่าคงที่สตริงเดียวและที่เวลาคอมไพล์ C จะกำหนด
ความยาวของมัน

ฟังก์ชัน API ใหม่ "Perl_newSV_type()" สามารถใช้แทน . ได้อย่างมีประสิทธิภาพมากขึ้น
สำนวนทั่วไป

สวี = ใหม่SV(0);
sv_upgrade(sv, ชนิด);

ในทำนองเดียวกัน "Perl_newSVpvn_flags()" สามารถใช้เพื่อรวม "Perl_newSVpv()" กับ
"Perl_sv_2mortal()" หรือเทียบเท่า "Perl_sv_newmortal()" กับ "Perl_sv_setpvn()"

เพิ่มมาโครใหม่สองรายการ "mPUSHs()" และ "mXPUSHs()" เพื่อให้ง่ายต่อการผลัก SV ของมนุษย์
ลงบนกอง พวกมันถูกใช้เพื่อแก้ไขจุดบกพร่องหลายอย่างที่ค่าในสแต็กไม่มี
ถูกประหารชีวิต

เพิ่มฟังก์ชัน "Perl_signbit()" เพื่อทดสอบเครื่องหมายของ "NV" มันแมปกับระบบ
หนึ่งเมื่อมี

"Perl_av_reify()", "Perl_lex_end()", "Perl_mod()", "Perl_op_clear()", "Perl_pop_return()",
"Perl_qerror()", "Perl_setdefout()", "Perl_vivify_defelem()" และ "Perl_yylex()" อยู่ในขณะนี้
มองเห็นได้ในส่วนขยาย สิ่งนี้จำเป็นเพื่อให้ "Data::Alias" ทำงานบน Windows ได้

"Perl_find_runcv()" ปรากฏให้เห็นในส่วนขยายหลักของ Perl สิ่งนี้จำเป็นต้องอนุญาต
"Sub::Current" เพื่อทำงานบน Windows

ฟังก์ชัน "ptr_table*" พร้อมใช้งานใน Perl แบบ unthreaded แล้ว "เก็บได้" ใช้ประโยชน์จาก
นี้.

มีการทำความสะอาดภายในเล็กๆ น้อยๆ มากมาย โดยเฉพาะอย่างยิ่ง,
"Perl_sv_upgrade()" ถูกทำให้ง่ายขึ้นอย่างมากด้วยเส้นทางรหัสตรง
ที่ใช้ "memset()" และ "memcpy()" เพื่อเริ่มต้นเนื้อหาใหม่ แทนที่จะกำหนดผ่าน
ตัวแปรชั่วคราวหลายตัว นอกจากนี้ยังได้ประโยชน์จากการลดความซับซ้อนและการขจัดความซ้ำซ้อน
ของรหัสการจัดการเวที

มีการปรับปรุงเล็กน้อยจำนวนมากในฐานโค้ดเนื่องจากรายงานจาก Coverity
ตัววิเคราะห์รหัสคงที่

การใช้งานที่ถูกต้องและเอกสารประกอบของ "Perl_gv_stashpv()", "Perl_gv_stashpvn()",
ฟังก์ชัน "Perl_gv_stashsv()" (พารามิเตอร์ตัวสุดท้ายคือบิตมาสก์ ไม่ใช่บูลีน)

มาโคร "PERL_SYS_INIT", "PERL_SYS_INIT3" และ "PERL_SYS_TERM" ถูกเปลี่ยนเป็น
ฟังก์ชั่น

"PERLSYS_TERM" ไม่ต้องการบริบทอีกต่อไป "PerlIO_teardown()" ถูกเรียกโดยไม่มี a
บริบทและเอาต์พุตการดีบักในฟังก์ชันนี้ถูกปิดใช้งานเนื่องจากจำเป็น
ว่ามีล่ามอยู่ ซึ่งเป็นสมมติฐานที่ไม่ถูกต้อง ณ เวลาสิ้นสุด

ตัวเลือกเวลาคอมไพล์ทั้งหมดที่ส่งผลต่อความเข้ากันได้ของไบนารีถูกจัดกลุ่มเข้าด้วยกันเป็น
ตัวแปรส่วนกลาง ("PL_bincompat_options")

ค่าของ "PERL_REVISION", "PERL_VERSION" และ "PERL_SUBVERSION" ถูกรวมเข้าด้วยกันแล้ว
ตัวแปรส่วนกลาง (และด้วยเหตุนี้ในไลบรารี Perl ที่ใช้ร่วมกัน) นอกจากนี้ภายใต้
"MULTIPLICITY" ตอนนี้ Perl ที่เรียกใช้งานได้จะบันทึกขนาดของโครงสร้างล่าม
(รวมและสำหรับรุ่นนี้) ควบคู่ไปกับ "PL_bincompat_options" ซึ่งจะทำให้ 5.8.10
(และภายหลัง) เมื่อรวบรวมกับไลบรารี Perl ที่ใช้ร่วมกัน เพื่อดำเนินการตรวจสอบสติใน
"main()" เพื่อตรวจสอบว่าไลบรารีที่ใช้ร่วมกันนั้นเข้ากันได้กับไบนารีจริง ๆ

การอ้างอิงเชิงสัญลักษณ์สามารถฝัง NUL ได้แล้ว ฟังก์ชั่นสาธารณะใหม่
"Perl_get_cvn_flags()" สามารถใช้ในส่วนขยายได้ หากคุณต้องจัดการกับมัน

แมโคร ทำความสะอาด
รหัสหลักและรหัส XS ใน ต่อ ที่ไม่ได้ใช้งานแบบ dual-live บน CPAN ไม่ใช้คำสั่ง .อีกต่อไป
มาโคร "PL_na", "NEWSV()", "Null()", "Nullav", "Nullcv", "Nullhv", "Nullhv" ฯลฯ. การใช้งาน
หมดกำลังใจในโค้ดใหม่ โดยเฉพาะ "PL_na" ซึ่งเป็นผลงานที่มีประสิทธิภาพเพียงเล็กน้อย

ใหม่ การทดสอบ


โมดูลจำนวนมากที่อัปเดตจาก CPAN รวมการทดสอบใหม่ การทดสอบเฉพาะแกนบางส่วนได้รับ
เพิ่ม:

ต่อ/DynaLoader/t/DynaLoader.t
การทดสอบสำหรับโมดูล "DynaLoader"

t/com/fold.t
การทดสอบการพับแบบคงที่เวลาคอมไพล์

t/io/pvbm.t
รวมการทดสอบจาก 5.10.0 ซึ่งตรวจสอบว่าไม่มีการโต้ตอบที่ไม่คาดคิด
ระหว่างประเภทภายใน "PVBM" และ "PVGV"

t/lib/proxy_constant_subs.t
การทดสอบรูปแบบใหม่ของรูทีนย่อยคงที่

t/op/attrhand.t
การทดสอบ "แอตทริบิวต์ :: ตัวจัดการ"

t/op/dbm.t
การทดสอบสำหรับ "dbmopen"

t/op/inccode-tie.t
เรียกการทดสอบทั้งหมดใน t/op/inccode.t หลังจากผูก @INC ครั้งแรก

t/op/incfilter.t
การทดสอบตัวกรองต้นทางที่ส่งคืนจากการอ้างอิงโค้ดใน @INC

t/op/kill0.t
การทดสอบสำหรับ RT #30970

t/op/qrstack.t
การทดสอบสำหรับ RT #41484

t/op/qr.t
ทดสอบโครงสร้าง "qr//"

t/op/regexp_qr_embed.t
ทดสอบโครงสร้าง "qr//" ภายใน regexp อื่น

t/op/regexp_qr.t
ทดสอบโครงสร้าง "qr//"

t/op/rxcode.t
การทดสอบสำหรับ RT #32840

t/op/studytied.t
การทดสอบสำหรับ "การศึกษา" เกี่ยวกับสเกลาร์ที่ผูกไว้

t/op/substT.t
การทดสอบสำหรับ "subst" ทำงานภายใต้โหมด "-T"

t/op/ symbolcache.t
ทดสอบ "undef" และ "delete" ในรายการ stash ที่ผูกไว้กับรูทีนย่อยหรือ
วิธีการ

t/op/upgrade.t
การทดสอบสำหรับ "Perl_sv_upgrade()"

t/mro/package_aliases.t
MRO ทดสอบ "isa" และชื่อแทนแพ็คเกจ

t/pod/สองครั้ง.t
ทดสอบการเรียก "Pod::Parser" สองครั้ง

t/run/cloxec.t
ทดสอบการสืบทอด file descriptor ข้าม "exec" (close-on-exec)

t/uni/cache.t
ทดสอบรหัสแคช UTF-8

t/uni/chr.t
ทดสอบว่าการเข้ารหัสแบบแปลกๆ ไม่ทำให้ "Perl_pp_chr()" หงุดหงิด

t/uni/greek.t
การทดสอบสำหรับ RT #40641

t/uni/latin2.t
การทดสอบสำหรับ RT #40641

t/uni/overload.t
ทดสอบการส่งคืน Unicode จากค่าที่โอเวอร์โหลด

t/uni/tie.t
ทดสอบการส่งคืน Unicode จากตัวแปรที่ผูกไว้

ที่รู้จักกัน ปัญหา


ไม่มีข้อบกพร่องใหม่ที่รู้จัก

อย่างไรก็ตาม โปรแกรมที่อาศัยข้อบกพร่องที่ได้รับการแก้ไขจะมีปัญหา มากมายเช่นกัน
การแก้ไขข้อผิดพลาดใน 5.10.0 ไม่สามารถย้อนกลับไปยังสาขา 5.8.x ได้ เนื่องจากจำเป็นต้องใช้
การเปลี่ยนแปลงที่เข้ากันไม่ได้กับไบนารีหรือเนื่องจากการเปลี่ยนแปลงโค้ดมีขนาดใหญ่เกินไปและด้วยเหตุนี้
เสี่ยงเกินไปที่จะรวม

เรามีแค่แรงงานอาสาสมัครที่จำกัด และภาระในการบำรุงรักษาก็เพิ่มมากขึ้น
ซับซ้อน. ดังนั้น นี่จะเป็นการเปิดตัวซีรีส์ 5.8.x ที่สำคัญครั้งสุดท้าย อนาคตใด ๆ
การเปิดตัว 5.8.x มีแนวโน้มที่จะจัดการกับปัญหาด้านความปลอดภัยและการสร้างแพลตฟอร์มเท่านั้น
ความล้มเหลว ดังนั้นคุณควรมองหาการย้ายไปยัง 5.10.x หากคุณยังไม่ได้เริ่ม
อีกทางหนึ่ง หากข้อกำหนดทางธุรกิจจำกัดให้คุณใช้ 5.8.x ต่อไป คุณอาจ
ต้องการพิจารณาการสนับสนุนทางการค้าจากบริษัทต่างๆ เช่น ActiveState

ระบบปฏิบัติการ โดยเฉพาะ หมายเหตุ :


Win32
ตอนนี้ "readdir()", "cwd()", $^X และ @INC ใช้ชื่อไฟล์อื่น (แบบสั้น) หากชื่อยาว
อยู่นอกหน้ารหัสปัจจุบัน (Jan Dubois)

วันที่อัพเดท โมดูล

· "Win32" อัปเกรดเป็นเวอร์ชัน 0.38 ขณะนี้มีเอกสารตอบกลับ 'WinVista' จาก
"GetOSName" และรองรับการยกระดับสิทธิ์ของ Vista ใน "IsAdminUser" การสนับสนุน
อักขระ Unicode ในชื่อพาธ ปรับปรุงความเข้ากันได้ของ cygwin และ Win64

· "Win32API" อัปเดตเป็น 0.1001_01

· เพิ่มการสนับสนุน "killpg ()" ใน "MSWin32" (Jan Dubois)

· อัปเกรด "File::Spec::Win32" เป็นเวอร์ชัน 3.2701

OS / 2
วันที่อัพเดท โมดูล

· "OS2::Process" อัปเกรดเป็น 1.03

Ilya Zakharevich ได้เพิ่มและบันทึกฟังก์ชัน "Window*" และ "Clipbrd*" หลายฟังก์ชัน

· "OS2::REXX::DLL", "OS2::REXX" อัปเดตเป็นเวอร์ชัน 1.03

VMS
วันที่อัพเดท โมดูล

· "DCLsym" อัปเกรดเป็นเวอร์ชัน 1.03

· "Stdio" อัปเกรดเป็นเวอร์ชัน 2.4

· "VMS::XSSymSet" อัปเกรดเป็น 1.1

ข่าวร้าย


Nick Ing-Simmons แฮ็กเกอร์ Perl ที่รู้จักกันมานาน ผู้เขียนโมดูล "Tk" และ "Encode" เพอร์ลิโอ.ซี
ในแกนกลางและ 5.003_02 Pumpking เสียชีวิตด้วยอาการหัวใจวายเมื่อวันที่ 25 กันยายน 2006 เขาจะ
จะพลาด

กิตติกรรมประกาศ


งานบางส่วนในข่าวเผยแพร่นี้ได้รับทุนจากการให้ทุน TPF

Steve Hay ทำงานเบื้องหลังเพื่อหาสาเหตุของความแตกต่างระหว่าง core
โมดูล รุ่น CPAN และรุ่นหลักก่อนหน้า และวิธีที่ดีที่สุดในการแก้ไข
พวกเขา. เขาไม่ต้องการทำมันอีก ฉันรู้ความรู้สึกนี้และดีใจมากที่เขาทำแบบนั้น
ครั้งนี้แทนฉัน

Paul Fenwick ได้รวบรวมทีมอาสาสมัคร 18 คนซึ่งล้มเหลวในการเขียนสิ่งนี้
เอกสาร. โดยเฉพาะอย่างยิ่ง Bradley Dean, Eddy Tan และ Vincent Pit ให้ครึ่งหนึ่งของทีม
การสนับสนุน

ชเวิร์นตรวจสอบรายการเวอร์ชันโมดูลที่อัปเดตแล้ว โดยแก้ไขข้อผิดพลาดเล็กน้อยที่ฉัน
(และคนอื่นๆ) พลาดไป ทั้งระบุเวอร์ชันโมดูลผิด และเปลี่ยนโมดูล
ที่ไม่อยู่ในรายการ

ทีม QA จากเบอร์ลินของ Andreas Koenig และ Slaven Rezic สร้างขึ้นใหม่อย่างไม่รู้จักเหน็ดเหนื่อย
สแนปชอต ทดสอบ CPAN เกือบทั้งหมดกับพวกเขา แล้วระบุการเปลี่ยนแปลง
รับผิดชอบต่อการถดถอยของโมดูลใด ๆ เพื่อให้แน่ใจว่ามีข้อบกพร่องการแสดงตัวหยุดหลายตัว
กระทืบก่อนที่ผู้สมัครรุ่นแรกจะถูกตัดออก

ผู้มอบอำนาจหลักอื่นๆ มีส่วนทำให้การเปลี่ยนแปลงส่วนใหญ่ และใช้แพตช์ส่วนใหญ่
ส่งโดยผู้มีส่วนร่วมหลายร้อยรายที่ระบุไว้ใน ผู้เขียน.

และแน่นอน แลร์รี่ วอลล์ ถ้าไม่มีใคร เราก็ไม่มี Perl

การรายงาน Bugs


หากคุณพบว่าสิ่งที่คุณคิดว่าเป็นข้อบกพร่อง คุณอาจตรวจสอบบทความที่โพสต์ล่าสุดใน
กลุ่มข่าว comp.lang.perl.misc และฐานข้อมูลจุดบกพร่องของ Perl ที่ http://bugs.perl.org. ที่นั่น
อาจจะเป็นข้อมูลที่ http://www.perl.org, หน้าแรกของ Perl

หากคุณเชื่อว่าคุณมีข้อบกพร่องที่ไม่ได้รายงาน โปรดเรียกใช้ เพิร์ลบั๊ก โปรแกรมที่มาพร้อมกับ
การปล่อยตัวของคุณ อย่าลืมตัดแต่งบั๊กของคุณให้เป็นกรณีทดสอบเล็กๆ แต่เพียงพอ ข้อบกพร่องของคุณ
รายงานพร้อมกับผลลัพธ์ของ "perl -V" จะถูกส่งไปที่ [ป้องกันอีเมล] ที่จะ
วิเคราะห์โดยทีม Perl porting คุณสามารถเรียกดูและค้นหาข้อบกพร่องของ Perl 5 ได้ที่
http://bugs.perl.org/

หากจุดบกพร่องที่คุณกำลังรายงานมีนัยด้านความปลอดภัย ซึ่งทำให้ไม่เหมาะสมต่อ
ส่งไปยังรายชื่อผู้รับจดหมายที่เก็บถาวรแล้วกรุณาส่งไปที่
[ป้องกันอีเมล]. สิ่งนี้ชี้ไปที่การสมัครรับข้อมูลแบบปิด
ซึ่งรวมถึงผู้ให้คำมั่นหลักทั้งหมด ซึ่งจะสามารถช่วยประเมินผลกระทบได้
ของปัญหา หาแนวทางแก้ไข และช่วยประสานงานการออกแพตช์เพื่อ
บรรเทาหรือแก้ไขปัญหาในทุกแพลตฟอร์มที่รองรับ Perl ได้โปรดเท่านั้น
ใช้ที่อยู่นี้สำหรับปัญหาด้านความปลอดภัยใน Perl core ไม่ใช่สำหรับโมดูลอย่างอิสระ
เผยแพร่บน CPAN

ใช้ perl589delta ออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

  • 1
    รับรองความถูกต้อง
    รับรองความถูกต้อง
    AuthPass เป็นรหัสผ่านโอเพ่นซอร์ส
    ผู้จัดการด้วยการสนับสนุนที่เป็นที่นิยมและ
    Keepass ที่พิสูจน์แล้ว (kdbx 3.x และ kdbx 4.x ...
    ดาวน์โหลด authpass
  • 2
    Zabbix
    Zabbix
    Zabbix เป็น open ระดับองค์กร
    โซลูชันการตรวจสอบแบบกระจายแหล่งที่มา
    ออกแบบมาเพื่อตรวจสอบและติดตาม
    ประสิทธิภาพและความพร้อมใช้งานของเครือข่าย
    เซิร์ฟเวอร์ อุปกรณ์...
    ดาวน์โหลด Zabbix
  • 3
    เคดิฟ3
    เคดิฟ3
    ที่เก็บนี้ไม่ได้รับการดูแลอีกต่อไป
    และเก็บไว้เพื่อวัตถุประสงค์ในการเก็บถาวร ดู
    https://invent.kde.org/sdk/kdiff3 for
    รหัสใหม่ล่าสุดและ
    https://download.kde.o...
    ดาวน์โหลด KDiff3
  • 4
    USBLoaderGX
    USBLoaderGX
    USBLoaderGX เป็น GUI สำหรับ
    USB Loader ของ Waninkoko ขึ้นอยู่กับ
    ลิบวิกี จะช่วยให้รายการและ
    เปิดตัวเกม Wii เกม Gamecube และ
    homebrew บน Wii และ WiiU...
    ดาวน์โหลด USBLoaderGX
  • 5
    Firebird
    Firebird
    Firebird RDBMS นำเสนอคุณสมบัติ ANSI SQL
    & ทำงานบน Linux, Windows &
    หลายแพลตฟอร์ม Unix คุณสมบัติ
    การทำงานพร้อมกันและประสิทธิภาพที่ยอดเยี่ยม
    & พลัง...
    ดาวน์โหลด Firebird
  • 6
    Kompozer
    Kompozer
    KompoZer เป็นโปรแกรมแก้ไข HTML wysiwyg โดยใช้
    ฐานโค้ด Mozilla Composer เนื่องจาก
    การพัฒนาของ Nvu ถูกหยุดลง
    ในปี 2005 KompoZer แก้ไขข้อบกพร่องมากมายและ
    เพิ่มเ...
    ดาวน์โหลดโปรแกรม KompoZer
  • เพิ่มเติม»

คำสั่ง Linux

Ad