Amazon Best VPN GoSearch

OnWorks favicon

perl58delta - ອອນລາຍໃນຄລາວ

ເປີດໃຊ້ perl58delta ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີຜ່ານ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ນີ້ແມ່ນຄໍາສັ່ງ perl58delta ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ໂຄງການ:

NAME


perl58delta - ແມ່ນຫຍັງໃຫມ່ສໍາລັບ perl v5.8.0

ລາຍລະອຽດ


ເອກະສານນີ້ອະທິບາຍຄວາມແຕກຕ່າງລະຫວ່າງການປ່ອຍ 5.6.0 ແລະການປ່ອຍ 5.8.0.

ການແກ້ໄຂຂໍ້ບົກພ່ອງຫຼາຍຢ່າງໃນ 5.8.0 ໄດ້ຖືກເຫັນແລ້ວໃນການປ່ອຍການບໍາລຸງຮັກສາ 5.6.1 ນັບຕັ້ງແຕ່
ການປ່ອຍທັງສອງໄດ້ຖືກເກັບຮັກສາໄວ້ຢ່າງໃກ້ຊິດ (ໃນຂະນະທີ່ 5.8.0 ຍັງຖືກເອີ້ນ
5.7.something).

ການປ່ຽນແປງທີ່ປະສົມປະສານເຂົ້າໃນການປ່ອຍ 5.6.1 ແມ່ນຫມາຍ "[561]". ຈໍານວນຫຼາຍເຫຼົ່ານີ້
ການ​ປ່ຽນ​ແປງ​ໄດ້​ຮັບ​ການ​ພັດ​ທະ​ນາ​ເພີ່ມ​ເຕີມ​ນັບ​ຕັ້ງ​ແຕ່ 5.6.1 ຖືກ​ປ່ອຍ​ອອກ​ມາ​ເມື່ອ​, ເຫຼົ່າ​ນັ້ນ​ແມ່ນ​ຫມາຍ "[561+]".

ທ່ານ​ສາ​ມາດ​ເບິ່ງ​ບັນ​ຊີ​ລາຍ​ການ​ຂອງ​ການ​ປ່ຽນ​ແປງ​ໃນ 5.6.1 ປ່ອຍ (ທັງ​ສອງ​ຈາກ​ການ​ປ່ອຍ 5.005_03 ແລະ
ການປ່ອຍ 5.6.0) ໂດຍການອ່ານ perl561delta.

Highlights In 5.8.0


· ຮອງຮັບ Unicode ດີກວ່າ

· ການຈັດຕັ້ງປະຕິບັດ IO ໃໝ່

· ການ​ປະ​ຕິ​ບັດ​ກະ​ທູ້​ໃຫມ່​

·ຄວາມຖືກຕ້ອງຂອງຕົວເລກທີ່ດີກວ່າ

·ສັນຍານຄວາມປອດໄພ

· ໂມດູນໃໝ່ຫຼາຍອັນ

· ການທົດສອບການຖົດຖອຍຢ່າງກວ້າງຂວາງ

ບໍ່ເຂົ້າກັນໄດ້ ການປ່ຽນແປງ


ຖານສອງ ຄວາມບໍ່ເຂົ້າກັນ
Perl 5.8 is ບໍ່ binary ເຂົ້າກັນໄດ້ ກັບ ກ່ອນຫນ້ານັ້ນ ປ່ອຍອອກມາ of Perl.

ທ່ານ ມີ to ຮວບຮວມຄືນໃ່ ຂອງ​ທ່ານ XS ໂມດູນ.

(ໂມດູນ Perl ບໍລິສຸດຄວນສືບຕໍ່ເຮັດວຽກ.)

ເຫດຜົນສໍາຄັນສໍາລັບການຢຸດແມ່ນສະຖາປັດຕະຍະກໍາ IO ໃຫມ່ທີ່ເອີ້ນວ່າ PerlIO. PerlIO
ເປັນ​ການ​ຕັ້ງ​ຄ່າ​ໃນ​ຕອນ​ຕົ້ນ​ເນື່ອງ​ຈາກ​ວ່າ​ບໍ່​ມີ​ມັນ​ຫຼາຍ​ລັກ​ສະ​ນະ​ໃຫມ່​ຂອງ Perl 5.8 ບໍ່​ສາ​ມາດ​ເປັນ
ໃຊ້. ໃນຄໍາສັບຕ່າງໆອື່ນໆ: ທ່ານພຽງແຕ່ຕ້ອງໄດ້ລວບລວມໂມດູນຂອງທ່ານທີ່ມີລະຫັດ XS, ຂໍອະໄພ
ກ່ຽວກັບວ່າ.

ໃນການປ່ອຍ Perl ໃນອະນາຄົດ, ໂມດູນ XS ທີ່ບໍ່ຮູ້ຈັກ PerlIO ອາດຈະບໍ່ໄດ້ຮັບການສະຫນັບສະຫນູນຢ່າງສົມບູນ.
ນີ້ບໍ່ຄວນເປັນເລື່ອງຍາກເກີນໄປສໍາລັບຜູ້ຂຽນໂມດູນ, ຢ່າງໃດກໍຕາມ: PerlIO ໄດ້ຖືກອອກແບບເປັນ
ການປ່ຽນແທນ drop-in (ໃນລະດັບລະຫັດແຫຼ່ງ) ສໍາລັບການໂຕ້ຕອບ stdio.

ຂຶ້ນຢູ່ກັບເວທີຂອງທ່ານ, ຍັງມີເຫດຜົນອື່ນໆທີ່ພວກເຮົາຕັດສິນໃຈທີ່ຈະທໍາລາຍຖານສອງ
ຄວາມເຂົ້າກັນໄດ້, ກະລຸນາອ່ານຕໍ່.

64-bit ແພລະຕະຟອມ ແລະ ສູນການຄ້າ
ຖ້າຕົວຊີ້ຂອງເຈົ້າກວ້າງ 64 ບິດ, Perl malloc ຈະບໍ່ຖືກໃຊ້ອີກຕໍ່ໄປເພາະມັນເຮັດ
ບໍ່ດີກັບຕົວຊີ້ 8-byte. ນອກຈາກນີ້, ປົກກະຕິແລ້ວລະບົບ mallocs ໃນເວທີດັ່ງກ່າວ
ມັນຖືກປັບປຸງໃຫ້ດີຂຶ້ນຫຼາຍສໍາລັບແບບຈໍາລອງຫນ່ວຍຄວາມຈໍາຂະຫນາດໃຫຍ່ເຊັ່ນ Perl malloc. ຄວາມ​ຊົງ​ຈໍາ​ບາງ -
ຄໍາຮ້ອງສະຫມັກ Perl ຫິວເຊັ່ນ PDL ເຮັດວຽກບໍ່ດີກັບ Malloc ຂອງ Perl. ສຸດທ້າຍ, ອື່ນໆ
ແອັບພລິເຄຊັນຫຼາຍກວ່າ Perl (ເຊັ່ນ mod_perl) ມີແນວໂນ້ມທີ່ຈະມັກລະບົບ malloc. ດັ່ງກ່າວ
ເວທີປະກອບມີ Alpha ແລະ 64-bit HPPA, MIPS, PPC, ແລະ Sparc.

Aix Dynaloading
AIX dynaloading ໃນປັດຈຸບັນໃຊ້ໃນ AIX ປ່ອຍ 4.3 ແລະໃຫມ່ກວ່າການໂຕ້ຕອບ dlopen native ຂອງ
AIX ແທນການໂຕ້ຕອບແບບຈໍາລອງແບບເກົ່າ. ການ​ປ່ຽນ​ແປງ​ນີ້​ອາດ​ຈະ​ແຕກ​ຫັກ​ກັບ​ຄືນ​ໄປ​ບ່ອນ​
ຄວາມເຂົ້າກັນໄດ້ກັບໂມດູນທີ່ລວບລວມ. ການ​ປ່ຽນ​ແປງ​ແມ່ນ​ເຮັດ​ໃຫ້ Perl ສອດ​ຄ່ອງ​ກັບ
ແອັບພລິເຄຊັນອື່ນເຊັ່ນ mod_perl ທີ່ໃຊ້ອິນເຕີເຟດ AIX native.

ຄຸນລັກສະນະ ສໍາລັບການ "ຂອງຂ້ອຍ" ຕົວແປ ໃນປັດຈຸບັນ ຈັດການ at ໄລຍະເວລາ
ຕອນນີ້ syntax "my EXPR : ATTRS" ນຳໃຊ້ຄຸນລັກສະນະທີ່ປ່ຽນແປງໄດ້ໃນເວລາແລ່ນ. (ລາຍການຍ່ອຍ ແລະ
ຕົວແປ "ຂອງພວກເຮົາ" ຍັງຄົງໄດ້ຮັບຄຸນລັກສະນະທີ່ຖືກນໍາໃຊ້ໃນເວລາລວບລວມ.) ເບິ່ງຄຸນລັກສະນະສໍາລັບ
ລາຍລະອຽດເພີ່ມເຕີມ. ໂດຍສະເພາະ, ແນວໃດກໍ່ຕາມ, ນີ້ອະນຸຍາດໃຫ້ຄຸນລັກສະນະທີ່ປ່ຽນແປງໄດ້ເປັນປະໂຫຍດ
ສໍາລັບການໂຕ້ຕອບ "tie", ເຊິ່ງເປັນການຂາດແຄນຂອງການປ່ອຍອອກມາກ່ອນຫນ້ານີ້. ໃຫ້ສັງເກດວ່າໃຫມ່
semantics ບໍ່ເຮັດວຽກກັບ Attribute::Handlers module (ຕາມສະບັບ 0.76).

Socket ການຂະຫຍາຍຕົວ ການເຄື່ອນໄຫວ in ສ່ວນຂະຫຍາຍ VMS
ສ່ວນຂະຫຍາຍ Socket ດຽວນີ້ຖືກໂຫຼດແບບໄດນາມິກແທນທີ່ຈະຖືກສ້າງແບບຄົງທີ່. ນີ້
ອາດຈະເປັນຫຼືອາດຈະບໍ່ເປັນບັນຫາກັບ stacks TCP / IP ວັດຖຸບູຮານຂອງ VMS: ພວກເຮົາບໍ່ຮູ້ນັບຕັ້ງແຕ່ພວກເຮົາ
ບໍ່ສາມາດທົດສອບ Perl ໃນການຕັ້ງຄ່າດັ່ງກ່າວ.

IEEE ຮູບແບບ floating ຈຸດ ມາດຕະຖານ on OpenVMS Alpha
ໃນປັດຈຸບັນ Perl ໃຊ້ຮູບແບບ IEEE (T_FLOAT) ເປັນຮູບແບບຈຸດລອຍພາຍໃນເລີ່ມຕົ້ນ
OpenVMS Alpha, ອາດຈະທໍາລາຍຄວາມເຂົ້າກັນໄດ້ຂອງ binary ກັບຫ້ອງສະຫມຸດພາຍນອກຫຼື
ຂໍ້ມູນທີ່ມີຢູ່ແລ້ວ. G_FLOAT ຍັງສາມາດໃຊ້ໄດ້ເປັນຕົວເລືອກການຕັ້ງຄ່າ. ຄ່າເລີ່ມຕົ້ນໃນ VAX
(D_FLOAT) ບໍ່ມີການປ່ຽນແປງ.

ໃຫມ່ Unicode ເທັນນິດ (no ເພີ່ມເຕີມ "ໃຊ້ utf8", ເກືອບ​ທັງ​ຫມົດ)
ກ່ອນຫນ້ານີ້ໃນ Perl 5.6 ເພື່ອໃຊ້ Unicode ຫນຶ່ງຈະເວົ້າວ່າ "ໃຊ້ utf8" ແລະຫຼັງຈາກນັ້ນການດໍາເນີນງານ.
(ເຊັ່ນ: ການຕິດຕໍ່ກັນ string) ແມ່ນ Unicode-aware ໃນຂອບເຂດ lexical ນັ້ນ.

ນີ້ໄດ້ຖືກພົບເຫັນວ່າເປັນການໂຕ້ຕອບທີ່ບໍ່ສະດວກ, ແລະໃນ Perl 5.8 ຮູບແບບ Unicode ມີ
ມີການປ່ຽນແປງຢ່າງສົມບູນ: ໃນປັດຈຸບັນ "Unicodeness" ໄດ້ຖືກຜູກມັດກັບຂໍ້ມູນຂອງມັນເອງ, ແລະສໍາລັບສ່ວນໃຫຍ່
ເວລາ "ໃຊ້ utf8" ແມ່ນບໍ່ຈໍາເປັນເລີຍ. ການນໍາໃຊ້ທີ່ຍັງເຫຼືອພຽງແຕ່ "ໃຊ້ utf8" ແມ່ນເວລາທີ່
Perl script ຕົວຂອງມັນເອງໄດ້ຖືກຂຽນໄວ້ໃນ UTF-8 ການເຂົ້າລະຫັດຂອງ Unicode. (UTF-8 ຍັງບໍ່ທັນໄດ້
ເຮັດໃຫ້ຄ່າເລີ່ມຕົ້ນນັບຕັ້ງແຕ່ມີສະຄິບ Perl ຈໍານວນຫຼາຍອອກມີທີ່ກໍາລັງໃຊ້ຕ່າງໆ
ຊຸດຕົວອັກສອນແປດບິດແຫ່ງຊາດ, ເຊິ່ງຈະຜິດກົດໝາຍໃນ UTF-8.)

ເບິ່ງ perluniintro ສໍາລັບຄໍາອະທິບາຍຂອງຮູບແບບປະຈຸບັນ, ແລະ utf8 ສໍາລັບການນໍາໃຊ້ໃນປະຈຸບັນຂອງ
utf8 pragma.

ໃຫມ່ Unicode ອະສັງຫາ
Unicode scripts ປະຈຸບັນໄດ້ຮັບການສະຫນັບສະຫນູນ. Scripts ແມ່ນຄ້າຍຄືກັນກັບ (ແລະດີກວ່າ) Unicode
ຕັນ. ຄວາມແຕກຕ່າງລະຫວ່າງ scripts ແລະ blocks ແມ່ນວ່າ scripts ແມ່ນ glyphs ທີ່ໃຊ້ໂດຍ a
ພາ​ສາ​ຫຼື​ກຸ່ມ​ຂອງ​ພາ​ສາ​, ໃນ​ຂະ​ນະ​ທີ່​ຕັນ​ແມ່ນ​ກຸ່ມ​ປອມ​ຫຼາຍ​ຂອງ​
(ສ່ວນຫຼາຍແມ່ນ) 256 ຕົວອັກສອນໂດຍອີງໃສ່ຕົວເລກ Unicode.

ໂດຍທົ່ວໄປ, scripts ແມ່ນລວມຫຼາຍກວ່າ, ແຕ່ບໍ່ແມ່ນທົ່ວໄປ. ສໍາລັບຕົວຢ່າງ, ໃນຂະນະທີ່
ຕົວໜັງສື "ລາຕິນ" ປະກອບມີຕົວອັກສອນລາຕິນທັງໝົດ ແລະ ຕົວອັກສອນທີ່ປະດັບດ້ວຍຕົວໜັງສືຕ່າງໆ
ສະບັບຕ່າງໆ, ມັນບໍ່ໄດ້ລວມເອົາເຄື່ອງໝາຍວັກຕອນ ຫຼືຕົວເລກຕ່າງໆ (ເນື່ອງຈາກພວກມັນບໍ່ແມ່ນແຕ່ພຽງຜູ້ດຽວ
"ລາຕິນ").

ຕອນນີ້ຮອງຮັບຄຸນສົມບັດອື່ນໆຈຳນວນໜຶ່ງ, ລວມທັງ "\p{L&}", "\p{Any}"
"\p{Assigned}", "\p{Unassigned}", "\p{Blank}" [561] ແລະ "\p{SpacePerl}" [561] (ພ້ອມກັບ
ລຸ້ນ "\P{...}" ຂອງພວກເຂົາ, ແນ່ນອນ). ເບິ່ງ perlunicode ສໍາລັບລາຍລະອຽດ, ແລະການເພີ່ມເຕີມ.

"In" ຫຼື "Is" ຄໍານໍາຫນ້າຂອງຊື່ທີ່ໃຊ້ກັບ "\p{...}" ແລະ "\P{...}" ແມ່ນເກືອບແລ້ວ.
ທາງເລືອກສະເໝີ. ຂໍ້ຍົກເວັ້ນພຽງແຕ່ວ່າຄໍານໍາຫນ້າ "In" ແມ່ນຈໍາເປັນເພື່ອຫມາຍເຖິງ Unicode
ບລັອກເມື່ອຊື່ບລັອກຂັດກັບຊື່ສະຄຣິບ. ຕົວຢ່າງ, "\p{Tibetan}" ຫມາຍເຖິງ
ສະຄຣິບ, ໃນຂະນະທີ່ "\p{InTibetan}" ຫມາຍເຖິງບລັອກ. ໃນເວລາທີ່ບໍ່ມີການຂັດແຍ້ງກ່ຽວກັບຊື່, ທ່ານ
ສາມາດລະເວັ້ນ "In" ຈາກຊື່ບລັອກ (ເຊັ່ນ: "\p{BraillePatterns}"), ແຕ່ເພື່ອຄວາມປອດໄພ, ມັນແມ່ນ.
ອາດຈະດີທີ່ສຸດທີ່ຈະໃຊ້ "ໃນ" ສະເໝີ).

REF(...) ແທນ Of ScalAR(...)
ການອ້າງອິງເຖິງການອ້າງອິງໃນປັດຈຸບັນ stringifies ເປັນ "REF(0x81485ec)" ແທນ
"ScalAR(0x81485ec)" ເພື່ອໃຫ້ສອດຄ່ອງກັບມູນຄ່າກັບຄືນຂອງ ອ້າງອີງ().

pack/unpack D / F ລີໄຊເຄີນ
ຕົວອັກສອນແບບຊອງ/unpack ທີ່ບໍ່ມີເອກະສານ D/F ໄດ້ຖືກນຳມາໃຊ້ໃໝ່ເພື່ອນຳໃຊ້ໄດ້ດີຂຶ້ນ: ດຽວນີ້
ພວກເຂົາຢືນຢູ່ໃນສອງເທົ່າຍາວ (ຖ້າສະຫນັບສະຫນູນໂດຍເວທີ) ແລະ NV (Perl ພາຍໃນທີ່ເລື່ອນໄດ້
ປະເພດຈຸດ). (ພວກເຂົາເຄີຍເປັນນາມແຝງຂອງ d/f, ແຕ່ເຈົ້າບໍ່ເຄີຍຮູ້ເລື່ອງນັ້ນ.)

ໂລກ() ໃນປັດຈຸບັນ ກັບຄືນມາ ຊື່ໄຟລ໌ in ອັກຂະຣະ ຄໍາສັ່ງ
ບັນຊີລາຍຊື່ຂອງຊື່ໄຟລ໌ຈາກ ໂລກ() (ຫຼື <...>) ໃນ​ປັດ​ຈຸ​ບັນ​ແມ່ນ​ໂດຍ​ເລີ່ມ​ຕົ້ນ​ການ​ຈັດ​ຮຽງ​ຕາມ​ຕົວ​ອັກ​ສອນ​ເປັນ​
csh-compliant (ເຊິ່ງເປັນສິ່ງທີ່ເກີດຂຶ້ນກ່ອນໃນເວທີ Unix ສ່ວນໃຫຍ່). (bsd_glob() ບໍ່
ຍັງຈັດລຽງແພລດຟອມເດີມ, ASCII ຫຼື EBCDIC, ເວັ້ນເສຍແຕ່ GLOB_ALPHASORT ຈະຖືກລະບຸ.) [561]

ປະຕິເສດ
· semantics ຂອງພອນ (REF, REF) ແມ່ນບໍ່ຈະແຈ້ງແລະຈົນກ່ວາຜູ້ໃດຜູ້ຫນຶ່ງພິສູດວ່າມັນຈະເຮັດໃຫ້ບາງ.
ຄວາມຮູ້ສຶກ, ມັນຖືກຫ້າມ.

·ຫ້ອງສະຫມຸດ chat2 ທີ່ລ້າສະໄຫມທີ່ບໍ່ຄວນຈະຖືກອະນຸຍາດໃຫ້ຫນີໄປ
ຫ້ອງທົດລອງໄດ້ຖືກຍົກເລີກ.

· ໃຊ້ chdir("") ຫຼື chdir(undef) ແທນທີ່ຈະແຈ້ງ chdir() ສົງໃສ. ຄວາມລົ້ມເຫຼວ
(ຄິດວ່າ chdir(some_function()) ສາມາດນໍາໄປສູ່ການບໍ່ຕັ້ງໃຈ chdir() ໄປ​ທີ່​ລະ​ບົບ​ບ້ານ​,
ເພາະສະນັ້ນ, ພຶດຕິກໍານີ້ຖືກປະຕິເສດ.

· ພາຍໃນ dump() ຟັງຊັນໄດ້ລື່ນກາຍຜົນປະໂຫຍດສ່ວນໃຫຍ່ຂອງມັນ. ຫຼັກ​ການ -
ຟັງຊັນການຖິ້ມຂີ້ເຫຍື້ອຈະຍັງຄົງມີຢູ່ໃນອະນາຄົດເປັນການໂທຫາຢ່າງຈະແຈ້ງ
"ຫຼັກ::dump()", ແຕ່ໃນອະນາຄົດຈະປ່ອຍພຶດຕິກໍາຂອງການໂທ "dump()" ທີ່ບໍ່ມີເງື່ອນໄຂ.
ອາດຈະປ່ຽນແປງ.

· ຕົວຢ່າງທີ່ຂີ້ຝຸ່ນຫຼາຍຢູ່ໃນ eg/ directory ໄດ້ຖືກໂຍກຍ້າຍອອກ. ຄຳແນະນຳໃໝ່
ຕົວຢ່າງທີ່ເຫຼື້ອມຍິນດີຕ້ອນຮັບ, ແຕ່ບັນຫາຕົ້ນຕໍແມ່ນຕົວຢ່າງທີ່ຕ້ອງໄດ້ຮັບການບັນທຶກໄວ້,
ການທົດສອບແລະ (ສໍາຄັນທີ່ສຸດ) ຮັກສາ.

· ລຳດັບການຫລົບໜີ (ປອມ) \8 ແລະ \9 ຕອນນີ້ໃຫ້ຄຳເຕືອນທາງເລືອກ ("ບໍ່ຮູ້ຈັກ.
escape ຜ່ານ").

· *glob{FILEHANDLE} ຖືກຍົກເລີກ, ໃຫ້ໃຊ້ *glob{IO} ແທນ.

· "ຊຸດ;" syntax ("ຊຸດ" ໂດຍບໍ່ມີການໂຕ້ຖຽງ) ໄດ້ຖືກຍົກເລີກ. ຂອງມັນ
semantics ບໍ່ເຄີຍມີຄວາມຊັດເຈນແລະການປະຕິບັດຂອງມັນເຖິງແມ່ນວ່າຫນ້ອຍລົງ. ຖ້າທ່ານໄດ້ໃຊ້
ຄຸນນະສົມບັດທີ່ຈະບໍ່ອະນຸຍາດໃຫ້ທຸກຕົວແປທີ່ມີຄຸນສົມບັດຄົບຖ້ວນ, "ໃຊ້ຢ່າງເຂັ້ມງວດ;" ແທນ.

· ຄຸນສົມບັດ POSIX regex ທີ່ບໍ່ໄດ້ປະຕິບັດ [[.cc.]] ແລະ [[=c=]] ຍັງຖືກຮັບຮູ້ແຕ່
ໃນປັດຈຸບັນເຮັດໃຫ້ເກີດຄວາມຜິດພາດຮ້າຍແຮງ. ພຶດຕິກໍາທີ່ຜ່ານມາຂອງການບໍ່ສົນໃຈພວກເຂົາໂດຍຄ່າເລີ່ມຕົ້ນແລະ
ການ​ເຕືອນ​ໄພ​ຖ້າ​ຫາກ​ວ່າ​ການ​ຮ້ອງ​ຂໍ​ແມ່ນ​ບໍ່​ຍອມ​ຮັບ​ເນື່ອງ​ຈາກ​ວ່າ​ມັນ​, ໃນ​ວິ​ທີ​ທາງ​ການ​, ສັນ​ຍາ​ທີ່​ຜິດ​ພາດ​ວ່າ​
ຄຸນສົມບັດສາມາດຖືກນໍາໃຊ້.

· ໃນການປ່ອຍໃນອະນາຄົດ, ໂມດູນ XS ທີ່ບໍ່ຮູ້ຈັກ PerlIO ອາດຈະບໍ່ໄດ້ຮັບການສະຫນັບສະຫນູນຢ່າງສົມບູນ.
ນັບຕັ້ງແຕ່ PerlIO ເປັນການທົດແທນການຫຼຸດລົງສໍາລັບ stdio ໃນລະດັບລະຫັດແຫຼ່ງ, ນີ້
ບໍ່ຄວນຈະເປັນການປ່ຽນແປງທີ່ຮຸນແຮງ.

· ສະບັບທີ່ຜ່ານມາຂອງ perl ແລະການອ່ານບາງສ່ວນຂອງ Camel III ຊີ້ໃຫ້ເຫັນເຖິງນັ້ນ
":raw" "ລະບຽບວິໄນ" ແມ່ນກົງກັນຂ້າມຂອງ ":crlf". ການປິດ "clrfness" ບໍ່ແມ່ນ
ດົນກວ່າພຽງພໍທີ່ຈະສ້າງກະແສໄບນາຣີຢ່າງແທ້ຈິງ. ດັ່ງນັ້ນຊັ້ນ PerlIO ":raw" (ຫຼື
"ລະບຽບວິໄນ", ເພື່ອໃຊ້ຄໍາສັບເກົ່າແກ່ຂອງປື້ມ Camel) ແມ່ນຖືກກໍານົດຢ່າງເປັນທາງການໃນປັດຈຸບັນ
ທຽບເທົ່າກັບ binmode (FH) - ເຊິ່ງຖືກກໍານົດວ່າເປັນການເຮັດໃດກໍ່ຕາມ
ມີຄວາມຈໍາເປັນທີ່ຈະຜ່ານແຕ່ລະ byte ຕາມທີ່ເປັນຢູ່ໂດຍບໍ່ມີການແປພາສາໃດໆ. ໂດຍສະເພາະ binmode (FH)
- ແລະດ້ວຍເຫດນີ້ ":raw" - ດຽວນີ້ຈະປິດການແປ CRLF ແລະ UTF-8 ແລະເອົາອອກ
ຊັ້ນອື່ນໆ (ເຊັ່ນ:ການເຂົ້າລະຫັດ()) ເຊິ່ງຈະປັບປຸງການຖ່າຍທອດ byte.

· ການ​ປະ​ຕິ​ບັດ​ທີ່​ຜູ້​ໃຊ້​ສັງ​ເກດ​ເຫັນ​ໃນ​ປະ​ຈຸ​ບັນ​ຂອງ pseudo-hashes (ການ​ນໍາ​ໃຊ້​ແປກ​ຂອງ​ຄັ້ງ​ທໍາ​ອິດ​
ອົງປະກອບ array) ຖືກປະຕິເສດໂດຍເລີ່ມຕົ້ນຈາກ Perl 5.8.0 ແລະຈະຖືກລຶບອອກໃນ Perl
5.10.0, ແລະຄຸນນະສົມບັດຈະຖືກປະຕິບັດແຕກຕ່າງກັນ. ບໍ່ພຽງແຕ່ໃນປະຈຸບັນ
ການໂຕ້ຕອບທີ່ຂີ້ຮ້າຍຫຼາຍ, ແຕ່ການປະຕິບັດໃນປະຈຸບັນຊ້າລົງ array ແລະ hash ປົກກະຕິ
ໃຊ້ຢ່າງຈະແຈ້ງ. ການໂຕ້ຕອບ "ທົ່ງນາ" pragma ຈະຍັງຄົງມີຢູ່. ໄດ້
ຖືກຈໍາກັດ ແຮຊ ການໂຕ້ຕອບແມ່ນຄາດວ່າຈະເປັນການໂຕ້ຕອບການທົດແທນ (ເບິ່ງ
Hash::Util). ຖ້າບັນດາໂຄງການທີ່ມີຢູ່ຂອງທ່ານຂຶ້ນກັບການປະຕິບັດພື້ນຖານ,
ພິຈາລະນາໃຊ້ Class::PseudoHash ຈາກ CPAN.

· ດຽວນີ້ syntaxes "@a->[...]" ແລະ "%h->{...}" ໄດ້ຖືກຍົກເລີກແລ້ວ.

· ຫຼັງ​ຈາກ​ຫຼາຍ​ປີ​ຂອງ​ການ​ພະ​ຍາ​ຍາມ, suidperl ຖືກ​ຖື​ວ່າ​ເປັນ​ການ​ສັບ​ສົນ​ເກີນ​ໄປ​ທີ່​ຈະ​ໄດ້​ຮັບ​ການ​ພິ​ຈາ​ລະ​ນາ
ປອດໄພແທ້ໆ. ຟັງຊັນ suidperl ມີແນວໂນ້ມທີ່ຈະຖືກລຶບອອກໃນການປ່ອຍໃນອະນາຄົດ.

· ຮູບແບບ 5.005 ກະທູ້ (ໂມດູນ "ກະທູ້") ຖືກຍົກເລີກ ແລະຄາດວ່າຈະຖືກລຶບອອກໃນ
Perl 5.10. ລະຫັດ Multithreaded ຄວນຖືກຍ້າຍໄປໃສ່ຮູບແບບ ithreads ໃຫມ່ (ເບິ່ງ
ກະທູ້, ກະທູ້::shared ແລະ perlthrtut).

· ນາມ​ແຝງ​ຕົວ​ພິມ​ໃຫຍ່​ທີ່​ຖືກ​ຍົກ​ເລີກ​ຢ່າງ​ຍາວ​ນານ​ສຳ​ລັບ​ຕົວ​ປະ​ຕິ​ບັດ​ການ​ປຽບ​ທຽບ​ສະ​ຕຣິງ (EQ, NE, LT,
LE, GE, GT) ໄດ້ຖືກໂຍກຍ້າຍອອກໃນປັດຈຸບັນ.

· ຄຸນສົມບັດ tr///C ແລະ tr///U ໄດ້ຖືກໂຍກຍ້າຍອອກແລະຈະບໍ່ກັບຄືນມາ; ການໂຕ້ຕອບ
ເປັນຄວາມຜິດພາດ. ຂໍອະໄພກ່ຽວກັບເລື່ອງນັ້ນ. ສໍາລັບການເຮັດວຽກທີ່ຄ້າຍຄືກັນ, ເບິ່ງ pack('U0', ...) ແລະ
pack('C0', ...). [561]

· ກ່ອນຫນ້ານີ້ Perls ປະຕິບັດ "sub foo (@bar)" ເທົ່າກັບ "sub foo (@)". ຕົ້ນແບບ
ດຽວນີ້ຖືກກວດສອບດີກວ່າໃນເວລາລວບລວມສໍາລັບ syntax ທີ່ບໍ່ຖືກຕ້ອງ. ການເຕືອນໄພທາງເລືອກແມ່ນ
ສ້າງຂຶ້ນ ("ຕົວລະຄອນທີ່ຜິດກົດໝາຍໃນຕົ້ນແບບ...") ແຕ່ອັນນີ້ອາດຈະຖືກຍົກລະດັບເປັນຕົວຕາຍ
ຄວາມຜິດພາດໃນການປ່ອຍໃນອະນາຄົດ.

· ການດໍາເນີນງານ "exec LIST" ແລະ "ບັນຊີລາຍຊື່ລະບົບ" ປະຈຸບັນຜະລິດຄໍາເຕືອນກ່ຽວກັບຂໍ້ມູນ tainted ແລະ
ໃນບາງການປ່ອຍໃນອະນາຄົດພວກເຂົາຈະຜະລິດຄວາມຜິດພາດທີ່ຮ້າຍແຮງ.

·ພຶດຕິກໍາທີ່ມີຢູ່ແລ້ວໃນເວລາທີ່ localising tied arrays ແລະ hashes ແມ່ນຜິດພາດ, ແລະຈະເປັນ
ມີການປ່ຽນແປງໃນການປ່ອຍໃນອະນາຄົດ, ດັ່ງນັ້ນຢ່າອີງໃສ່ພຶດຕິກໍາທີ່ມີຢູ່ແລ້ວ. ເບິ່ງ "ທ້ອງຖິ່ນ
Tied Arrays ແລະ Hashes ແມ່ນແຕກ."

Core ການຍົກລະດັບ


Unicode Overhaul
ໂດຍທົ່ວໄປແລ້ວ Unicode ຄວນໃຊ້ໄດ້ຫຼາຍກວ່າໃນ Perl 5.6.0 (ຫຼືແມ້ແຕ່ຢູ່ໃນ 5.6.1).
Unicode ສາມາດໃຊ້ໃນປຸ່ມ hash, Unicode ໃນການສະແດງອອກປົກກະຕິຄວນຈະເຮັດວຽກໃນປັດຈຸບັນ, Unicode
ໃນ tr /// ຄວນເຮັດວຽກດຽວນີ້, Unicode ໃນ I/O ຄວນເຮັດວຽກດຽວນີ້. ເບິ່ງ perluniintro ສໍາລັບ
ການແນະນໍາແລະ perlunicode ສໍາລັບລາຍລະອຽດ.

· ຖານຂໍ້ມູນຕົວອັກສອນ Unicode ທີ່ມາພ້ອມກັບ Perl ໄດ້ຖືກຍົກລະດັບເປັນ Unicode 3.2.0.
ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ, ເບິ່ງ http://www.unicode.org/ . [561+] (5.6.1 ມີ UCD 3.0.1.)

· ສໍາລັບນັກພັດທະນາທີ່ສົນໃຈໃນການເພີ່ມປະສິດທິພາບຂອງ Perl's Unicode: UCD ເກືອບທັງຫມົດ
ໄຟລ໌ໄດ້ຖືກລວມເຂົ້າກັບການແຈກຢາຍ Perl ໃນ lib/unicore ບັນຊີຍ່ອຍ. ໄດ້
ການລະເວັ້ນທີ່ໂດດເດັ່ນທີ່ສຸດ, ສໍາລັບການພິຈາລະນາພື້ນທີ່, ແມ່ນຖານຂໍ້ມູນ Unihan.

· ຄຸນສົມບັດ \p{Blank} ແລະ \p{SpacePerl} ໄດ້ຖືກເພີ່ມແລ້ວ. "ເປົ່າ" ຄື C
isblank(), ນັ້ນແມ່ນ, ມັນມີພຽງແຕ່ "ຊ່ອງຫວ່າງທາງນອນ" (ລັກສະນະຊ່ອງແມ່ນ,
ແຖວໃໝ່ບໍ່ແມ່ນ), ແລະ "SpacePerl" ແມ່ນ Unicode ທຽບເທົ່າກັບ "\s" (\p{Space}
ບໍ່ແມ່ນ, ເພາະວ່າມັນປະກອບມີຕົວອັກສອນແຖບແນວຕັ້ງ, ໃນຂະນະທີ່ "\s" ບໍ່ແມ່ນ.)

ເບິ່ງ "ຄຸນສົມບັດ Unicode ໃຫມ່" ກ່ອນຫນ້ານີ້ໃນເອກະສານນີ້ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບ
ປ່ຽນແປງຄຸນສົມບັດຂອງ Unicode.

PerlIO is ໃນປັດຈຸບັນ ໄດ້ ມາດຕະຖານ
· IO ໃນປັດຈຸບັນແມ່ນເຮັດໂດຍຄ່າເລີ່ມຕົ້ນຜ່ານ PerlIO ແທນທີ່ຈະເປັນ "stdio" ຂອງລະບົບ. PerlIO ອະນຸຍາດໃຫ້
"ຊັ້ນ" ທີ່ຈະຖືກ "ຍູ້" ໃສ່ຕົວຈັບໄຟລ໌ເພື່ອປ່ຽນແປງພຶດຕິກໍາຂອງຕົວຈັບ. ຊັ້ນ
ສາມາດຖືກກໍານົດໃນເວລາເປີດໂດຍຜ່ານຮູບແບບ 3-arg ຂອງການເປີດ:

open($fh,'>:crlf :utf8', $path) || ...

ຫຼືຢູ່ໃນມືຈັບທີ່ເປີດແລ້ວໂດຍຜ່ານ "binmode" ຂະຫຍາຍ:

binmode($fh,':ການເຂົ້າລະຫັດ(iso-8859-7)');

ຊັ້ນຂໍ້ມູນໃນຕົວແມ່ນ: unix (ການອ່ານ / ຂຽນລະດັບຕໍ່າ), stdio (ເຊັ່ນດຽວກັບ Perls ທີ່ຜ່ານມາ),
perlio (ການຈັດຕັ້ງປະຕິບັດໃຫມ່ຂອງ stdio buffering ໃນລັກສະນະແບບພົກພາ), crlf (ບໍ່ CRLF.
<=> "\n" ການແປເປັນຢູ່ໃນ Win32, ແຕ່ມີຢູ່ໃນທຸກເວທີ). ຊັ້ນ mmap ອາດຈະເປັນ
ສາມາດໃຊ້ໄດ້ຖ້າເວທີສະຫນັບສະຫນູນມັນ (ສ່ວນຫຼາຍແມ່ນ Unixes).

ຊັ້ນຂໍ້ມູນທີ່ຈະໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນອາດຈະຖືກລະບຸຜ່ານທາງ pragma 'ເປີດ'.

ເບິ່ງ "ການຕິດຕັ້ງແລະການປັບປຸງການຕັ້ງຄ່າ" ສໍາລັບຜົນກະທົບຂອງ PerlIO ກ່ຽວກັບຂອງທ່ານ
ຊື່ສະຖາປັດຕະຍະກໍາ.

· ຖ້າເວທີຂອງທ່ານສະຫນັບສະຫນູນ ສ້ອມ (), ທ່ານສາມາດນໍາໃຊ້ແບບຟອມບັນຊີລາຍຊື່ຂອງ "ເປີດ" ສໍາລັບທໍ່. ສໍາລັບ
ຍົກຕົວຢ່າງ:

ເປີດ KID_PS, "-|", "ps", "aux" ຫຼືຕາຍ $!;

forks ໄດ້ ps(1) ຄໍາສັ່ງ (ໂດຍບໍ່ມີການ spawning ຫອຍ, ເນື່ອງຈາກວ່າມີຫຼາຍກ່ວາສາມ
ການໂຕ້ຖຽງກັບ ເປີດ()), ແລະອ່ານຜົນຜະລິດມາດຕະຖານຂອງຕົນໂດຍຜ່ານ "KID_PS" filehandle. ເບິ່ງ
perlipc.

· ການຈັດການໄຟລ໌ສາມາດຖືກໝາຍວ່າເປັນການຍອມຮັບການເຂົ້າລະຫັດພາຍໃນຂອງ Perl ຂອງ Unicode (UTF-8 ຫຼື
UTF-EBCDIC ຂຶ້ນກັບເວທີ) ໂດຍຊັ້ນ pseudo ":utf8" :

open($fh,">:utf8","Uni.txt");

ຫມາຍເຫດສໍາລັບຜູ້ໃຊ້ EBCDIC: ຊັ້ນ pseudo ":utf8" ຖືກຕັ້ງຊື່ຜິດພາດສໍາລັບທ່ານນັບຕັ້ງແຕ່
ມັນບໍ່ແມ່ນ UTF-8 ສິ່ງທີ່ທ່ານຈະໄດ້ຮັບແຕ່ແທນທີ່ UTF-EBCDIC. ເບິ່ງ perlunicode,
utf8, ແລະ http://www.unicode.org/unicode/reports/tr16/ ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ. ໃນ
ການເປີດຕົວໃນອະນາຄົດຊື່ນີ້ອາດຈະມີການປ່ຽນແປງ. ເບິ່ງ perluniintro ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບ
UTF-8.

· ຖ້າຕົວແປສະພາບແວດລ້ອມຂອງເຈົ້າ (LC_ALL, LC_CTYPE, LANG) ເບິ່ງຄືວ່າທ່ານຕ້ອງການໃຊ້ UTF-8
(ຕົວແປໃດນຶ່ງກົງກັບ "/utf-?8/i"), ຕົວຈັບ STDIN, STDOUT, STDERR ຂອງທ່ານແລະ
ຊັ້ນເປີດເລີ່ມຕົ້ນ (ເບິ່ງເປີດ) ຖືກໝາຍເປັນ UTF-8. (ຄຸນສົມບັດນີ້, ຄືກັບອັນໃໝ່ອື່ນໆ
ຄຸນສົມບັດທີ່ປະສົມປະສານ Unicode ແລະ I/O, ເຮັດວຽກພຽງແຕ່ຖ້າທ່ານໃຊ້ PerlIO, ແຕ່ນັ້ນແມ່ນ
ຄ່າເລີ່ມຕົ້ນ.)

ໃຫ້ສັງເກດວ່າຫຼັງຈາກ Perl ນີ້ກໍ່ສົມມຸດວ່າທຸກສິ່ງທຸກຢ່າງແມ່ນ UTF-8: ຕົວຢ່າງຖ້າ
ບາງຕົວຈັບການປ້ອນຂໍ້ມູນບໍ່ແມ່ນ, Perl ອາດຈະຈົ່ມຫຼາຍໃນໄວໆນີ້ກ່ຽວກັບຂໍ້ມູນການປ້ອນຂໍ້ມູນ
ແບບນີ້ "UTF-8 ຜິດຮູບ ... " ເນື່ອງຈາກຂໍ້ມູນ 8-bit ເກົ່າບໍ່ແມ່ນ UTF-XNUMX ທີ່ຖືກຕ້ອງຕາມກົດໝາຍ.

ຫມາຍເຫດສໍາລັບຜູ້ຂຽນລະຫັດ: ຖ້າທ່ານຕ້ອງການໃຫ້ຜູ້ໃຊ້ຂອງທ່ານໃຊ້ UTF-8 ເປັນຄ່າເລີ່ມຕົ້ນຂອງພວກເຂົາ
ການເຂົ້າລະຫັດແຕ່ໃນລະຫັດຂອງທ່ານຍັງມີສະຕຣີມ I/O ແປດບິດ (ເຊັ່ນ: ຮູບພາບ ຫຼື zip
ໄຟລ໌), ທ່ານຕ້ອງການຢ່າງຊັດເຈນ ເປີດ() or binmode() ດ້ວຍ ":bytes" (ເບິ່ງ "open" ໃນ
perlfunc ແລະ "binmode" ໃນ perlfunc), ຫຼືທ່ານພຽງແຕ່ສາມາດນໍາໃຊ້ "binmode (FH)" (ງາມສໍາລັບ
pre-5.8.0 ຄວາມເຂົ້າກັນໄດ້ກັບຫຼັງ).

· ຕົວຈັດການໄຟລ໌ສາມາດແປການເຂົ້າລະຫັດຕົວອັກສອນຈາກ/ໄປຫາແບບຟອມ Unicode ພາຍໃນຂອງ Perl
ອ່ານ / ຂຽນຜ່ານ ":ການເຂົ້າລະຫັດ()"ຊັ້ນ.

· handles ໄຟລ​໌​ສາ​ມາດ​ໄດ້​ຮັບ​ການ​ເປີດ "ໃນ​ຄວາມ​ຊົງ​ຈໍາ​" ໄຟລ​໌​ທີ່​ຖື​ຢູ່​ໃນ Perl scalars ຜ່ານ​:

open($fh,'>', \$variable) || ...

· ໄຟລ໌ຊົ່ວຄາວທີ່ບໍ່ເປີດເຜີຍຊື່ສາມາດໃຊ້ໄດ້ໂດຍບໍ່ຈໍາເປັນຕ້ອງ 'ໃຊ້ FileHandle' ຫຼືອື່ນໆ
module ຜ່ານ

open($fh,"+>", undef) || ...

ນັ້ນແມ່ນ undef ທີ່ແທ້ຈິງ, ບໍ່ແມ່ນຄ່າທີ່ບໍ່ໄດ້ກໍານົດ.

ຫົວຂໍ້
ຫົວຂໍ້ແປພາສາໃຫມ່ ("ithreads" ສໍາລັບສັ້ນ) ການປະຕິບັດ multithreading, ໂດຍ
Arthur Bergman, ແທນການປະຕິບັດ "5.005 threads" ເກົ່າ. ໃນຮູບແບບ ithreads
ການແບ່ງປັນຂໍ້ມູນໃດໆລະຫວ່າງກະທູ້ຕ້ອງມີຄວາມຊັດເຈນ, ກົງກັນຂ້າມກັບຮູບແບບທີ່ມີຂໍ້ມູນ
ການແບ່ງປັນແມ່ນ implicit. ເບິ່ງຫົວຂໍ້ແລະກະທູ້::shared, ແລະ perlthrtut.

ເປັນສ່ວນຫນຶ່ງຂອງການປະຕິບັດ ithreads Perl ຍັງຈະໃຊ້ທີ່ຈໍາເປັນແລະສາມາດກວດພົບໄດ້
ການໂຕ້ຕອບ libc reentrant.

ຖືກຈໍາກັດ hashes
A hash ທີ່ຖືກຈໍາກັດແມ່ນຈໍາກັດກັບຊຸດລະຫັດສະເພາະໃດຫນຶ່ງ, ບໍ່ມີກະແຈນອກຊຸດສາມາດເປັນ
ເພີ່ມ. ນອກນັ້ນກະແຈແຕ່ລະອັນສາມາດຖືກຈຳກັດເພື່ອໃຫ້ກະແຈບໍ່ສາມາດຖືກລຶບໄດ້ ແລະ
ຄ່າບໍ່ສາມາດປ່ຽນແປງໄດ້. ບໍ່ມີ syntax ໃຫມ່ທີ່ກ່ຽວຂ້ອງ: ໂມດູນ Hash::Util ແມ່ນ
interface

ຄວາມປອດໄພ ສັນຍານ
Perl ເຄີຍມີຄວາມອ່ອນແອໃນສັນຍານທີ່ມາຮອດຊ່ວງເວລາທີ່ບໍ່ເຫມາະສົມອາດຈະເສຍຫາຍ
ສະຖານະພາຍໃນຂອງ Perl. ໃນປັດຈຸບັນ Perl ເລື່ອນການຈັດການສັນຍານຈົນກ່ວາມັນປອດໄພ (ລະຫວ່າງ
opcodes).

ການປ່ຽນແປງນີ້ອາດມີຜົນຂ້າງຄຽງທີ່ຫນ້າປະຫລາດໃຈເພາະວ່າສັນຍານບໍ່ຂັດຂວາງ Perl ອີກຕໍ່ໄປ
ທັນທີ. ໃນປັດຈຸບັນ Perl ທໍາອິດຈະສໍາເລັດອັນໃດກໍ່ຕາມທີ່ມັນກໍາລັງເຮັດ, ເຊັ່ນ: ສໍາເລັດພາຍໃນ
ການດໍາເນີນງານ (ເຊັ່ນ: ຄັດ ()) ຫຼື​ການ​ດໍາ​ເນີນ​ງານ​ພາຍ​ນອກ (ເຊັ່ນ​: ການ​ດໍາ​ເນີນ​ງານ I/O​) ແລະ​ພຽງ​ແຕ່​ຫຼັງ​ຈາກ​ນັ້ນ​
ເບິ່ງສັນຍານໃດໆທີ່ມາຮອດ (ແລະກ່ອນທີ່ຈະເລີ່ມຕົ້ນການດໍາເນີນງານຕໍ່ໄປ). ບໍ່ມີການສໍ້ລາດບັງຫຼວງອີກຕໍ່ໄປ
ສະຖານະພາຍໃນນັບຕັ້ງແຕ່ການດໍາເນີນງານໃນປະຈຸບັນແມ່ນສະເຫມີສໍາເລັດກ່ອນ, ແຕ່ສັນຍານອາດຈະ
ໃຊ້ເວລາຫຼາຍກວ່າທີ່ຈະໄດ້ຍິນ. ໃຫ້ສັງເກດວ່າການແຕກແຍກອອກຈາກການດໍາເນີນງານທີ່ອາດຈະຂັດຂວາງ
ຄວນຈະຍັງເຮັດວຽກ, ເຖິງແມ່ນວ່າ.

ຄວາມເຂົ້າໃຈ of ຈໍານວນ
ໂດຍທົ່ວໄປແລ້ວການແກ້ໄຂຫຼາຍຢ່າງໄດ້ເກີດຂື້ນໃນຂົງເຂດຄວາມເຂົ້າໃຈຂອງ Perl ກ່ຽວກັບຕົວເລກ,
ທັງຈຳນວນເຕັມ ແລະຈຸດລອຍ. ເນື່ອງຈາກວ່າໃນຫຼາຍລະບົບການແຍກຕົວເລກມາດຕະຖານ
ຫນ້າທີ່ຄ້າຍຄື "strtoul()" ແລະ "atof()" ເບິ່ງຄືວ່າມີຂໍ້ບົກພ່ອງ, Perl ພະຍາຍາມເຮັດວຽກຮອບຂອງພວກເຂົາ.
ຂໍ້ບົກຜ່ອງ. ນີ້ຫວັງວ່າຜົນໄດ້ຮັບແມ່ນຕົວເລກທີ່ຖືກຕ້ອງກວ່າ.

ໃນປັດຈຸບັນ Perl ພະຍາຍາມພາຍໃນເພື່ອໃຊ້ຄ່າຈໍານວນເຕັມໃນການແປງຕົວເລກແລະພື້ນຖານ
ເລກຄະນິດສາດ (+ - * /) ຖ້າອາກິວເມັນເປັນຈຳນວນເຕັມ, ແລະພະຍາຍາມຮັກສາຜົນໄດ້ຮັບ.
ເກັບໄວ້ພາຍໃນເປັນຈໍານວນເຕັມ. ການປ່ຽນແປງນີ້ເຮັດໃຫ້ມັກຈະໄວຂຶ້ນເລັກນ້ອຍ ແລະໜ້ອຍລົງສະເໝີ
ເລກຄະນິດສາດທີ່ສູນເສຍ. (ກ່ອນຫນ້ານີ້ Perl ມັກຕົວເລກຈຸດລອຍຢູ່ໃນຄະນິດສາດຂອງມັນ.)

ອາເລ ໃນປັດຈຸບັນ ສະເຫມີໄປ ຕີຄວາມ ໝາຍ ເຂົ້າໄປໃນ double-quoted strings [561]
ໃນສະຕຣິງທີ່ອ້າງອີງສອງເທົ່າ, arrays ໃນປັດຈຸບັນ interpolate, ບໍ່ວ່າຈະເປັນແນວໃດ. ພຶດຕິ​ກຳ​ໃນ​ເມື່ອ​ກ່ອນ
ຮຸ່ນຂອງ perl 5 ແມ່ນວ່າ arrays ຈະ interpolate ເປັນ strings ຖ້າ array ໄດ້
ທີ່ໄດ້ກ່າວມາກ່ອນທີ່ string ໄດ້ຖືກລວບລວມ, ແລະຖ້າບໍ່ດັ່ງນັ້ນ Perl ຈະເຮັດໃຫ້ເກີດການລວບລວມຂໍ້ມູນຕາຍ.
ຄວາມ​ຜິດ​ພາດ​ທີ່​ໃຊ້​ເວ​ລາ​. ໃນຮຸ່ນ 5.000 ຫາ 5.003, ຄວາມຜິດພາດແມ່ນ

ຕົວໜັງສື @example ດຽວນີ້ຕ້ອງການ backslash

ໃນເວີຊັ່ນ 5.004_01 ຫາ 5.6.0, ຂໍ້ຜິດພາດເກີດຂຶ້ນ

ໃນສະຕຣິງ, @example ຕອນນີ້ຕ້ອງຂຽນເປັນ \@example

ແນວຄວາມຄິດນີ້ແມ່ນເພື່ອເຮັດໃຫ້ຄົນເຂົ້າໄປໃນນິໄສຂອງການຂຽນ "fred\@example.com" ເມື່ອພວກເຂົາ
ຕ້ອງການເຄື່ອງໝາຍ "@", ຄືກັບທີ່ເຂົາເຈົ້າຂຽນສະເໝີວ່າ "ໃຫ້ຂ້ອຍຄືນ \$5" ເມື່ອໃດ
ພວກເຂົາຕ້ອງການສັນຍາລັກ "$".

ເລີ່ມຕົ້ນດ້ວຍ 5.6.1, ເມື່ອ Perl ຕອນນີ້ເຫັນເຄື່ອງຫມາຍ "@" ໃນສະຕຣິງທີ່ອ້າງອີງສອງເທົ່າ, ມັນ. ສະເຫມີໄປ
ພະຍາຍາມ interpolate array, ບໍ່ວ່າຈະເປັນ array ໄດ້ຖືກນໍາໃຊ້ຫຼືບໍ່
ປະກາດແລ້ວ. ຄວາມ​ຜິດ​ພາດ​ອັນ​ຮ້າຍ​ແຮງ​ໄດ້​ຖືກ​ຫຼຸດ​ລະ​ດັບ​ເປັນ​ການ​ເຕືອນ​ທາງ​ເລືອກ​:

ຄວາມເປັນໄປໄດ້ທີ່ບໍ່ໄດ້ຕັ້ງໃຈ interpolation ຂອງ @example ໃນສະຕຣິງ

ອັນນີ້ເຕືອນເຈົ້າວ່າ "[email protected]"ຈະປ່ຽນເປັນ "fred.com" ຖ້າທ່ານບໍ່ເຮັດ
backslash "@". ເບິ່ງ http://perl.plover.com/at-error.html ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບການ
ປະຫວັດສາດຢູ່ທີ່ນີ້.

Miscellaneous ການປ່ຽນແປງ
· AUTOLOAD ໃນປັດຈຸບັນແມ່ນມີຄຸນຄ່າ, ຊຶ່ງຫມາຍຄວາມວ່າທ່ານສາມາດເພີ່ມຄຸນລັກສະນະ :lvalue ກັບ AUTOLOAD
subroutines ແລະທ່ານສາມາດກໍາຫນົດໃຫ້ AUTOLOAD ກັບຄືນມູນຄ່າ.

· $Config{byteorder} (ແລະ BYTEORDER ທີ່ສອດຄ້ອງກັນໃນ config.h) ແມ່ນຜິດພາດກ່ອນຫນ້ານີ້
ໃນເວທີຖ້າຂະຫນາດຂອງ (ຍາວ) ແມ່ນ 4, ແຕ່ຂະຫນາດຂອງ (IV) ແມ່ນ 8. ຄໍາສັ່ງ byteorder ແມ່ນພຽງແຕ່
ຂະ​ຫນາດ​ຂອງ (ຍາວ​) bytes ຍາວ (1234 ຫຼື 4321​)​, ແຕ່​ໃນ​ປັດ​ຈຸ​ບັນ​ມັນ​ເປັນ​ຂະ​ຫນາດ​ທີ່​ຖືກ​ຕ້ອງ​ຂອງ (IV​) bytes ຍາວ​,
(12345678 ຫຼື 87654321). (ບັນຫານີ້ບໍ່ມີຜົນຕໍ່ເວທີ Windows.)

ນອກຈາກນັ້ນ, $Config{byteorder} ດຽວນີ້ຖືກຄິດໄລ່ແບບໄດນາມິກ - ນີ້ແມ່ນເຂັ້ມແຂງກວ່າກັບ "ໄຂມັນ
binaries" ບ່ອນທີ່ຮູບພາບທີ່ສາມາດປະຕິບັດໄດ້ມີ binary ສໍາລັບຫຼາຍກວ່າຫນຶ່ງ binary
ເວທີ, ແລະໃນເວລາທີ່ການລວບລວມຂ້າມ.

· "perl -d:Module=arg,arg,arg" ຕອນນີ້ເຮັດວຽກໄດ້ (ກ່ອນໜ້ານີ້ອັນໜຶ່ງບໍ່ສາມາດຜ່ານຫຼາຍອັນໄດ້.
ການໂຕ້ຖຽງ.)

· "ເຮັດ" ຕິດຕາມດ້ວຍຄໍາເປົ່າຕອນນີ້ຮັບປະກັນວ່າຄໍາເປົ່ານີ້ບໍ່ແມ່ນຄໍາສໍາຄັນ (ເພື່ອຫຼີກເວັ້ນການເປັນ
bug ທີ່ "do q(foo.pl)" ພະຍາຍາມໂທຫາ subroutine ທີ່ເອີ້ນວ່າ "q"). ນີ້ຫມາຍຄວາມວ່າສໍາລັບ
ຕົວຢ່າງແທນ "do format()" ທ່ານຕ້ອງຂຽນ "do &format()".

· ພາຍໃນ dump() ໃນປັດຈຸບັນໃຫ້ຄໍາເຕືອນທາງເລືອກ "dump() ຂຽນດີກວ່າ
ຫຼັກ::dump()", ຊຶ່ງຫມາຍຄວາມວ່າໂດຍຄ່າເລີ່ມຕົ້ນ "dump(...)" ຖືກແກ້ໄຂເປັນ buildin. dump()
ທີ່ dumps ຫຼັກແລະ aborts, ບໍ່ແມ່ນເປັນ (ອາດຈະ) ຜູ້ໃຊ້ກໍານົດ "ການ dump ຍ່ອຍ". ໂທ​ຫາ
ສຸດທ້າຍ, ມີຄຸນສົມບັດການໂທເປັນ "&dump(...)". (ທັງ​ຫມົດ dump() ຄຸນນະສົມບັດແມ່ນພິຈາລະນາ
ເຊົາສະໜັບສະໜຸນ, ແລະອາດຈະຖືກເອົາອອກ/ປ່ຽນແປງໃນການປ່ອຍໃນອະນາຄົດ.)

· chomp() ແລະ ຟັກ() ໃນປັດຈຸບັນແມ່ນ overridable. ຢ່າງໃດກໍຕາມ, ໃຫ້ສັງເກດວ່າຕົ້ນແບບຂອງເຂົາເຈົ້າ (ຕາມທີ່ໄດ້ໃຫ້
ໂດຍ "prototype("CORE::chomp")" ແມ່ນບໍ່ໄດ້ກໍານົດ, ເພາະວ່າມັນບໍ່ສາມາດສະແດງອອກແລະ
ເພາະສະນັ້ນ, ຄົນເຮົາບໍ່ສາມາດຂຽນການທົດແທນເພື່ອ override buildins ເຫຼົ່ານີ້.

· END blocks ປະຈຸບັນດໍາເນີນການເຖິງແມ່ນວ່າທ່ານຈະອອກຈາກ / ຕາຍໃນ BEGIN block. ພາຍໃນ, ໄດ້
ການ​ປະ​ຕິ​ບັດ​ຂອງ END blocks ໃນ​ປັດ​ຈຸ​ບັນ​ໄດ້​ຖືກ​ຄວບ​ຄຸມ​ໂດຍ PL_exit_flags & PERL_EXIT_DESTRUCT_END.
ນີ້ເຮັດໃຫ້ພຶດຕິກໍາໃຫມ່ສໍາລັບ Perl embedders. ອັນນີ້ຈະເປັນຄ່າເລີ່ມຕົ້ນໃນ 5.10. ເບິ່ງ
perlembed.

· ຮູບແບບໃນປັດຈຸບັນຮອງຮັບຊ່ອງເລກທົດສະນິຍົມສູນ.

· ເຖິງແມ່ນວ່າ "ເຈົ້າບໍ່ຄວນເຮັດແນວນັ້ນ", ມັນເປັນໄປໄດ້ທີ່ຈະຂຽນລະຫັດທີ່ຂຶ້ນກັບ Perl's
hashed key order (ຂໍ້ມູນ::Dumper ເຮັດອັນນີ້). ສູດການຄິດໄລ່ໃຫມ່ "ຫນຶ່ງຄັ້ງຕໍ່ເວລາ" ຜະລິດ
ຄໍາສັ່ງ key hashed ທີ່ແຕກຕ່າງກັນ. ລາຍລະອຽດເພີ່ມເຕີມແມ່ນຢູ່ໃນ "ການປັບປຸງປະສິດທິພາບ".

· lstat(FILEHANDLE) ໃນປັດຈຸບັນໃຫ້ຄໍາເຕືອນເນື່ອງຈາກວ່າການດໍາເນີນງານບໍ່ມີຄວາມຫມາຍ. ໃນອະນາຄົດ
ການປ່ອຍນີ້ອາດຈະກາຍເປັນຄວາມຜິດພາດທີ່ຮ້າຍແຮງ.

· ຄວາມຜິດພາດ syntax spurious ສ້າງຂຶ້ນໃນສະຖານະການສະເພາະໃດຫນຶ່ງ, ໃນເວລາທີ່ ໂລກ() ໄຟລ໌ທີ່ເກີດຈາກ::Glob
ທີ່ຈະໂຫລດຄັ້ງທໍາອິດ, ໄດ້ຖືກແກ້ໄຂແລ້ວ. [561]

· Lvalue subroutines ດຽວນີ້ສາມາດສົ່ງຄືນ "undef" ໃນສະພາບການລາຍຊື່. ຢ່າງໃດກໍຕາມ, ມູນຄ່າ
ຄຸນສົມບັດຍ່ອຍປະຈຳການຍັງຄົງເປັນການທົດລອງຢູ່. [561+]

· ການ​ເຕືອນ​ໄພ​ສູນ​ເສຍ "ບໍ່​ສາ​ມາດ​ປະ​ກາດ ... dereference ໃນ​ຂອງ​ຂ້າ​ພະ​ເຈົ້າ​" ໄດ້​ຮັບ​ການ​ຟື້ນ​ຟູ (Perl ມີ​ມັນ​.
ກ່ອນຫນ້ານີ້ແຕ່ມັນສູນເສຍໃນການປ່ອຍຕໍ່ມາ.)

· ມີການນຳສະເໜີຕົວແປແບບປົກກະຕິພິເສດໃໝ່: $^N, ເຊິ່ງປະກອບດ້ວຍ
ກຸ່ມທີ່ປິດຫຼ້າສຸດ (ການແຂ່ງຂັນຍ່ອຍ).

· "ບໍ່ມີໂມດູນ;" ບໍ່ຜະລິດຂໍ້ຜິດພາດເຖິງແມ່ນວ່າ Module ບໍ່ມີ ບໍ່ນຳເຂົ້າ()
ວິທີການ. ນີ້ຂະຫນານກັບພຶດຕິກໍາຂອງ "ການນໍາໃຊ້" vis-a-vis "ນໍາເຂົ້າ". [561]

· ຕົວປະຕິບັດການປຽບທຽບຕົວເລກຈະສົ່ງຄືນ "undef" ຖ້າຕົວປະຕິບັດການແມ່ນ NaN.
ກ່ອນຫນ້ານີ້, ພຶດຕິກໍາດັ່ງກ່າວບໍ່ໄດ້ຖືກລະບຸ.

· ໃນປັດຈຸບັນ "ຂອງພວກເຮົາ" ສາມາດມີຄຸນສົມບັດທາງເລືອກທົດລອງ "ເປັນເອກະລັກ" ທີ່ມີຜົນກະທົບທົ່ວໂລກ
ຕົວແປຖືກແບ່ງປັນໃນບັນດານາຍແປພາສາຫຼາຍ, ເບິ່ງ "ຂອງພວກເຮົາ" ໃນ perlfunc.

·ຟັງຊັນ builtin ຕໍ່ໄປນີ້ແມ່ນ overridable: ແຕ່ລະ(), ກະແຈ(), pop (), ຍູ້(),
shift(), splic(), unshift()ທີ່ຢູ່ [561]

· "pack() / unpack()" ດຽວນີ້ສາມາດຈັດກຸ່ມຕົວອັກສອນແມ່ແບບດ້ວຍ "()" ແລະຫຼັງຈາກນັ້ນນໍາໃຊ້
ຕົວແກ້ໄຂການຊໍ້າຄືນ/ນັບຢູ່ໃນກຸ່ມ.

· "pack() / unpack()" ໃນປັດຈຸບັນສາມາດປະມວນຜົນປະເພດຕົວເລກພາຍໃນ Perl: IVs, UVs, NVs--
ແລະຍັງຍາວສອງເທົ່າ, ຖ້າໄດ້ຮັບການສະຫນັບສະຫນູນຈາກເວທີ. ຕົວອັກສອນແມ່ແບບແມ່ນ "j",
"J", "F", ແລະ "D".

· ຕອນນີ້ສາມາດໃຊ້ "pack('U0a*', ...)" ເພື່ອບັງຄັບສາຍໄປຫາ UTF-8.

· __PACKAGE__ $obj ຂອງຂ້ອຍຕອນນີ້ໃຊ້ໄດ້ແລ້ວ. [561]

· POSIX::ນອນ() ໃນປັດຈຸບັນກັບຄືນຈໍານວນຂອງ ບໍ່ໄດ້ນອນ ວິນາທີ (ຕາມມາດຕະຖານ POSIX ກ່າວ),
ຊຶ່ງກົງກັນຂ້າມກັບ ຫຼັກ :: ນອນ () ເຊິ່ງສົ່ງຄືນຈໍານວນວິນາທີທີ່ນອນ.

· printf() ແລະ sprintf() ຕອນນີ້ຮອງຮັບການສັ່ງພາລາມິເຕີຄືນໃໝ່ໂດຍໃຊ້ "%\d+\$" ແລະ
syntaxes "*\d+\$". ຍົກ​ຕົວ​ຢ່າງ

printf "%2\$s %1\$s\n", "foo", "bar";

ຈະພິມ "bar foo\n". ຄຸນນະສົມບັດນີ້ຊ່ວຍໃນການຂຽນຊອບແວສາກົນ, ແລະ
ໂດຍທົ່ວໄປໃນເວລາທີ່ຄໍາສັ່ງຂອງຕົວກໍານົດການສາມາດແຕກຕ່າງກັນ.

· ຕົ້ນແບບ (\&) ໃນປັດຈຸບັນເຮັດວຽກຢ່າງຖືກຕ້ອງ. [561]

· prototype(\[$@%&]) ປະຈຸບັນມີໃຫ້ແລ້ວເພື່ອສ້າງການອ້າງອິງ implicitly (ເປັນປະໂຫຍດສໍາລັບ
ຕົວຢ່າງຖ້າທ່ານຕ້ອງການເຮັດຕາມ ມັດ() ການໂຕ້ຕອບ).

· ຕົວເລືອກເສັ້ນຄຳສັ່ງໃໝ່, "-t" ແມ່ນມີຢູ່. ມັນແມ່ນນ້ອງຊາຍຂອງ "-T":
ແທນ​ທີ່​ຈະ​ຕາຍ​ໃນ​ການ​ລະ​ເມີດ taint, ຄໍາ​ເຕືອນ lexical ແມ່ນ​ໄດ້​ຮັບ​ໃຫ້. ນີ້ is ພຽງແຕ່ ຫມາຍຄວາມວ່າ
as a ຊົ່ວຄາວ debugging ຊ່ວຍເຫຼືອ ໃນຂະນະທີ່ ການຮັກສາຄວາມປອດໄພ ໄດ້ ລະຫັດ of ອາຍຸ legacy ຄໍາຮ້ອງສະຫມັກ. ນີ້
is ບໍ່ a ທົດແທນ ສໍາລັບການ ທ.

· ໃນ​ຂ່າວ​ສານ​ທີ່​ບໍ່​ພໍ​ໃຈ​ອື່ນໆ​, "ບັນ​ຊີ​ລາຍ​ການ exec​" ແລະ "ບັນ​ຊີ​ລາຍ​ການ​ລະ​ບົບ​" ໄດ້​ຖືກ​ພິ​ຈາ​ລະ​ນາ​ເຊັ່ນ​ດຽວ​ກັນ​
ມີຄວາມສ່ຽງ (ຄິດວ່າ "exec @ ARGV": ມັນສາມາດເລີ່ມຕົ້ນໂຄງການທີ່ມີການໂຕ້ຖຽງໃດໆ), ແລະໃນປັດຈຸບັນ
ຮູບແບບດັ່ງກ່າວເຮັດໃຫ້ເກີດການເຕືອນໄພພາຍໃຕ້ຄໍາເຕືອນ lexical. ທ່ານລະມັດລະວັງຄວນຊັກ
ການໂຕ້ຖຽງເພື່ອຮັບປະກັນຄວາມຖືກຕ້ອງຂອງພວກເຂົາ. ໃນການປ່ອຍ Perl ໃນອະນາຄົດ, ແບບຟອມຈະ
ກາຍເປັນຄວາມຜິດພາດທີ່ຮ້າຍແຮງດັ່ງນັ້ນພິຈາລະນາເລີ່ມຕົ້ນການຟອກໃນປັດຈຸບັນ.

· Tied hash interfaces ໃນ​ປັດ​ຈຸ​ບັນ​ຈໍາ​ເປັນ​ຕ້ອງ​ມີ​ວິ​ທີ​ການ​ທີ່​ມີ​ຢູ່​ແລະ​ການ​ລົບ (ບໍ່​ວ່າ​ຈະ​ເປັນ​
ເປັນເຈົ້າຂອງຫຼືສືບທອດ).

· ຖ້າ tr/// ແມ່ນພຽງແຕ່ການນັບຕົວອັກສອນ, ມັນບໍ່ພະຍາຍາມທີ່ຈະດັດແປງເປົ້າຫມາຍຂອງມັນ.

· unie() ໃນປັດຈຸບັນຈະໂທຫາ UNTIE() hook ຖ້າມັນມີຢູ່. ເບິ່ງ perltie ສໍາລັບລາຍລະອຽດ. [561]

· "utime" ໃນ perlfunc ປະຈຸບັນສະຫນັບສະຫນູນ "utime undef, undef, @files" ເພື່ອປ່ຽນໄຟລ໌
ສະແຕມເວລາເຖິງເວລາປະຈຸບັນ.

· ກົດລະບຽບສໍາລັບການອະນຸຍາດໃຫ້ underscores (underbars) ໃນຄົງຕົວເລກໄດ້ຖືກຜ່ອນຄາຍ
ແລະງ່າຍດາຍ: ໃນປັດຈຸບັນທ່ານສາມາດມີ underscore ງ່າຍດາຍ ລະຫວ່າງ ຕົວເລກ.

· ແທນທີ່ຈະອີງໃສ່ C's argv[0] (ເຊິ່ງອາດຈະບໍ່ມີຊື່ເສັ້ນທາງເຕັມ) ບ່ອນທີ່
ເປັນໄປໄດ້ $^X ດຽວນີ້ຖືກຕັ້ງໂດຍການຖາມລະບົບປະຕິບັດການ. (ຕົວຢ່າງໂດຍການອ່ານ /proc/self/exe
ໃນ Linux, /proc/curproc/file ໃນ FreeBSD)

· ຕົວແປໃໝ່, "${^TAINT}", ຊີ້ບອກວ່າເປີດໃຊ້ໂໝດ taint ຫຼືບໍ່.

·ຕອນນີ້ທ່ານສາມາດ override ໄດ້ ແຖວອ່ານ() buildin, ແລະນີ້ overrides ຍັງ
ຕົວປະຕິບັດການວົງເລັບມຸມ.

· ຕົວເລືອກແຖວຄຳສັ່ງ -s ແລະ -F ຕອນນີ້ຖືກຮັບຮູ້ຢູ່ໃນເສັ້ນ shebang (#!) ແລ້ວ.

· ການ​ນໍາ​ໃຊ້​ຕົວ​ປັບ​ປຸງ "/c​" ການ​ແຂ່ງ​ຂັນ​ໂດຍ​ບໍ່​ມີ​ການ​ມາ​ພ້ອມ "/g​" modifier elicits ໃຫມ່
ການເຕືອນໄພ: "ການໃຊ້ຕົວປັບປ່ຽນ /c ບໍ່ມີຄວາມຫມາຍໂດຍບໍ່ມີ /g".

ການໃຊ້ "/c" ໃນການທົດແທນ, ເຖິງແມ່ນວ່າມີ "/g", elicits "ການໃຊ້ /c modifier ແມ່ນ
ບໍ່ມີຄວາມຫມາຍໃນ s ///".

ການໃຊ້ "/g" ກັບ "split" elicits "ການໃຊ້ /g modifier ແມ່ນບໍ່ມີຄວາມຫມາຍໃນການແບ່ງປັນ".

· ການ​ສະ​ຫນັບ​ສະ​ຫນູນ​ສໍາ​ລັບ "CLONE​" subroutine ພິ​ເສດ​ໄດ້​ຮັບ​ການ​ເພີ່ມ​. ມີ ithreads, ໃນເວລາທີ່ໃຫມ່
ກະທູ້ຖືກສ້າງຂື້ນ, ຂໍ້ມູນ Perl ທັງຫມົດແມ່ນຖືກໂຄນ, ແນວໃດກໍ່ຕາມຂໍ້ມູນທີ່ບໍ່ແມ່ນ Perl ບໍ່ສາມາດຖືກໂຄນໄດ້
ອັດຕະໂນມັດ. ໃນ "CLONE" ທ່ານສາມາດເຮັດອັນໃດກໍໄດ້ທີ່ທ່ານຕ້ອງການເຮັດ, ເຊັ່ນ: ການຈັດການຕົວຢ່າງ
cloning ຂອງຂໍ້ມູນທີ່ບໍ່ແມ່ນ Perl, ຖ້າຈໍາເປັນ. "CLONE" ຈະຖືກປະຕິບັດຄັ້ງດຽວສໍາລັບທຸກໆຄັ້ງ
ຊຸດທີ່ມັນໄດ້ກໍານົດຫຼືສືບທອດ. ມັນຈະຖືກເອີ້ນໃນສະພາບການໃຫມ່
thread, ດັ່ງນັ້ນການດັດແກ້ທັງຫມົດແມ່ນເຮັດຢູ່ໃນພື້ນທີ່ໃຫມ່.

ເບິ່ງ perlmod

ໂມດູນ ແລະ ປາກເວົ້າ


ໃຫມ່ ໂມດູນ ແລະ ປາກເວົ້າ
· "ຄຸນລັກສະນະ::Handlers", ເດີມໂດຍ Damian Conway ແລະປະຈຸບັນຮັກສາໄວ້ໂດຍ Arthur
Bergman, ອະນຸຍາດໃຫ້ຫ້ອງຮຽນເພື່ອກໍານົດຕົວຈັດການຄຸນລັກສະນະ.

ຊຸດ MyPack;
ໃຊ້ຄຸນລັກສະນະ::ຕົວຈັດການ;
sub Wolf :ATTR(SCALAR) { print "howl!\n" }

# ຕໍ່ມາ, ໃນບາງຊຸດທີ່ໃຊ້ຫຼືສືບທອດຈາກ MyPack ...

MyPack ຂອງຂ້ອຍ $Fluffy : Wolf; # ຕົວຈັດການຄຸນລັກສະນະ Wolf ຈະຖືກເອີ້ນ

ທັງສອງຕົວແປ ແລະ routines ສາມາດມີຕົວຈັດການຄຸນລັກສະນະ. Handlers ສາມາດສະເພາະກັບ
ປະເພດ (SCALAR, ARRAY, HASH, ຫຼື CODE), ຫຼືສະເພາະກັບໄລຍະການລວບລວມຂໍ້ມູນທີ່ແນ່ນອນ
(ເລີ່ມ, ກວດເບິ່ງ, INIT, ຫຼື END). ເບິ່ງຄຸນສົມບັດ::ຕົວຈັດການ.

· "B::Concise", ໂດຍ Stephen McCamant, ເປັນ backend compiler ໃຫມ່ສໍາລັບການຍ່າງ Perl.
ຕົ້ນໄມ້ syntax, ການພິມຂໍ້ມູນຫຍໍ້ກ່ຽວກັບ ops. ຜົນຜະລິດແມ່ນສາມາດປັບແຕ່ງໄດ້ສູງ. ເບິ່ງ
B:: ຫຍໍ້. [561+]

· bignum ໃຫມ່, bigint, ແລະ bigrat pragmas, ໂດຍ Tels, ປະຕິບັດ bignum ໂປ່ງໃສ
ສະຫນັບສະຫນູນ (ການນໍາໃຊ້ຄະນິດສາດ::BigInt, Math::BigFloat, ແລະ Math::BigRat backends).

· "ຫ້ອງຮຽນ::ISA", ໂດຍ Sean Burke, ແມ່ນໂມດູນສໍາລັບການລາຍງານເສັ້ນທາງຄົ້ນຫາສໍາລັບຫ້ອງຮຽນ.
ຕົ້ນໄມ້ ISA. ເບິ່ງຫ້ອງຮຽນ::ISA.

· "Cwd" ໃນປັດຈຸບັນມີບຸກຄະລິກກະພາບທີ່ແບ່ງອອກ: ຖ້າເປັນໄປໄດ້, ການຂະຫຍາຍ XS ຖືກນໍາໃຊ້, (ນີ້ຈະ
ຫວັງວ່າຈະໄວກວ່າ, ປອດໄພກວ່າ, ແລະເຂັ້ມແຂງກວ່າ) ແຕ່ຖ້າເປັນໄປບໍ່ໄດ້, ຄຸ້ນເຄີຍ
ການປະຕິບັດ Perl ຖືກນໍາໃຊ້.

· "Devel::PPPort", ເດີມໂດຍ Kenneth Albanowski ແລະປະຈຸບັນຮັກສາໄວ້ໂດຍ Paul Marques,
ໄດ້ຖືກເພີ່ມ. ມັນຖືກນໍາໃຊ້ຕົ້ນຕໍໂດຍ "h2xs" ເພື່ອເພີ່ມຄວາມຍືດຫຍຸ່ນຂອງໂມດູນ XS
ລະຫວ່າງສະບັບທີ່ແຕກຕ່າງກັນຂອງ Perl. ເບິ່ງ Devel::PPPort.

· "Digest", ໂມດູນ frontend ສໍາລັບການຄິດໄລ່ digests (checksums), ຈາກ Gisle Aas, ມີ
ໄດ້ຖືກເພີ່ມ. ເບິ່ງ Digest.

· "Digest::MD5" ສໍາລັບການຄິດໄລ່ MD5 digests (checksums) ຕາມທີ່ກໍານົດໃນ RFC 1321, ຈາກ
Gisle Aas, ໄດ້ຖືກເພີ່ມ. ເບິ່ງ Digest::MD5.

ໃຊ້ Digest::MD5 'md5_hex';

$digest = md5_hex("ຫິວ Camel");

print $digest, "\n"; # 01d19d9d2045e005c3f1b80e8b164de1

ໝາຍເຫດ: ໂມດູນຄວາມເຂົ້າກັນໄດ້ກັບຫຼັງ "MD5" ບໍ່ໄດ້ລວມເຂົ້າກັນໂດຍເຈດຕະນານັບຕັ້ງແຕ່ມັນ
ການ​ນໍາ​ໃຊ້​ຕໍ່​ໄປ​ແມ່ນ​ທໍ້​ຖອຍ​ໃຈ​.

ເບິ່ງນຳ PerlIO::via::QuotedPrint.

· "ການເຂົ້າລະຫັດ", ເດີມໂດຍ Nick Ing-Simmons ແລະປະຈຸບັນຮັກສາໄວ້ໂດຍ Dan Kogai, ສະຫນອງການ
ກົນໄກການແປລະຫວ່າງການເຂົ້າລະຫັດຕົວອັກສອນທີ່ແຕກຕ່າງກັນ. ຮອງຮັບ Unicode,
ISO-8859-1, ແລະ ASCII ຖືກລວບລວມຢູ່ໃນໂມດູນ. ການເຂົ້າລະຫັດອື່ນໆຫຼາຍອັນ (ເຊັ່ນ
ສ່ວນທີ່ເຫຼືອຂອງ ISO-8859, CP*/Win*, Mac, KOI8-R, ສາມລຸ້ນ EBCDIC, ຈີນ,
ການເຂົ້າລະຫັດພາສາຍີ່ປຸ່ນ, ແລະເກົາຫຼີ) ແມ່ນລວມເຂົ້າ ແລະສາມາດໂຫຼດໄດ້ໃນເວລາແລ່ນ. (ສໍາ​ລັບ​ຊ່ອງ​
ພິຈາລະນາ, ການເຂົ້າລະຫັດຈີນທີ່ໃຫຍ່ທີ່ສຸດໄດ້ຖືກແຍກອອກເປັນ CPAN ຂອງຕົນເອງ
ໂມດູນ, ເຂົ້າລະຫັດ::HanExtra, ເຊິ່ງການເຂົ້າລະຫັດຈະໃຊ້ຖ້າມີ). ເບິ່ງການເຂົ້າລະຫັດ.

ການເຂົ້າລະຫັດໃດໆທີ່ຮອງຮັບໂດຍໂມດູນການເຂົ້າລະຫັດແມ່ນມີຢູ່ໃນ ":ການເຂົ້າລະຫັດ()"ຊັ້ນ
ຖ້າ PerlIO ຖືກໃຊ້.

· "Hash::Util" ແມ່ນການໂຕ້ຕອບຂອງໃຫມ່ ຖືກຈໍາກັດ ແຮຊ ຄຸນ​ນະ​ສົມ​ບັດ. (ປະຕິບັດໂດຍ
Jeffrey Friedl, Nick Ing-Simmons, ແລະ Michael Schwern.) ເບິ່ງ Hash::Util.

· "I18N::Langinfo" ສາມາດໃຊ້ເພື່ອສອບຖາມຂໍ້ມູນທ້ອງຖິ່ນ. ເບິ່ງ I18N::Langinfo.

· "I18N::LangTags", ໂດຍ Sean Burke, ມີຫນ້າທີ່ສໍາລັບການຈັດການກັບພາສາ RFC3066
ແທັກ. ເບິ່ງ I18N::LangTags.

· "ExtUtils::Constant", ໂດຍ Nicholas Clark, ເປັນເຄື່ອງມືໃຫມ່ສໍາລັບນັກຂຽນການຂະຫຍາຍສໍາລັບ
ການສ້າງລະຫັດ XS ເພື່ອນໍາເຂົ້າຄ່າຄົງທີ່ຂອງຫົວ C. ເບິ່ງ ExtUtils::Constant.

· "Filter::Simple", ໂດຍ Damian Conway, ເປັນສ່ວນຫນ້າທີ່ໃຊ້ງ່າຍໃນການກັ່ນຕອງ::Util::Call.
ເບິ່ງການກັ່ນຕອງ::ງ່າຍດາຍ.

# ໃນ MyFilter.pm:

ຊຸດ MyFilter;

ໃຊ້ Filter::ຍ່ອຍງ່າຍ {
while (my ($from, $to) = splice @_, 0, 2) {
s/$from/$to/g;
}
};

1;

# ໃນລະຫັດຂອງຜູ້ໃຊ້:

ໃຊ້ MyFilter qr/red/ => 'ສີຂຽວ';

ພິມ "ສີແດງ\n"; # ລະຫັດນີ້ຖືກກັ່ນຕອງ, ຈະພິມ "ສີຂຽວ\n"
ພິມ "ເບື່ອ\n"; # ລະຫັດນີ້ຖືກກັ່ນຕອງ, ຈະພິມ "bogreen\n"

ບໍ່ມີ MyFilter;

ພິມ "ສີແດງ\n"; # ລະຫັດນີ້ບໍ່ໄດ້ຖືກກັ່ນຕອງ, ຈະພິມ "ສີແດງ\n"

· "File::Temp", ໂດຍ Tim Jenness, ອະນຸຍາດໃຫ້ຫນຶ່ງເພື່ອສ້າງໄຟລ໌ຊົ່ວຄາວແລະໄດເລກະທໍລີໃນ
ເປັນວິທີທີ່ງ່າຍ, ພົກພາໄດ້, ແລະປອດໄພ. ເບິ່ງໄຟລ໌::Temp. [561+]

· "Filter::Util::Call", ໂດຍ Paul Marquess, ໃຫ້ທ່ານມີກອບໃນການຂຽນ.
ແຫຼ່ງ ຕົວກອງ ໃນ Perl. ສໍາ​ລັບ​ການ​ນໍາ​ໃຊ້​ຫຼາຍ​ທີ່​ສຸດ​, ການ​ກັ່ນ​ຕອງ frontend ::ງ່າຍ​ດາຍ​ແມ່ນ​ຈະ​ເປັນ​
ມັກ. ເບິ່ງການກັ່ນຕອງ::Util::Call.

· "ຖ້າ", ໂດຍ Ilya Zakharevich, ແມ່ນ pragma ໃຫມ່ສໍາລັບການລວມເອົາໂມດູນທີ່ມີເງື່ອນໄຂ.

· libnet, ໂດຍ Graham Barr, ແມ່ນການເກັບກໍາຂອງ perl5 ໂມດູນທີ່ກ່ຽວຂ້ອງກັບເຄືອຂ່າຍ
ການຂຽນໂປລແກລມ. ເບິ່ງສຸດທິ::FTP, ສຸດທິ::NNTP, ສຸດທິ::Ping (ບໍ່ແມ່ນສ່ວນຫນຶ່ງຂອງ libnet, ແຕ່ກ່ຽວຂ້ອງ),
ສຸດທິ::POP3, ສຸດທິ::SMTP, ແລະສຸດທິ::ເວລາ.

ການຕິດຕັ້ງ Perl ປ່ອຍໃຫ້ libnet unconfigured; ໃຊ້ libnetcfg ຕັ້ງຄ່າມັນ.

· "List::Util", ໂດຍ Graham Barr, ແມ່ນການຄັດເລືອກຂອງ subroutines ບັນຊີລາຍຊື່ຜົນປະໂຫຍດທົ່ວໄປ, ເຊັ່ນ:
as ຜົນລວມ(), ນາທີ(), ທຳອິດ(), ແລະ ສະຫຼັບ(). ເບິ່ງລາຍການ::Util.

· "ທ້ອງຖິ່ນ::ຄົງທີ່", "ທ້ອງຖິ່ນ::ປະເທດ", "ທ້ອງຖິ່ນ::ສະກຸນເງິນ" "ທ້ອງຖິ່ນ::ພາສາ", ແລະ
ທ້ອງຖິ່ນ::Script, ໂດຍ Neil Bowers, ໄດ້ຖືກເພີ່ມ. ພວກເຂົາເຈົ້າສະຫນອງລະຫັດສໍາລັບການຕ່າງໆ
ມາດຕະຖານທ້ອງຖິ່ນ, ເຊັ່ນ "fr" ສໍາລັບຝຣັ່ງ, "usd" ສໍາລັບເງິນໂດລາສະຫະລັດ, ແລະ "ja" ສໍາລັບພາສາຍີ່ປຸ່ນ.

ໃຊ້ Locale::ປະເທດ;

$country = code2country('jp'); #$country ໄດ້ 'ຍີ່ປຸ່ນ'
$code = country2code('ນໍເວ'); # $code ໄດ້ຮັບ 'ບໍ່'

ເບິ່ງ Locale::Constant, Locale::Country, Locale::Currency, and Locale::Language.

· "ທ້ອງຖິ່ນ::Maketext", ໂດຍ Sean Burke, ເປັນກອບການທ້ອງຖິ່ນ. ເບິ່ງທ້ອງຖິ່ນ:: Maketext,
ແລະທ້ອງຖິ່ນ::Maketext::TPJ13. ສຸດທ້າຍແມ່ນບົດຄວາມກ່ຽວກັບການທ້ອງຖິ່ນຊອບແວ,
ຈັດພີມມາໃນເບື້ອງຕົ້ນໃນ The Perl Journal #13, ແລະ republished here with kind
ການອະນຸຍາດ.

· "Math::BigRat" ສໍາລັບຕົວເລກສົມເຫດສົມຜົນໃຫຍ່, ເພື່ອມາພ້ອມກັບຄະນິດສາດ::BigInt ແລະ Math::BigFloat,
ຈາກ Tels. ເບິ່ງຄະນິດສາດ::BigRat.

· "Memoize" ສາມາດເຮັດໃຫ້ຫນ້າທີ່ຂອງທ່ານໄວຂຶ້ນໂດຍການຊື້ຂາຍພື້ນທີ່ສໍາລັບເວລາ, ຈາກ Mark-Jason
Dominus. ເບິ່ງ Memoize.

· "MIME::Base64", ໂດຍ Gisle Aas, ຊ່ວຍໃຫ້ທ່ານສາມາດເຂົ້າລະຫັດຂໍ້ມູນໃນ base64, ຕາມທີ່ກໍານົດໃນ RFC.
2045 - Mime (ອະເນກປະສົງ ອິນເຕີເນັດ mail ສ່ວນຂະຫຍາຍ).

ໃຊ້ MIME::Base64;

$encoded = encode_base64('Aladdin:open sesame');
$decoded = decode_base64($encoded);

ພິມ $ encoded, "\n"; # "QWxhZGRpbjpvcGVuIHNlc2FtZQ=="

ເບິ່ງ MIME::Base64.

· "MIME::QuotedPrint", ໂດຍ Gisle Aas, ອະນຸຍາດໃຫ້ທ່ານສາມາດເຂົ້າລະຫັດຂໍ້ມູນໃນຄໍາເວົ້າທີ່ພິມໄດ້.
ການເຂົ້າລະຫັດ, ຕາມທີ່ໄດ້ກໍານົດໄວ້ໃນ RFC 2045 - Mime (ອະເນກປະສົງ ອິນເຕີເນັດ mail ສ່ວນຂະຫຍາຍ).

ໃຊ້ MIME::QuotedPrint;

$encoded = encode_qp("\xDE\xAD\xBE\xEF");
$decoded = decode_qp($encoded);

ພິມ $ encoded, "\n"; # "=DE=AD=BE=EF\n"
ພິມ $decoded, "\n"; # "\xDE\xAD\xBE\xEF\n"

ເບິ່ງນຳ PerlIO::via::QuotedPrint.

· "NEXT", ໂດຍ Damian Conway, ແມ່ນ pseudo-class ສໍາລັບວິທີການ redispatch. ເບິ່ງຕໍ່ໄປ.

· "ເປີດ" ແມ່ນ pragma ໃຫມ່ສໍາລັບການກໍານົດຊັ້ນ I/O ເລີ່ມຕົ້ນສໍາລັບ ເປີດ().

· "PerlIO::scalar", ໂດຍ Nick Ing-Simmons, ສະຫນອງການປະຕິບັດຂອງ IO ກັບ "ໃນ.
ໜ່ວຍຄວາມຈຳ" Perl scalers ດັ່ງທີ່ໄດ້ກ່າວມາຂ້າງເທິງ. ມັນຍັງເປັນຕົວຢ່າງຂອງການໂຫຼດໄດ້
ຊັ້ນ PerlIO. ຄວາມເປັນໄປໄດ້ອື່ນໆໃນອະນາຄົດລວມມີ PerlIO::Array ແລະ PerlIO::Code. ເບິ່ງ
PerlIO::scalar.

· "PerlIO::via", ໂດຍ Nick Ing-Simmons, ເຮັດຫນ້າທີ່ເປັນຊັ້ນ PerlIO ແລະຫໍ່ຊັ້ນ PerlIO.
ການທໍາງານທີ່ສະຫນອງໃຫ້ໂດຍຫ້ອງຮຽນ (ປົກກະຕິແລ້ວປະຕິບັດໃນລະຫັດ Perl).

· "PerlIO::via::QuotedPrint", ໂດຍ Elizabeth Mattijsen, ແມ່ນຕົວຢ່າງຂອງ "PerlIO::via"
ຫ້ອງຮຽນ:

ໃຊ້ PerlIO::via::QuotedPrint;
open($fh,">:via(QuotedPrint)",$path);

ນີ້ຈະປ່ຽນຜົນຜະລິດທັງໝົດເປັນ $fh ໄປເປັນ Quoted-Printable ໂດຍອັດຕະໂນມັດ. ເບິ່ງ
PerlIO::via ແລະ PerlIO::via::QuotedPrint.

· "Pod::ParseLink", ໂດຍ Russ Allbery, ໄດ້ຖືກເພີ່ມ, ເພື່ອວິເຄາະ L<> ເຊື່ອມຕໍ່ໃນຝັກເປັນ
ອະທິບາຍໃນ perlpodspec ໃຫມ່.

· "Pod::Text::Overstrike", ໂດຍ Joe Smith, ໄດ້ຖືກເພີ່ມ. ມັນແປງຂໍ້ມູນ POD ເປັນ
ຮູບແບບຂໍ້ຄວາມ overstrike. ເບິ່ງ Pod::Text::Overstrike. [561+]

· "Scalar::Util" ເປັນ​ການ​ຄັດ​ເລືອກ​ຂອງ subroutines ສະ​ເກັດ​ທີ່​ເປັນ​ປະ​ໂຫຍດ​ທົ່ວ​ໄປ​, ເຊັ່ນ​:
ພອນ (), reftype(), ແລະ ເປື້ອນ(). ເບິ່ງ Scalar::Util.

· "ຄັດ" ແມ່ນ pragma ໃຫມ່ສໍາລັບການຄວບຄຸມພຶດຕິກໍາຂອງ ຄັດ ().

· "Storable" ເຮັດໃຫ້ມັນຄົງຢູ່ກັບໂຄງສ້າງຂໍ້ມູນ Perl ໂດຍການອະນຸຍາດໃຫ້ເກັບຮັກສາແລະ
ດຶງຂໍ້ມູນ Perl ໄປແລະຈາກໄຟລ໌ໃນຮູບແບບສອງໄວແລະຫນາແຫນ້ນ. ເນື່ອງຈາກວ່າ
ໃນ​ຜົນ​ກະ​ທົບ Storable ເຮັດ serialization ຂອງ​ໂຄງ​ສ້າງ​ຂໍ້​ມູນ Perl, ກັບ​ມັນ​ທ່ານ​ຍັງ​ສາ​ມາດ​ເຮັດ​ໄດ້
clone ເລິກ, ໂຄງສ້າງຂໍ້ມູນຕາມລໍາດັບ. ການເກັບຮັກສາໄດ້ຖືກສ້າງຂື້ນໃນເບື້ອງຕົ້ນໂດຍ Raphael
Manfredi, ແຕ່ປະຈຸບັນມັນຖືກຮັກສາໄວ້ໂດຍ Abhijit Menon-Sen. ການເກັບຮັກສາໄດ້ຮັບການປັບປຸງ
ເພື່ອເຂົ້າໃຈຄຸນສົມບັດ hash ໃໝ່ສອງອັນ, ລະຫັດ Unicode ແລະເຄື່ອງໝາຍຖືກຈຳກັດ. ເບິ່ງ
ເກັບຮັກສາໄດ້.

· "ປ່ຽນ", ໂດຍ Damian Conway, ໄດ້ຖືກເພີ່ມ. ພຽງແຕ່ເວົ້າ

ໃຊ້ Switch;

ທ່ານມີ "ສະຫຼັບ" ແລະ "ກໍລະນີ" ທີ່ມີຢູ່ໃນ Perl.

ໃຊ້ Switch;

ສະຫຼັບ ($val) {

ກໍລະນີ 1 { ພິມ "ຈໍານວນ 1" }
case "a" {ພິມ "string a" }
ກໍ​ລະ​ນີ [1..10,42] {ພິມ "ຕົວເລກໃນບັນຊີລາຍຊື່" }
case (@array) { print "number in list" }
ກໍລະນີ /\w+/ { ພິມ "ຮູບແບບ" }
ກໍລະນີ qr/\w+/ { ພິມ "ຮູບແບບ" }
case (%hash) { ພິມ "ການເຂົ້າຢູ່ໃນ hash" }
case (\%hash) { ພິມ "ການປ້ອນຂໍ້ມູນໃນ hash" }
case (\&sub) { print "arg to subroutine" }
else {ພິມ "ກໍລະນີກ່ອນໜ້ານີ້ບໍ່ເປັນຄວາມຈິງ" }
}

ເບິ່ງ Switch.

· "Test::More", ໂດຍ Michael Schwern, ແມ່ນອີກໂຄງຮ່າງການສໍາລັບການຂຽນບົດທົດສອບ,
ກວ້າງກວ່າການທົດສອບ::ງ່າຍດາຍ. ເບິ່ງການທົດສອບ::ເພີ່ມເຕີມ.

· "Test::Simple", ໂດຍ Michael Schwern, ມີອຸປະກອນພື້ນຖານສໍາລັບການທົດສອບການຂຽນ. ເບິ່ງ
ການທົດສອບ::ງ່າຍດາຍ.

· "Text::Balanced", ໂດຍ Damian Conway, ໄດ້ຖືກເພີ່ມ, ສໍາລັບການສະກັດຂໍ້ຄວາມ delimited
ລໍາດັບຈາກສະຕຣິງ.

ໃຊ້ຂໍ້ຄວາມ::Balanced 'extract_delimited';

($a, $b) = extract_delimited("'ບໍ່ເຄີຍເວົ້າວ່າບໍ່ເຄີຍ', ລາວບໍ່ເຄີຍເວົ້າ", "'", '');

$a ຈະເປັນ "'ບໍ່ເຄີຍເວົ້າວ່າບໍ່ເຄີຍ'", $b ຈະເປັນ ', ລາວບໍ່ເຄີຍເວົ້າ'.

ນອກ​ຈາກ​ນັ້ນ extract_delimited(), ຍັງມີອີກ extract_bracketed(),
extract_quotelike(), extract_codeblock(), extract_variable(), extract_tagged(),
extract_multiple(), gen_delimited_pat(), ແລະ gen_extract_tagged(). ດ້ວຍສິ່ງເຫຼົ່ານີ້, ເຈົ້າ
ສາ​ມາດ​ປະ​ຕິ​ບັດ​ວິ​ທີ​ການ​ວິ​ເຄາະ​ຂັ້ນ​ສູງ​ຫຼາຍ​. ເບິ່ງຂໍ້ຄວາມ::ສົມດູນ.

· "ກະທູ້", ໂດຍ Arthur Bergman, ເປັນການໂຕ້ຕອບກັບຫົວຂໍ້ແປພາສາ. ນາຍພາສາ
threads (ithreads) ແມ່ນຮູບແບບກະທູ້ໃຫມ່ທີ່ນໍາສະເຫນີໃນ Perl 5.6 ແຕ່ສາມາດໃຊ້ໄດ້ເທົ່ານັ້ນ
ເປັນການໂຕ້ຕອບພາຍໃນສໍາລັບນັກຂຽນສ່ວນຂະຫຍາຍ (ແລະສໍາລັບ Win32 Perl ສໍາລັບ "fork()"
emulation). ເບິ່ງຫົວຂໍ້, ກະທູ້::shared, ແລະ perlthrtut.

· "ກະທູ້::shared", ໂດຍ Arthur Bergman, ອະນຸຍາດໃຫ້ແບ່ງປັນຂໍ້ມູນສໍາລັບຫົວຂໍ້ແປພາສາ.
ເບິ່ງຫົວຂໍ້::shared.

· "Tie::File", ໂດຍ Mark-Jason Dominus, ເຊື່ອມໂຍງອາເຣ Perl ກັບສາຍຂອງໄຟລ໌.
ເບິ່ງ Tie::File.

· "Tie::Memoize", ໂດຍ Ilya Zakharevich, ສະຫນອງ hashes ໂຫຼດຕາມຄວາມຕ້ອງການ. ເບິ່ງ
Tie::Memoize.

· "Tie::RefHash::Nestable", ໂດຍ Edward Avis, ອະນຸຍາດໃຫ້ເກັບຮັກສາການອ້າງອິງ hash (ບໍ່ຄືກັບ
ມາດຕະຖານ Tie::RefHash) ໂມດູນແມ່ນບັນຈຸຢູ່ໃນ Tie::RefHash. ເບິ່ງ
Tie::RefHash.

· "ເວລາ::HiRes", ໂດຍ Douglas E. Wegscheid, ສະຫນອງເວລາທີ່ມີຄວາມລະອຽດສູງ (ualarm,
usleep, ແລະ gettime ofday). ເບິ່ງເວລາ::HiRes.

· "Unicode::UCD" ສະຫນອງການໂຕ້ຕອບການສອບຖາມກັບຖານຂໍ້ມູນຕົວອັກສອນ Unicode. ເບິ່ງ
Unicode::UCD.

· "Unicode::Collate", ໂດຍ SADAHIRO Tomoyuki, ປະຕິບັດ UCA (Unicode Collation
Algorithm) ສໍາລັບການຈັດຮຽງສາຍ Unicode. ເບິ່ງ Unicode::Collate.

· "Unicode::Normalize", ໂດຍ SADAHIRO Tomoyuki, ປະຕິບັດ Unicode ຕ່າງໆ.
ຮູບແບບປົກກະຕິ. ເບິ່ງ Unicode:: Normalize.

· "XS::APItest", ໂດຍ Tim Jenness, ເປັນການຂະຫຍາຍການທົດສອບທີ່ປະຕິບັດ XS APIs. ໃນປັດຈຸບັນ
ພຽງແຕ່ "printf()" ຖືກທົດສອບ: ວິທີການອອກຂໍ້ມູນປະເພດຂໍ້ມູນພື້ນຖານຕ່າງໆຈາກ XS.

· "XS::Typemap", ໂດຍ Tim Jenness, ເປັນການຂະຫຍາຍການທົດສອບທີ່ປະຕິບັດ XS typemaps.
ບໍ່ມີຫຍັງຕິດຕັ້ງ, ແຕ່ລະຫັດແມ່ນມີມູນຄ່າການສຶກສາສໍາລັບນັກຂຽນການຂະຫຍາຍ.

ການປັບປຸງ ແລະ ປັບປຸງ ໂມດູນ ແລະ ປາກເວົ້າ
· ໂມດູນທີ່ຮອງຮັບຢ່າງເປັນອິດສະຫຼະຕໍ່ໄປນີ້ໄດ້ຖືກອັບເດດເປັນລຸ້ນໃໝ່ຫຼ້າສຸດແລ້ວ
ຈາກ CPAN: CGI, CPAN, DB_File, ໄຟລ໌::Spec, File::Temp, Getopt::Long, Math::BigFloat,
Math::BigInt, the podlators bundle (Pod::Man, Pod::Text), Pod::LaTeX [561+],
Pod::parser, ເກັບຮັກສາ, ໄລຍະ::ANSIColor, Test, Text-Tabs+Wrap.

· ຄຸນ​ລັກ​ສະ​ນະ::reftype() ໃນປັດຈຸບັນເຮັດວຽກກ່ຽວກັບການໂຕ້ຖຽງທີ່ຜູກມັດ.

· AutoLoader ດຽວນີ້ສາມາດຖືກປິດໃຊ້ງານດ້ວຍ "ບໍ່ມີ AutoLoader;".

· B::Deparse ໄດ້ຮັບການປັບປຸງຢ່າງຫຼວງຫຼາຍໂດຍ Robin Houston. ດຽວນີ້ມັນສາມາດໜີໄປໄດ້
ເກືອບທັງຫມົດຂອງຊຸດການທົດສອບມາດຕະຖານ (ດັ່ງນັ້ນການທົດສອບຍັງປະສົບຜົນສໍາເລັດ). ມີ
ເຮັດໃຫ້ເປົ້າຫມາຍ "test.deparse" ສໍາລັບການພະຍາຍາມນີ້ອອກ.

· Carp ໃນປັດຈຸບັນມີເອກະສານການໂຕ້ຕອບທີ່ດີກວ່າ, ແລະການໂຕ້ຕອບ @CARP_NOT ໄດ້
ເພີ່ມເພື່ອໃຫ້ໄດ້ຮັບການຄວບຄຸມທາງເລືອກໃນບ່ອນທີ່ຄວາມຜິດພາດໄດ້ຖືກລາຍງານເປັນເອກະລາດຂອງ @ISA, ໂດຍ
Ben Tilly.

· ຫ້ອງຮຽນ:: ໂຄງສ້າງໃນປັດຈຸບັນສາມາດກໍານົດຫ້ອງຮຽນໃນເວລາລວບລວມ.

· Class::Struct ດຽວນີ້ກຳນົດອົງປະກອບ array/hash ຖ້າ accessor ຖືກເອີ້ນດ້ວຍ an
array/hash ອົງປະກອບເປັນ sole ການໂຕ້ຖຽງ.

·ມູນຄ່າກັບຄືນຂອງ Cwd::fastcwd() ໃນ​ປັດ​ຈຸ​ບັນ​ແມ່ນ tainted​.

· ຂໍ້ມູນ::Dumper ໃນປັດຈຸບັນມີທາງເລືອກໃນການຈັດລຽງ hashes.

· ຂໍ້ມູນ::Dumper ໃນປັດຈຸບັນມີທາງເລືອກທີ່ຈະ dump ການອ້າງອີງລະຫັດໂດຍໃຊ້ B::Deparse.

· DB_File ດຽວນີ້ຮອງຮັບ Berkeley DB ລຸ້ນໃໝ່, ໃນບັນດາການປັບປຸງອື່ນໆ.

· Devel::Peek ໃນປັດຈຸບັນມີການໂຕ້ຕອບສໍາລັບສະຖິຕິຄວາມຊົງຈໍາ Perl (ນີ້ເຮັດວຽກພຽງແຕ່ຖ້າ
ທ່ານກໍາລັງໃຊ້ perl's malloc, ແລະຖ້າທ່ານໄດ້ລວບລວມກັບ debugging).

·ໂມດູນພາສາອັງກິດໃນປັດຈຸບັນສາມາດຖືກນໍາໃຊ້ໂດຍບໍ່ມີການປະຕິບັດ infamous ຕີໂດຍການເວົ້າ

ໃຊ້ພາສາອັງກິດ '-no_match_vars';

(ສົມມຸດ, ແນ່ນອນ, ວ່າທ່ານບໍ່ຕ້ອງການຕົວແປທີ່ມີບັນຫາ "$`", $&, ຫຼື.
"$'".) ນອກຈາກນັ້ນ, ຍັງໄດ້ແນະນໍາ @LAST_MATCH_START ແລະ @LAST_MATCH_END ນາມແຝງພາສາອັງກິດສຳລັບ
"@-" ແລະ "@+".

· ExtUtils::MakeMaker ໄດ້ຮັບການອະນາໄມແລະແກ້ໄຂຢ່າງຫຼວງຫຼາຍ. ສະບັບປັບປຸງ
ຍັງໄດ້ຖືກ backported ກັບການປ່ອຍອອກມາກ່ອນຫນ້າຂອງ Perl ແລະສົ່ງກັບ CPAN ດັ່ງນັ້ນ
ການປ່ອຍອອກມາກ່ອນຫນ້ານີ້ສາມາດມີຄວາມສຸກກັບການແກ້ໄຂ.

· ການໂຕ້ຖຽງຂອງ WriteMakefile() ໃນ Makefile.PL ດຽວນີ້ຖືກກວດຫາສຸຂາພິບານຫຼາຍ
ລະມັດລະວັງກວ່າກ່ອນ. ນີ້ອາດຈະເຮັດໃຫ້ເກີດການເຕືອນໄພໃຫມ່ໃນເວລາທີ່ໂມດູນກໍາລັງຖືກຕິດຕັ້ງ.
ເບິ່ງ ExtUtils::MakeMaker ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ.

· ExtUtils::MakeMaker ຕອນນີ້ໃຊ້ File::Spec ພາຍໃນ, ເຊິ່ງຫວັງວ່າຈະດີຂຶ້ນ.
ການເຄື່ອນທີ່.

· Fcntl, Socket, ແລະ Sys::Syslog ໄດ້ຖືກຂຽນຄືນໃຫມ່ໂດຍ Nicholas Clark ເພື່ອໃຊ້ໃຫມ່.
ພາກສ່ວນການຈັດສົ່ງແບບຄົງທີ່ (ເບິ່ງ ExtUtils::Constant). ນີ້ຫມາຍຄວາມວ່າພວກເຂົາຈະ
ເຂັ້ມແຂງຂຶ້ນ ແລະຫວັງວ່າຈະໄວຂຶ້ນ.

· ໄຟລ໌::ຊອກຫາດຽວນີ້ chdir()s ຢ່າງຖືກຕ້ອງໃນເວລາທີ່ແລ່ນການເຊື່ອມຕໍ່ສັນຍາລັກ. [561]

· ໄຟລ໌::Find ໃນປັດຈຸບັນມີການໂທຄືນກ່ອນ ແລະຫຼັງການປະມວນຜົນ. ມັນຍັງມີການປ່ຽນແປງຢ່າງຖືກຕ້ອງ
ໄດເລກະທໍລີໃນເວລາທີ່ແລ່ນການເຊື່ອມຕໍ່ສັນຍາລັກ. ການໂທກັບຄືນ (naughtily) ອອກໄປດ້ວຍ "ຕໍ່ໄປ;"
ແທນທີ່ຈະ "ກັບຄືນ;" ໃນປັດຈຸບັນເຮັດວຽກ.

· File::Find is now (ອີກເທື່ອຫນຶ່ງ) reentrant. ມັນຍັງໄດ້ຖືກເຮັດໃຫ້ Portable ຫຼາຍ.

· ການ​ເຕືອນ​ໄພ​ອອກ​ໂດຍ File::ຊອກ​ຫາ​ໃນ​ປັດ​ຈຸ​ບັນ​ເປັນ​ປະ​ເພດ​ຂອງ​ເຂົາ​ເຈົ້າ​ເອງ​. ເຈົ້າ​ສາ​ມາດ
ເປີດໃຊ້ / ປິດການໃຊ້ງານພວກມັນດ້ວຍ "ໃຊ້ / ບໍ່ມີຄໍາເຕືອນ 'File:: ຊອກຫາ';".

· ໄຟລ໌::Glob::glob() ໄດ້ຖືກປ່ຽນຊື່ເປັນ ໄຟລ໌::Glob::bsd_glob() ເພາະ​ວ່າ​ຊື່​ປະ​ທະ​ກັນ​
ກັບ buildin ໄດ້ ໂລກ(). ຊື່ເກົ່າແມ່ນຍັງມີຢູ່ສໍາລັບການເຂົ້າກັນໄດ້, ແຕ່ແມ່ນ
ເຊົາໃຊ້ແລ້ວ. [561]

· ໄຟລ໌::Glob ໃນປັດຈຸບັນສະຫນັບສະຫນູນ "GLOB_LIMIT" ຄົງທີ່ເພື່ອຈໍາກັດຂະຫນາດຂອງບັນຊີລາຍຊື່ທີ່ສົ່ງຄືນ.
ຂອງ​ຊື່​ໄຟລ​໌​.

· IPC::Open3 ຕອນນີ້ອະນຸຍາດໃຫ້ໃຊ້ຕົວອະທິບາຍໄຟລ໌ຕົວເລກ.

· IO::Socket ໃນປັດຈຸບັນມີ ເຄື່ອງໝາຍ() ວິທີການ, ເຊິ່ງກັບຄືນມາເປັນຄວາມຈິງຖ້າ socket ຖືກຕັ້ງ
ຢູ່ທີ່ເຄື່ອງຫມາຍນອກວົງດົນຕີ. ວິທີການແມ່ນຍັງສົ່ງອອກເປັນ sockatmark() function

· IO::Socket::INET ລົ້ມເຫລວໃນການເປີດຜອດທີ່ລະບຸໄວ້ ຖ້າຊື່ບໍລິການບໍ່ຮູ້ຈັກ.
ດຽວນີ້ມັນໃຊ້ໝາຍເລກພອດທີ່ສະໜອງໃຫ້ຢ່າງຖືກຕ້ອງຕາມທີ່ເປັນຢູ່. [561]

· IO::Socket::INET ມີການສະຫນັບສະຫນູນທາງເລືອກ ReusePort (ຖ້າເວທີຂອງທ່ານສະຫນັບສະຫນູນມັນ).
ຕົວເລືອກ Reuse ໃນປັດຈຸບັນມີນາມແຝງ, ReuseAddr. ເພື່ອຄວາມຊັດເຈນ, ທ່ານອາດຈະຕ້ອງການ
ReuseAddr.

· IO::Socket::INET ໃນປັດຈຸບັນສະຫນັບສະຫນູນຄ່າຂອງສູນສໍາລັບ "LocalPort" (ປົກກະຕິແລ້ວຫມາຍຄວາມວ່າ.
ລະ​ບົບ​ປະ​ຕິ​ບັດ​ການ​ຈະ​ເຮັດ​ໃຫ້​ຫນຶ່ງ​ຂຶ້ນ​.)

· 'ໃຊ້ lib' ດຽວນີ້ເຮັດວຽກຄືກັນກັບ @INC. ການລຶບໄດເລກະທໍລີດ້ວຍ 'ບໍ່ມີ lib' ດຽວນີ້
ວຽກງານ.

· Math::BigFloat ແລະ Math::BigInt ໄດ້ຮັບການຂຽນຄືນໃຫມ່ໂດຍ Tels. ພວກເຂົາເຈົ້າແມ່ນໃນປັດຈຸບັນ
ຂະ​ຫນາດ​ໄວ​ຂຶ້ນ​, ແລະ​ພວກ​ເຂົາ​ເຈົ້າ​ສະ​ຫນັບ​ສະ​ຫນູນ​ຫ້ອງ​ສະ​ຫມຸດ bignum ຕ່າງໆ​ເຊັ່ນ GMP ແລະ PARI ເປັນ​
backends ຂອງເຂົາເຈົ້າ.

· ຄະນິດສາດ:: ການຈັດການສະລັບສັບຊ້ອນ inf, NaN ແລະອື່ນໆ, ດີກວ່າ.

· ສຸດທິ:: Ping ໄດ້ຮັບການປັບປຸງຢ່າງຫຼວງຫຼາຍໂດຍ Rob Brown: multihoming ໄດ້ຮັບການສະຫນັບສະຫນູນໃນປັດຈຸບັນ,
ການທໍາງານຂອງ Win32 ແມ່ນດີກວ່າ, ໃນປັດຈຸບັນມີການວັດແທກການທໍາງານ (ທາງເລືອກ
ຄວາມລະອຽດສູງໂດຍໃຊ້ Time::HiRes), ແລະໃນປັດຈຸບັນມີໂປໂຕຄອນ "ພາຍນອກ" ທີ່ໃຊ້.
ສຸດທິ::Ping::ໂມດູນພາຍນອກທີ່ແລ່ນຜົນປະໂຫຍດ ping ພາຍນອກຂອງທ່ານແລະວິເຄາະ
ຜົນຜະລິດ. ເວີຊັນຂອງ Net::Ping::External ແມ່ນມີຢູ່ໃນ CPAN.

ໃຫ້ສັງເກດວ່າບາງ Net:: Ping ທົດສອບຖືກປິດໃຊ້ງານໃນເວລາທີ່ແລ່ນພາຍໃຕ້ Perl
ການແຜ່ກະຈາຍເນື່ອງຈາກຫນຶ່ງບໍ່ສາມາດສົມມຸດຫນຶ່ງຫຼືຫຼາຍອັນຕໍ່ໄປນີ້: ເປີດໃຊ້ echo port
ຢູ່ທີ່ localhost, ການເຊື່ອມຕໍ່ອິນເຕີເນັດຢ່າງເຕັມທີ່, ຫຼື firewalls sympathetic. ທ່ານ​ສາ​ມາດ​ກໍາ​ນົດ​
ຕົວແປສະພາບແວດລ້ອມ PERL_TEST_Net_Ping ເປັນ "1" (ຫນຶ່ງ) ກ່ອນທີ່ຈະແລ່ນການທົດສອບ Perl
suite ເພື່ອເປີດໃຊ້ Net ທັງຫມົດ:: ການທົດສອບ Ping.

· POSIX::sigaction() ໃນປັດຈຸບັນແມ່ນມີຄວາມຍືດຫຍຸ່ນແລະເຂັ້ມແຂງຫຼາຍ. ໃນປັດຈຸບັນທ່ານສາມາດຕິດຕັ້ງ coderef
handlers, 'DEFAULT', ແລະ 'ignore' handlers, ການຕິດຕັ້ງ handlers ໃຫມ່ບໍ່ແມ່ນປະລໍາມະນູ.

· ໃນ​ຄວາມ​ປອດ​ໄພ, %INC ໃນ​ປັດ​ຈຸ​ບັນ​ໄດ້​ຖືກ​ແປ​ຢູ່​ໃນ​ຊ່ອງ​ຄວາມ​ປອດ​ໄພ​ເພື່ອ​ໃຫ້​ການ​ນໍາ​ໃຊ້ / ຕ້ອງ​ການ​ເຮັດ​ວຽກ.

· ໃນ SDBM_File ໃນແພລດຟອມ DOSish, ບາງກະແຈຫາຍໄປຍ້ອນຂາດການຮອງຮັບ
ສໍາລັບໄຟລ໌ທີ່ມີ "ຮູ". ການແກ້ໄຂບັນຫາໄດ້ຖືກເພີ່ມ.

· ໃນ​ການ​ຊອກ​ຫາ::Dict ຫນຶ່ງ​ໃນ​ປັດ​ຈຸ​ບັນ​ສາ​ມາດ​ມີ hook ທາງ​ສ່ວນ​ຫນ້າ​ຂອງ​ການ​ປຸງ​ແຕ່ງ​ສໍາ​ລັບ​ສາຍ​ທີ່​ຖືກ​ຄົ້ນ​ຫາ.

· ໂມດູນ Shell ໃນປັດຈຸບັນມີການໂຕ້ຕອບ OO.

· ໃນ Sys::Syslog ໃນປັດຈຸບັນມີກົນໄກການລົ້ມເຫລວທີ່ຈະໄປໂດຍຜ່ານທາງເລືອກ
ກົນໄກການເຊື່ອມຕໍ່ຈົນກ່ວາຂໍ້ຄວາມຖືກບັນທຶກຢ່າງສໍາເລັດຜົນ.

· ໂມດູນການທົດສອບໄດ້ຮັບການປັບປຸງຢ່າງຫຼວງຫຼາຍ.

· ເວລາ::ທ້ອງຖິ່ນ::timelocal() ບໍ່ໄດ້ຈັດການກັບວິນາທີເສດເຫຼືອອີກຕໍ່ໄປ. ເຫດຜົນແມ່ນ
ບໍ່ວ່າ ເວລາທ້ອງຖິ່ນ(), ແລະ ຕາມເວລາ() ແລະ ເວລາທ້ອງຖິ່ນ() ແມ່ນຄວນຈະເປັນ
ກົງກັນຂ້າມຂອງກັນແລະກັນ.

· vars pragma ໃນປັດຈຸບັນສະຫນັບສະຫນູນການປະກາດຕົວແປທີ່ມີຄຸນວຸດທິຢ່າງເຕັມທີ່. (ບາງສິ່ງບາງຢ່າງນັ້ນ
"ຂອງພວກເຮົາ ()" ບໍ່ແລະຈະບໍ່ສະຫນັບສະຫນູນ.)

· "utf8::" ຊ່ອງຊື່ (ໃນ pragma) ສະຫນອງຫນ້າທີ່ Perl-callable ຕ່າງໆເພື່ອ
ສະຫນອງການເຂົ້າເຖິງລະດັບຕ່ໍາໃນການເປັນຕົວແທນ Unicode ພາຍໃນຂອງ Perl. ໃນ​ຂະ​ນະ​ນີ້
ພຽງແຕ່ ຄວາມຍາວ() ໄດ້​ຮັບ​ການ​ປະ​ຕິ​ບັດ​.

ຜົນປະໂຫຍດ ການປ່ຽນແປງ


· ໂໝດ Emacs perl (emacs/cperl-mode.el) ໄດ້ຖືກອັບເດດເປັນເວີຊັນ 4.31 ແລ້ວ.

· emacs/e2ctags.pl ໃນປັດຈຸບັນແມ່ນໄວຂຶ້ນຫຼາຍ.

· "enc2xs" ເປັນ​ເຄື່ອງ​ມື​ສໍາ​ລັບ​ປະ​ຊາ​ຊົນ​ເພີ່ມ​ການ​ເຂົ້າ​ລະ​ຫັດ​ຂອງ​ຕົນ​ເອງ​ກັບ​ໂມ​ດູນ​ການ​ເຂົ້າ​ລະ​ຫັດ​.

· "h2ph" ໃນປັດຈຸບັນສະຫນັບສະຫນູນ C trigraphs.

· ຕອນນີ້ "h2xs" ຜະລິດແມ່ແບບ README.

· "h2xs" ຕອນນີ້ໃຊ້ "Devel::PPPort" ສໍາລັບການເຄື່ອນທີ່ທີ່ດີກວ່າລະຫວ່າງລຸ້ນຕ່າງໆ
Perl.

· "h2xs" ໃຊ້ ExtUtils ໃຫມ່::ໂມດູນຄົງທີ່ທີ່ຈະສົ່ງຜົນກະທົບຕໍ່ການສ້າງໃຫມ່
ສ່ວນຂະຫຍາຍທີ່ກໍານົດຄ່າຄົງທີ່. ເນື່ອງຈາກລະຫັດໃຫມ່ແມ່ນຖືກຕ້ອງກວ່າ (ຖ້າທ່ານມີສອງ
constants ທີ່ອັນທໍາອິດແມ່ນຄໍານໍາຫນ້າຂອງອັນທີສອງ, ຄົງທໍາອິດ ບໍ່ເຄີຍ
ໄດ້​ຮັບ​ການ​ກໍາ​ນົດ​)​, ການ​ສູນ​ເສຍ​ຫນ້ອຍ (ມັນ​ນໍາ​ໃຊ້​ຈໍາ​ນວນ​ເຕັມ​ສໍາ​ລັບ integer constant​, ກົງ​ກັນ​ຂ້າມ​ກັບ​ເກົ່າ​.
ລະຫັດທີ່ໃຊ້ຕົວເລກຈຸດລອຍແມ່ນແຕ່ສຳລັບຄ່າຄົງທີ່ຈຳນວນເຕັມ), ແລະເລັກນ້ອຍ
ໄວກວ່າ, ທ່ານອາດຈະຕ້ອງການພິຈາລະນາການສ້າງລະຫັດການຂະຫຍາຍຂອງທ່ານຄືນໃຫມ່ (ໂຄງການໃຫມ່
ເຮັດ​ໃຫ້​ການ​ຟື້ນ​ຟູ​ງ່າຍ​ດາຍ​)​. h2xs ໃນປັດຈຸບັນຍັງສະຫນັບສະຫນູນ C trigraphs.

· "libnetcfg" ໄດ້ຖືກເພີ່ມເຂົ້າໃນການຕັ້ງຄ່າ libnet.

· "perlbug" ໃນປັດຈຸບັນແມ່ນເຂັ້ມແຂງຫຼາຍ. ມັນຍັງສົ່ງລາຍງານຂໍ້ຜິດພາດໄປຫາ perl.org, ບໍ່ແມ່ນ
perl.com.

· "perlcc" ໄດ້ຖືກຂຽນຄືນໃຫມ່ແລະການໂຕ້ຕອບຜູ້ໃຊ້ຂອງມັນ (ນັ້ນແມ່ນ, ເສັ້ນຄໍາສັ່ງ) ແມ່ນຫຼາຍ
ຄືກັນກັບຂອງ Unix C compiler, cc. (ເຄື່ອງ​ມື perlbc ໄດ້​ຖືກ​ໂຍກ​ຍ້າຍ​ອອກ​. ການ​ນໍາ​ໃຊ້​
"perlcc -B" ແທນ.) ຫມາຍ​ເຫດ​ ທີ່ perlcc is ຍັງ ພິຈາລະນາ ຫຼາຍ ທົດລອງ ແລະ
ບໍ່ຮອງຮັບ. [561]

· "perlivp" ແມ່ນເຄື່ອງມືການກວດສອບການຕິດຕັ້ງໃຫມ່ສໍາລັບການເຮັດວຽກໄດ້ທຸກເວລາ
ຫຼັງຈາກການຕິດຕັ້ງ Perl.

· "piconv" ແມ່ນການປະຕິບັດການປ່ຽນຕົວອັກສອນ "iconv",
ສະແດງໃຫ້ເຫັນໂມດູນການເຂົ້າລະຫັດໃຫມ່.

· "pod2html" ໃນປັດຈຸບັນອະນຸຍາດໃຫ້ລະບຸໄດເລກະທໍລີ cache.

· "pod2html" ໃນປັດຈຸບັນຜະລິດ XHTML 1.0.

· "pod2html" ຕອນນີ້ເຂົ້າໃຈ POD ທີ່ຂຽນໂດຍໃຊ້ປາຍສາຍທີ່ແຕກຕ່າງກັນ (PC-like CRLF
ທຽບກັບ Unix-like LF ທຽບກັບ MacClassic-like CR).

· "s2p" ໄດ້ຖືກຂຽນຄືນໃຫມ່ໃນ Perl. (ໃນ​ຄວາມ​ເປັນ​ຈິງ​ແມ່ນ​ການ​ປະ​ຕິ​ບັດ​ຢ່າງ​ເຕັມ​ທີ່​ຂອງ​
sed ໃນ Perl: ທ່ານສາມາດນໍາໃຊ້ຫນ້າທີ່ sed ໂດຍໃຊ້ "psed".

· ຕອນນີ້ "xsubpp" ເຂົ້າໃຈເອກະສານ POD ທີ່ຝັງຢູ່ໃນໄຟລ໌ *.xs. [561]

· "xsubpp" ປະຈຸບັນສະຫນັບສະຫນູນຄໍາຫລັກ OUT.

ໃຫມ່ ເອ​ກະ​ສານ


· perl56delta ລາຍລະອຽດການປ່ຽນແປງລະຫວ່າງການປ່ອຍ 5.005 ແລະການປ່ອຍ 5.6.0.

· perlclib ເອກະສານການທົດແທນພາຍໃນສໍາລັບຫນ້າທີ່ຫ້ອງສະຫມຸດ C ມາດຕະຖານ.
(ຫນ້າສົນໃຈພຽງແຕ່ສໍາລັບນັກຂຽນສ່ວນຂະຫຍາຍແລະແຮັກເກີຫຼັກ Perl.) [561+]

· perldebtut ເປັນ tutorial debugging Perl. [561+]

· perlebcdic ປະກອບດ້ວຍການພິຈາລະນາສໍາລັບການແລ່ນ Perl ໃນເວທີ EBCDIC. [561+]

· perlintro ເປັນການແນະນໍາທີ່ອ່ອນໂຍນຕໍ່ Perl.

· perliol ເອກະສານພາຍໃນຂອງ PerlIO ທີ່ມີຊັ້ນ.

· perlmodstyle ເປັນຄູ່ມືແບບສໍາລັບການຂຽນໂມດູນ.

· perlnewmod ບອກກ່ຽວກັບການຂຽນແລະສົ່ງໂມດູນໃຫມ່. [561+]

· perlpacktut ເປັນ ຊອງ() ການສອນ.

· perlpod ໄດ້ຖືກຂຽນຄືນໃຫມ່ເພື່ອໃຫ້ຊັດເຈນກວ່າແລະບັນທຶກການປະຕິບັດທີ່ດີທີ່ສຸດທີ່ລວບລວມ
ໃນໄລຍະປີ.

· perlpodspec ເປັນ​ການ​ສະ​ເພາະ​ເປັນ​ທາງ​ການ​ຫຼາຍ​ຂອງ​ຮູບ​ແບບ​ຝັກ​, ສ່ວນ​ໃຫຍ່​ແມ່ນ​ຄວາມ​ສົນ​ໃຈ​ສໍາ​ລັບ​ການ​
ຜູ້ຂຽນຂອງຄໍາຮ້ອງສະຫມັກຝັກ, ບໍ່ແມ່ນໃຫ້ຄົນຂຽນໃນຝັກ.

· perlretut ເປັນ tutorial ການສະແດງອອກເປັນປົກກະຕິ. [561+]

· perlrequick ເປັນຄູ່ມືການເລີ່ມຕົ້ນໄວຂອງການສະແດງປົກກະຕິ. ແມ່ນແລ້ວ, ໄວກວ່າ
perlretut. [561]

· perltodo ໄດ້ຖືກປັບປຸງ.

· perltootc ໄດ້ຖືກປ່ຽນຊື່ເປັນ perltooc (ເພື່ອບໍ່ໃຫ້ຂັດແຍ້ງກັບ perltoot ໃນ
ລະບົບໄຟລ໌ຈໍາກັດຊື່ "8.3").

· perluniintro ແມ່ນການແນະນໍາການນໍາໃຊ້ Unicode ໃນ Perl. (perlunicode ແມ່ນຫຼາຍກວ່າ a
ກະ​ສານ​ອ້າງ​ອີງ​ລະ​ອຽດ​ແລະ​ຂໍ້​ມູນ​ພື້ນ​ຖານ​)

· perlutil ອະ​ທິ​ບາຍ​ອຸ​ປະ​ກອນ​ບັນ​ຊີ​ຄໍາ​ສັ່ງ​ທີ່​ໄດ້​ຫຸ້ມ​ຫໍ່​ທີ່​ມີ​ການ​ແຜ່​ກະ​ຈາຍ Perl​.
[561+]

ເອກະສານສະເພາະເວທີຕໍ່ໄປນີ້ແມ່ນມີຢູ່ກ່ອນການຕິດຕັ້ງ
README.ເວທີ, ແລະຫຼັງຈາກການຕິດຕັ້ງເປັນ perlເວທີ:

perlaix perlamiga perlapollo perlbeos perlbs2000
perlce perlcygwin perldgux perldos perlepoc perlfreebsd perlhpux
perlhurd perlirix perlmachten perlmacos perlmint perlmpeix
perlnetware perlos2 perlos390 perlplan9 perlqnx perlsolaris
perltru64 perluts perlvmesa perlvms perlvos perlwin32

ເອກະສານເຫຼົ່ານີ້ປົກກະຕິແລ້ວລາຍລະອຽດຫນຶ່ງຫຼືຫຼາຍວິຊາດັ່ງຕໍ່ໄປນີ້: ການຕັ້ງຄ່າ,
ການກໍ່ສ້າງ, ການທົດສອບ, ການຕິດຕັ້ງ, ແລະບາງຄັ້ງກໍ່ໃຊ້ Perl ໃນເວທີດັ່ງກ່າວ.

ຜູ້​ຊົມ​ໃຊ້ Perl ເອ​ເຊຍ​ຕາ​ເວັນ​ອອກ​ໄດ້​ຮັບ​ການ​ຕ້ອນ​ຮັບ​ໃນ​ປັດ​ຈຸ​ບັນ​ໃນ​ພາ​ສາ​ຂອງ​ຕົນ​ເອງ​: README.jp (ຍີ່​ປຸ່ນ​)​,
README.ko (ພາສາເກົາຫຼີ), README.cn (ຈີນຕົວຫຍໍ້) ແລະ README.tw (ພາສາຈີນດັ້ງເດີມ),
ເຊິ່ງຖືກຂຽນໄວ້ໃນຝັກປົກກະຕິແຕ່ຖືກເຂົ້າລະຫັດໃນ EUC-JP, EUC-KR, EUC-CN ແລະ Big5. ເຫຼົ່ານີ້
ຈະໄດ້ຮັບການຕິດຕັ້ງເປັນ

perljp perlko perlcn perltw

· ເອກະສານສໍາລັບເວທີ POSIX-BC ຖືກເອີ້ນວ່າ "BS2000", ເພື່ອຫຼີກເວັ້ນການສັບສົນ
ກັບໂມດູນ Perl POSIX.

· ເອກະສານສໍາລັບເວທີ WinCE ເອີ້ນວ່າ perlce (README.ce ໃນແຫຼ່ງ
code kit), ເພື່ອຫຼີກເວັ້ນການສັບສົນກັບເອກະສານ perlwin32 ກ່ຽວກັບ 8.3-restricted
ລະບົບໄຟລ໌.

ການປະຕິບັດ ການຍົກລະດັບ


· ແຜນທີ່() ສາ ມາດ ໄດ້ ຮັບ ການ ຊັກ ຊ້າ pathologically ໃນ ເວ ລາ ທີ່ ບັນ ຊີ ລາຍ ການ ຜົນ ໄດ້ ຮັບ ທີ່ ມັນ ສ້າງ ແມ່ນ ຂະ ຫນາດ ໃຫຍ່ ກ ່ ວາ
ບັນຊີລາຍຊື່ແຫຼ່ງ. ການປະຕິບັດໄດ້ຖືກປັບປຸງສໍາລັບສະຖານະການທົ່ວໄປ. [561]

· ຄັດ () ຍັງ reentrant ຢ່າງເຕັມສ່ວນ, ໃນຄວາມຫມາຍທີ່ຫນ້າທີ່ຈັດລຽງຕົວຂອງມັນເອງສາມາດໂທຫາ
ຄັດ (). ອັນນີ້ບໍ່ໄດ້ຜົນຢ່າງໜ້າເຊື່ອຖືໃນລຸ້ນກ່ອນໜ້າ. [561]

· ຄັດ () ໄດ້​ມີ​ການ​ປ່ຽນ​ແປງ​ການ​ນໍາ​ໃຊ້​ຕົ້ນ​ຕໍ​ການ​ລວມ​ເຂົ້າ​ກັນ​ພາຍ​ໃນ​ກົງ​ກັນ​ຂ້າມ​ກັບ​
ການ​ຄັດ​ເລືອກ​ໄວ​ກ່ອນ​ຫນ້າ​ນີ້​. ສໍາລັບລາຍການຂະຫນາດນ້ອຍຫຼາຍນີ້ອາດຈະເຮັດໃຫ້ການຈັດລຽງຊ້າລົງເລັກນ້ອຍ
ເວລາ, ແຕ່ໂດຍທົ່ວໄປແລ້ວຄວາມໄວຄວນຈະມີຢ່າງຫນ້ອຍ 20%. bonuses ເພີ່ມເຕີມແມ່ນວ່າ
ພຶດຕິກໍາກໍລະນີຮ້າຍແຮງທີ່ສຸດຂອງ ຄັດ () ໃນປັດຈຸບັນແມ່ນດີກວ່າ (ໃນຄໍາສັບວິທະຍາສາດຄອມພິວເຕີມັນໃນປັດຈຸບັນ
ແລ່ນຕາມເວລາ O(N log N), ກົງກັນຂ້າມກັບ Theta(N**2) ຂອງ Quicksort ເວລາແລ່ນທີ່ຮ້າຍແຮງທີ່ສຸດ.
ພຶດຕິກໍາ), ແລະນັ້ນ ຄັດ () ໃນປັດຈຸບັນມີຄວາມຫມັ້ນຄົງ (ຫມາຍຄວາມວ່າອົງປະກອບທີ່ມີລະຫັດດຽວກັນ
ຈະ​ຢູ່​ຕາມ​ລໍາ​ດັບ​ທີ່​ເຂົາ​ເຈົ້າ​ແມ່ນ​ກ່ອນ​ທີ່​ຈະ​ຈັດ​ລຽງ​)​. ເບິ່ງ "ຄັດ" pragma ສໍາລັບ
ຂໍ້ມູນຂ່າວສານ.

ເລື່ອງໃນລາຍລະອຽດເພີ່ມເຕີມ: ສົມມຸດວ່າທ່ານຕ້ອງການຮັບໃຊ້ຕົນເອງເລັກນ້ອຍຂອງ Pi.

@digits = ( 3,1,4,1,5,9 );

ການຈັດລຽງຕົວເລກຂອງຕົວເລກຈະໃຫ້ຜົນໄດ້ຮັບ (1,1,3,4,5,9), ຕາມທີ່ຄາດໄວ້. ອັນໃດມາ
ທໍາອິດແມ່ນຍາກທີ່ຈະຮູ້, ເນື່ອງຈາກວ່າຫນຶ່ງ 1 ເບິ່ງຄືວ່າຄ້າຍຄືອື່ນໆ. ທ່ານສາມາດພິຈາລະນາ
ນີ້ເປັນເລື່ອງເລັກໆນ້ອຍໆ, ຫຼືຂ້ອນຂ້າງເລິກເຊິ່ງ. ຢ່າງໃດກໍຕາມ, ຖ້າທ່ານຕ້ອງການຈັດປະເພດ
ເຖິງແມ່ນວ່າຕົວເລກຢູ່ຂ້າງຫນ້າຂອງຄີກ, ຫຼັງຈາກນັ້ນສິ່ງທີ່ຈະ

sort { ($a %2) <=> ($b % 2) } @digits;

ຜົນຜະລິດ? ຕົວເລກຄູ່ເທົ່ານັ້ນ, 4, ຈະມາກ່ອນ. ແຕ່ວິທີການກ່ຽວກັບຕົວເລກຄີກ, ເຊິ່ງ
ທັງ​ຫມົດ​ສົມ​ທຽບ​ເທົ່າ​ທຽມ​ກັນ​? ດ້ວຍສູດການຮຽງລໍາດັບໄວທີ່ໃຊ້ເພື່ອປະຕິບັດ Perl 5.6 ແລະ
ກ່ອນຫນ້ານີ້, ລໍາດັບຂອງສາຍພົວພັນແມ່ນປະໄວ້ເຖິງການຈັດລຽງ. ດັ່ງນັ້ນ, ເມື່ອທ່ານເພີ່ມຫຼາຍຂື້ນ
ຕົວເລກຂອງ Pi, ລໍາດັບທີ່ຕົວເລກຄູ່ແລະເລກຄີກປາກົດຈະມີການປ່ຽນແປງ.
ແລະ, ສໍາລັບຕ່ອນໃຫຍ່ພຽງພໍຂອງ Pi, ສູດການຮຽງລໍາດັບໄວໃນ Perl 5.8 ຈະບໍ່.
ສົ່ງຄືນຜົນໄດ້ຮັບດຽວກັນເຖິງແມ່ນວ່າຈະຖືກເອີ້ນຄືນດ້ວຍການປ້ອນຂໍ້ມູນດຽວກັນ. ເຫດຜົນສໍາລັບການ
ນີ້ພັກຜ່ອນກັບພຶດຕິກໍາກໍລະນີທີ່ຮ້າຍແຮງທີ່ສຸດຂອງ quicksort. ຖ້າເຈົ້າແລ່ນ

sort { $a <=> $b } ( 1 .. $N , 1 .. $N );

(ບາງ​ສິ່ງ​ບາງ​ຢ່າງ​ທີ່​ທ່ານ​ອາດ​ຈະ​ປະ​ມານ​ຖ້າ​ຫາກ​ວ່າ​ທ່ານ​ຕ້ອງ​ການ​ທີ່​ຈະ​ລວມ​ອາ​ເຣ​ຈັດ​ລຽງ​ລໍາ​ດັບ​ສອງ​ໂດຍ​ການ​ຄັດ​ເລືອກ​)​.
ການເພີ່ມຂຶ້ນສອງເທົ່າ $N ບໍ່ພຽງແຕ່ເປັນສອງເທົ່າຂອງເວລາຈັດຮຽງໄວ, ມັນ ສີ່ຫລ່ຽມ ມັນ. Quicksort ມີ
ເວລາແລ່ນກໍລະນີຮ້າຍແຮງທີ່ສຸດທີ່ສາມາດເຕີບໂຕໄດ້ຄື N**2, ອັນທີ່ເອີ້ນວ່າ ສີ່ຫລ່ຽມ ພຶດຕິກໍາ, ແລະມັນສາມາດເຮັດໄດ້
ເກີດຂຶ້ນກັບຮູບແບບທີ່ອາດຈະເກີດຂຶ້ນໃນການນໍາໃຊ້ປົກກະຕິ. ທ່ານ​ຈະ​ບໍ່​ໄດ້​ສັງ​ເກດ​ເຫັນ​ນີ້​ສໍາ​ລັບ​ຂະ​ຫນາດ​ນ້ອຍ​
arrays, ແຕ່ທ່ານ ຈະ ສັງເກດເຫັນມັນກັບ arrays ຂະຫນາດໃຫຍ່, ແລະທ່ານອາດຈະບໍ່ມີຊີວິດຍາວພຽງພໍ
ສໍາລັບການຈັດລຽງເພື່ອເຮັດສໍາເລັດໃນ array ຂອງລ້ານອົງປະກອບ. ດັ່ງນັ້ນ 5.8 ການຈັດລຽງໄວ
scrambles arrays ຂະ​ຫນາດ​ໃຫຍ່​ກ່ອນ​ທີ່​ຈະ​ຈັດ​ລຽງ​ພວກ​ເຂົາ​, ເປັນ​ການ​ປ້ອງ​ກັນ​ທາງ​ສະ​ຖິ​ຕິ​ຕໍ່​ຕ້ານ​ສີ່​ຫລ່ຽມ
ພຶດຕິກໍາ. ແຕ່ນັ້ນຫມາຍຄວາມວ່າຖ້າທ່ານຈັດຮຽງແຖວຂະຫນາດໃຫຍ່ດຽວກັນສອງຄັ້ງ, ສາຍພົວພັນອາດຈະຖືກທໍາລາຍ
ໃນວິທີທີ່ແຕກຕ່າງກັນ.

ເນື່ອງຈາກຄວາມບໍ່ແນ່ນອນຂອງຄໍາສັ່ງ breaking, ແລະ quadratic ກໍລະນີຮ້າຍແຮງທີ່ສຸດ
ພຶດ​ຕິ​ກໍາ​, quicksort ແມ່ນ​ ເກືອບ​ທັງ​ຫມົດ ແທນທີ່ສົມບູນດ້ວຍການລວມຕົວທີ່ໝັ້ນຄົງ. ຫມັ້ນຄົງ
ຫມາຍ ຄວາມ ວ່າ ສາຍ ພົວ ພັນ ໄດ້ ຖືກ ແຍກ ເພື່ອ ຮັກ ສາ ຄໍາ ສັ່ງ ຕົ້ນ ສະ ບັບ ຂອງ ຮູບ ລັກ ສະ ນະ ໃນ ການ ປະ ກອບ
array. ດັ່ງນັ້ນ

sort { ($a %2) <=> ($b % 2) } (3,1,4,1,5,9);

ຈະໃຫ້ຜົນຜະລິດ (4,3,1,1,5,9), ຮັບປະກັນ. ຕົວເລກຄູ່ ແລະ ຄີກຈະປາກົດຢູ່ໃນຜົນຜະລິດ
ໃນຄໍາສັ່ງດຽວກັນພວກເຂົາປາກົດຢູ່ໃນວັດສະດຸປ້ອນ. Mergesort ມີກໍລະນີຮ້າຍແຮງທີ່ສຸດ O(N log N)
ພຶດຕິກໍາ, ມູນຄ່າທີ່ດີທີ່ສຸດສາມາດບັນລຸໄດ້. ແລະ, ironically, ການລວມຕົວນີ້ເຮັດ
ໂດຍ​ສະ​ເພາະ​ແມ່ນ​ບ່ອນ​ທີ່ quicksort ໄປ​ເປັນ​ສີ່​ຫລ່ຽມ​: mergesort sorts (1..$N, 1..$N) ໃນ
ຕົງ​ເວ​ລາ. ແຕ່​ການ​ຄັດ​ເລືອກ quicksort ໄດ້​ຮັບ​ການ​ຊ່ວຍ​ເຫຼືອ​ໃນ​ປັດ​ຈຸ​ບັນ​ສຸດ​ທ້າຍ​ເນື່ອງ​ຈາກ​ວ່າ​ມັນ​ໄວ​ກວ່າ​
ຮວມຢູ່ໃນວັດສະດຸປ້ອນ ແລະເວທີໃດໜຶ່ງ. ຕົວຢ່າງ, ຖ້າເຈົ້າແທ້ໆ ບໍ່ໄດ້ ການດູແລ
ກ່ຽວ​ກັບ​ຄໍາ​ສັ່ງ​ຂອງ​ຕົວ​ເລກ​ຄູ່​ແລະ​ຄີກ​, ການ​ຄັດ​ເລືອກ​ດ່ວນ​ຈະ​ດໍາ​ເນີນ​ການ​ໃນ O(N​) ທີ່​ໃຊ້​ເວ​ລາ​; ມັນຫຼາຍ
ດີໃນການຈັດລຽງການຄ້າງຫ້ອງຈໍານວນຫຼາຍຂອງຈໍານວນຂະຫນາດນ້ອຍຂອງອົງປະກອບທີ່ແຕກຕ່າງກັນ. ໄດ້
ຍຸດທະສາດການແບ່ງແຍກໄວແລະເອົາຊະນະເຮັດວຽກໄດ້ດີໃນເວທີທີ່ມີຂະຫນາດນ້ອຍຂ້ອນຂ້າງ,
ໄວຫຼາຍ, cache. ໃນ​ທີ່​ສຸດ​, ບັນ​ຫາ​ໄດ້​ຮັບ​ການ whittled ລົງ​ເປັນ​ຫນຶ່ງ​ທີ່​ເຫມາະ​ສົມ​ໃນ​
cache, ຈາກຈຸດທີ່ມັນໄດ້ຮັບຜົນປະໂຫຍດຈາກຄວາມໄວຂອງຫນ່ວຍຄວາມຈໍາເພີ່ມຂຶ້ນ.

Quicksort ໄດ້ຮັບການຊ່ວຍເຫລືອໂດຍການປະຕິບັດການຈັດລຽງ pragma ເພື່ອຄວບຄຸມລັກສະນະຂອງການຈັດລຽງ.
ໄດ້ ຫມັ້ນຄົງ subpragma ບັງຄັບໃຫ້ພຶດຕິກໍາທີ່ຫມັ້ນຄົງ, ໂດຍບໍ່ຄໍານຶງເຖິງສູດການຄິດໄລ່. ໄດ້ _ແບບດ່ວນ
ແລະ _ລວມ subpragmas ແມ່ນວິທີການທີ່ຫນັກແຫນ້ນເພື່ອເລືອກພື້ນຖານ
ການຈັດຕັ້ງປະຕິບັດ. "_" ຊັ້ນນໍາແມ່ນການເຕືອນວ່າ subpragmas ເຫຼົ່ານີ້ອາດຈະບໍ່ຢູ່ລອດ
ເກີນ 5.8. ກົນໄກທີ່ເຫມາະສົມກວ່າສໍາລັບການເລືອກການປະຕິບັດມີຢູ່, ແຕ່
ພວກ​ເຂົາ​ເຈົ້າ​ຈະ​ບໍ່​ໄດ້​ມາ​ເຖິງ​ໃນ​ເວ​ລາ​ທີ່​ຈະ​ຊ່ວຍ​ປະ​ຢັດ​ການ​ຄັດ​ເລືອກ​ດ່ວນ​.

· ດຽວນີ້ Hashes ໃຊ້ Bob Jenkins "ໜຶ່ງ-ຕໍ່-ເວລາ" ສູດການຄິດໄລ່ຫຼັກ hashing (
http://burtleburtle.net/bob/hash/doobs.html ). ສູດການຄິດໄລ່ນີ້ແມ່ນໄວສົມເຫດສົມຜົນ
ໃນຂະນະທີ່ຜະລິດການແຜ່ກະຈາຍຂອງຄ່າທີ່ດີກວ່າຫຼາຍກ່ວາສູດການຄິດໄລ່ hashing ເກົ່າ
(ຕົ້ນສະບັບໂດຍ Chris Torek, ຕໍ່ມາປັບປຸງໂດຍ Ilya Zakharevich). ຜົນຜະລິດຄ່າ Hash
ຈາກ algorithm ໃນ hash ຂອງກະແຈ ASCII ທັງຫມົດ 3-char ພິມໄດ້ໃກ້ຊິດກັບຫຼາຍ.
ຜ່ານການທົດສອບການຜະລິດຕົວເລກແບບສຸ່ມ DIEHARD. ອີງຕາມການ perlbench, ນີ້
ການປ່ຽນແປງບໍ່ໄດ້ສົ່ງຜົນກະທົບຕໍ່ຄວາມໄວໂດຍລວມຂອງ Perl.

· unshift() ໃນປັດຈຸບັນຄວນຈະໄວຂຶ້ນຢ່າງຈະແຈ້ງ.

ການຕິດຕັ້ງ ແລະ ການຕັ້ງຄ່າ ການປັບປຸງ


generic ການປັບປຸງ
· ຕິດຕັ້ງດຽວນີ້ອະທິບາຍວິທີທີ່ເຈົ້າສາມາດຕັ້ງຄ່າ Perl ເພື່ອໃຊ້ຈຳນວນເຕັມ 64-bit ແມ້ແຕ່ຢູ່ໃນ
ເວທີທີ່ບໍ່ແມ່ນ 64-bit.

· ການ​ປ່ຽນ​ແປງ​ນະ​ໂຍ​ບາຍ Policy.sh: ຖ້າ​ຫາກ​ວ່າ​ທ່ານ​ກໍາ​ລັງ​ນໍາ​ໃຊ້​ຄືນ​ໃຫມ່​ໄຟລ​໌ Policy.sh (ເບິ່ງ INSTALL) ແລະ​ທ່ານ​ນໍາ​ໃຊ້
ຕັ້ງຄ່າ -Dprefix=/foo/bar ແລະໃນນະໂຍບາຍເກົ່າ $prefix eq $siteprefix ແລະ $prefix
eq $vendorprefix, ດຽວນີ້ພວກມັນທັງໝົດຈະຖືກປ່ຽນເປັນຄຳນຳໜ້າໃໝ່, /foo/bar.
(ກ່ອນຫນ້ານີ້ພຽງແຕ່ $prefix ມີການປ່ຽນແປງ.) ຖ້າທ່ານບໍ່ມັກພຶດຕິກໍາໃຫມ່ນີ້, ລະບຸ
ຄໍານໍາຫນ້າ, siteprefix, ແລະ vendorprefix ຢ່າງຊັດເຈນ.

· ສະຖານທີ່ທາງເລືອກໃໝ່ສຳລັບຫ້ອງສະໝຸດ Perl, otherlibdir, ແມ່ນມີຢູ່. ມັນສາມາດເປັນ
ໃຊ້ເປັນຕົວຢ່າງສໍາລັບຜູ້ຂາຍ add-ons ໂດຍບໍ່ມີການລົບກວນລາຍຊື່ຫ້ອງສະຫມຸດຂອງ Perl.

· ໃນຫຼາຍແພລດຟອມ, 'cc' ທີ່ຜູ້ຂາຍສະໜອງໃຫ້ຖືກຖອດອອກເກີນໄປທີ່ຈະສ້າງ Perl
(ໂດຍພື້ນຖານແລ້ວ, 'cc' ບໍ່ໄດ້ເຮັດ ANSI C). ຖ້າຫາກວ່ານີ້ເບິ່ງຄືວ່າເປັນກໍລະນີແລະ 'cc' ບໍ່ໄດ້
ເບິ່ງຄືວ່າເປັນ GNU C compiler 'gcc', ຄວາມພະຍາຍາມອັດຕະໂນມັດແມ່ນເຮັດເພື່ອຊອກຫາແລະນໍາໃຊ້
'gcc' ແທນ.

· gcc ຕ້ອງຕິດຕາມຢ່າງໃກ້ຊິດການປ່ອຍລະບົບປະຕິບັດການເພື່ອຫຼີກເວັ້ນການສ້າງບັນຫາ. ຖ້າ
Configure ພົບວ່າ gcc ຖືກສ້າງຂຶ້ນສໍາລັບການປ່ອຍລະບົບປະຕິບັດການທີ່ແຕກຕ່າງກັນກ່ວາເປັນ
ແລ່ນ, ມັນປະຈຸບັນໃຫ້ຄໍາເຕືອນທີ່ເຫັນໄດ້ຊັດເຈນວ່າອາດຈະມີບັນຫາຢູ່ຂ້າງຫນ້າ.

· ເນື່ອງຈາກ Perl 5.8 ບໍ່ເຂົ້າກັນໄດ້ກັບ binary ກັບການເປີດຕົວທີ່ຜ່ານມາຂອງ Perl, Configure no
ແນະນໍາຕໍ່ໄປອີກແລ້ວລວມທັງໂມດູນ 5.005 ໃນ @INC.

· ຕັ້ງຄ່າ "-S" ໃນປັດຈຸບັນສາມາດດໍາເນີນການທີ່ບໍ່ແມ່ນການໂຕ້ຕອບ. [561]

· ການ​ຕັ້ງ​ຄ່າ​ສະ​ຫນັບ​ສະ​ຫນູນ​ສໍາ​ລັບ​ຮູບ​ແບບ​ຄວາມ​ຊົງ​ຈໍາ​ແບບ pdp11 ໄດ້​ຖືກ​ໂຍກ​ຍ້າຍ​ອອກ​ເນື່ອງ​ຈາກ​ການ​ລ້າ​ສະ​ໄຫມ​.
[561]

· configure.gnu ຕອນນີ້ເຮັດວຽກກັບທາງເລືອກທີ່ມີຊ່ອງຫວ່າງຢູ່ໃນພວກມັນ.

· installperl ດຽວນີ້ສົ່ງຜົນທຸກຢ່າງໃຫ້ກັບ STDERR.

·ເນື່ອງຈາກວ່າ PerlIO ປະຈຸບັນເປັນຄ່າເລີ່ມຕົ້ນໃນເວທີສ່ວນໃຫຍ່, "-perlio" ບໍ່ໄດ້ຮັບການເພີ່ມເຕີມຕໍ່ກັບ
$Config{archname} (ຍັງເອີ້ນວ່າ $^O) ອີກຕໍ່ໄປ. ແທນທີ່ຈະ, ຖ້າທ່ານເລືອກຢ່າງຊັດເຈນ
ບໍ່ໃຫ້ໃຊ້ perlio (ຕັ້ງຄ່າຕົວເລືອກເສັ້ນຄໍາສັ່ງ -Uuseperlio), ທ່ານຈະໄດ້ຮັບ "-stdio"
ຕໍ່ທ້າຍ.

· ການປ່ຽນແປງອື່ນທີ່ກ່ຽວຂ້ອງກັບຊື່ສະຖາປັດຕະຍະກໍາແມ່ນວ່າ "-64all" (-Duse64bitall, ຫຼື
"ສູງສຸດແມ່ນ 64-bit") ຖືກຕໍ່ທ້າຍພຽງແຕ່ຖ້າຕົວຊີ້ຂອງເຈົ້າກວ້າງ 64 ບິດ. (ໃຫ້​ຖືກ​ຕ້ອງ​,
use64bitall ຖືກລະເລີຍ.)

· ໃນ​ການ​ຕິດ​ຕັ້ງ AFS, ຫນຶ່ງ​ສາ​ມາດ configure ຮາກ​ຂອງ AFS ຈະ​ຢູ່​ບ່ອນ​ອື່ນ​ກ​່​ວາ
ໃນຕອນຕົ້ນ /afs ໂດຍໃຊ້ຕົວກໍານົດການ "-Dafsroot =/some/where/else".

· APPLLIB_EXP, ການກໍານົດເວລາການຕັ້ງຄ່າທີ່ຮູ້ຈັກຫນ້ອຍ, ໄດ້ຖືກບັນທຶກໄວ້. ມັນ
ສາມາດຖືກນໍາໃຊ້ເພື່ອ prepend site-specific directory ກັບ Perl's default search path (@INC);
ເບິ່ງ INSTALL ສໍາລັບຂໍ້ມູນ.

· ເວີ​ຊັນ​ຂອງ Berkeley DB ທີ່​ໃຊ້​ໃນ​ເວ​ລາ​ທີ່ Perl (ແລະ, ສົມ​ມຸດ​ວ່າ, ການ​ຂະ​ຫຍາຍ DB_File)
ຖືກສ້າງຂຶ້ນໃນປັດຈຸບັນສາມາດໃຊ້ໄດ້ເປັນ @Config{qw(db_version_major db_version_minor
db_version_patch)} ຈາກ Perl ແລະເປັນ "DB_VERSION_MAJOR_CFG DB_VERSION_MINOR_CFG
DB_VERSION_PATCH_CFG" ຈາກ C.

·ການກໍ່ສ້າງ Berkeley DB3 ສໍາລັບຮູບແບບຄວາມເຂົ້າກັນໄດ້ສໍາລັບ DB, NDBM, ແລະ ODBM ໄດ້
ບັນທຶກໃນ INSTALL.

· ຖ້າ​ຫາກ​ທ່ານ​ມີ​ການ​ເຂົ້າ​ເຖິງ CPAN (ທັງ​ເຄືອ​ຂ່າຍ​ຫຼື​ສໍາ​ເນົາ​ທ້ອງ​ຖິ່ນ​ເຊັ່ນ CD​-ROM​) ທ່ານ​ສາ​ມາດ​ເຮັດ​ໄດ້​
ໃນ​ລະ​ຫວ່າງ​ການ​ລະ​ບຸ​ໂມ​ດູນ​ພິ​ເສດ​ເພື່ອ​ກໍາ​ນົດ​ການ​ສ້າງ​ແລະ​ຕິດ​ຕັ້ງ​ກັບ Perl ການ​ນໍາ​ໃຊ້​
-Dextras=... ທາງເລືອກ. ເບິ່ງ INSTALL ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ.

· ນອກຈາກ config.over, ໄຟລ໌ override ໃໝ່, config.arch, ແມ່ນມີຢູ່. ໄຟລ໌ນີ້
ຄາດວ່າຈະຖືກນໍາໃຊ້ໂດຍນັກຂຽນໄຟລ໌ຄໍາແນະນໍາສໍາລັບການປ່ຽນແປງທົ່ວສະຖາປັດຕະຍະກໍາ (ກົງກັນຂ້າມ
ກັບ config.over ເຊິ່ງແມ່ນສໍາລັບການປ່ຽນແປງທົ່ວເວັບໄຊທ໌).

·ຖ້າລະບົບໄຟລ໌ຂອງທ່ານສະຫນັບສະຫນູນການເຊື່ອມໂຍງສັນຍາລັກ, ທ່ານສາມາດສ້າງ Perl ຢູ່ນອກແຫຼ່ງ
ໄດເລກະທໍລີໂດຍ

mkdir perl/build/directory
cd perl/build/directory
sh /path/to/perl/source/Configure -Dmksymlinks ...

ນີ້ຈະສ້າງໃນ perl/build/directory ຕົ້ນໄມ້ຂອງການເຊື່ອມຕໍ່ສັນຍາລັກຊີ້ໄປຫາໄຟລ໌ໃນ
/path/to/perl/source. ໄຟລ໌ຕົ້ນສະບັບຖືກປະໄວ້ໂດຍບໍ່ໄດ້ຮັບຜົນກະທົບ. ຫຼັງຈາກ Configure ມີ
ສໍາເລັດແລ້ວ, ທ່ານພຽງແຕ່ສາມາດເວົ້າ

ເຮັດ​ໃຫ້​ການ​ທົດ​ສອບ​ທັງ​ຫມົດ​

ແລະ Perl ຈະຖືກສ້າງແລະທົດສອບ, ທັງຫມົດໃນ perl / build / directory. [561]

·ສໍາລັບນັກພັດທະນາ Perl, ເປົ້າຫມາຍໃຫມ່ຈໍານວນຫນຶ່ງສໍາລັບການສ້າງໂປຣໄຟລ໌ແລະການດີບັກແມ່ນໄດ້
ເພີ່ມ; ເບິ່ງ perlhack.

· ການ​ນໍາ​ໃຊ້​ ກປ ເຄື່ອງມືເພື່ອ profile Perl ໄດ້ຖືກບັນທຶກໄວ້ໃນ perlhack. ຢູ່ທີ່ນັ້ນ
ແມ່ນເປົ້າຫມາຍທີ່ເຮັດໃຫ້ເອີ້ນວ່າ "perl.gprof" ສໍາລັບການສ້າງ gprofiled Perl
ປະຕິບັດໄດ້.

· ຖ້າທ່ານມີ GCC 3, ມີການສ້າງເປົ້າຫມາຍທີ່ເອີ້ນວ່າ "perl.gcov" ສໍາລັບການສ້າງ
gcoved Perl ສາມາດປະຕິບັດໄດ້ສໍາລັບການວິເຄາະການຄຸ້ມຄອງ. ເບິ່ງ perlhack.

· ຖ້າເຈົ້າຢູ່ໃນເວທີ IRIX ຫຼື Tru64, ຕົວເລືອກໂປຣໄຟລ໌/ການດີບັກໃໝ່ມີ
ໄດ້ຖືກເພີ່ມ; ເບິ່ງ perlhack ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບ pixie ແລະ Third Degree.

· ຄໍາແນະນໍາຂອງວິທີການກໍ່ສ້າງການຕິດຕັ້ງ Perl ຫນ້ອຍທີ່ສຸດໄດ້ຖືກເພີ່ມເຂົ້າໃນ INSTALL.

· ການຂະຫຍາຍກະທູ້ໃນປັດຈຸບັນບໍ່ໄດ້ສ້າງຂຶ້ນຢູ່ໃນຫົວຂໍ້ທັງໝົດ ("Configure
-Duseithreads") ເພາະ​ວ່າ​ມັນ​ຈະ​ບໍ່​ເຮັດ​ວຽກ​ຢ່າງ​ໃດ​ກໍ​ຕາມ (ການ​ຂະ​ຫຍາຍ​ກະ​ທູ້​ຮຽກ​ຮ້ອງ​ໃຫ້​ມີ
ຕັ້ງຄ່າດ້ວຍ "-Duse5005threads").

ຫມາຍ​ເຫດ​ ທີ່ ໄດ້ 5.005 ກະທູ້ ມີ ບໍ່ຮອງຮັບ ແລະ ເຊົາສະໜັບສະໜູນ: if ທ່ານ ມີ ລະຫັດ ລາຍລັກອັກສອນ
ສໍາລັບການ ໄດ້ ອາຍຸ ກະທູ້ ທ່ານ ຄວນ ເຄື່ອນຍ້າຍ it to ໄດ້ ໃຫມ່ ຫົວຂໍ້ model

· ມະຫາພາກ Gconvert ($Config{d_Gconvert}) ທີ່ໃຊ້ໂດຍ perl ສຳລັບການກຳນົດຈຸດລອຍ
ຕົວເລກໃນປັດຈຸບັນແມ່ນເລືອກຫຼາຍກ່ຽວກັບການໃຊ້ sprintf %.*g ກົດລະບຽບສໍາລັບການແປງ. ບາງ
ແພລະຕະຟອມທີ່ເຄີຍໃຊ້ gcvt ໃນປັດຈຸບັນອາດຈະຫັນໄປຫາ sprintf ທີ່ຊ້າລົງ.

·ວິທີການລ້າສະໄຫມຂອງການເຮັດໃຫ້ລົດຊາດພິເສດ (ຕົວຢ່າງ, debugging) ຂອງ perl ໂດຍເວົ້າ

ເຮັດໃຫ້ LIBPERL=libperld.a

ໄດ້ຖືກໂຍກຍ້າຍ. ໃຊ້ -DDEBUGGING ແທນ.

ໃຫມ່ Or ປັບປຸງ ເວທີ
ສໍາລັບບັນຊີລາຍຊື່ຂອງເວທີທີ່ຮູ້ຈັກເພື່ອສະຫນັບສະຫນູນ Perl, ເບິ່ງ "ເວທີທີ່ສະຫນັບສະຫນູນ" ໃນ perlport.

· ການໂຫຼດແບບໄດນາມິກ AIX ຄວນຈະໄດ້ຮັບການສະຫນັບສະຫນູນທີ່ດີກວ່າໃນປັດຈຸບັນ.

· ຕອນນີ້ AIX ຄວນເຮັດວຽກໄດ້ດີກວ່າກັບ gcc, threads, ແລະ 64-bitness. ຍັງຍາວສອງເທົ່າ
ການສະຫນັບສະຫນູນໃນ AIX ຄວນຈະດີກວ່າໃນປັດຈຸບັນ. ເບິ່ງ perlaix.

· AtheOS ( http://www.atheos.cx/ ) ເປັນ​ເວ​ທີ​ໃຫມ່​.

· BeOS ໄດ້ຖືກຍຶດຄືນແລ້ວ.

· ຕອນນີ້ແພລດຟອມ DG/UX ຮອງຮັບ 5.005 ຮູບແບບ. ເບິ່ງ perldgux.

· ແພລດຟອມ DYNIX/ptx (ເອີ້ນອີກຊື່ໜຶ່ງວ່າ dynixptx) ແມ່ນຮອງຮັບຢູ່ ຫຼືໃກ້ກັບ osvers 4.5.2.

· ເວທີ EBCDIC (z/OS (ຍັງເອີ້ນວ່າ OS/390), POSIX-BC, ແລະ VM/ESA) ແມ່ນ
ໄດ້ຄືນມາ. ການທົດສອບຊຸດທົດສອບຈໍານວນຫຼາຍຍັງລົ້ມເຫລວແລະການຢູ່ຮ່ວມກັນຂອງ Unicode ແລະ EBCDIC
ບໍ່ໄດ້ຕົກລົງຂ້ອນຂ້າງ, ແຕ່ສະຖານະການແມ່ນດີກ່ວາກັບ Perl 5.6. ເບິ່ງ
perlos390, perlbs2000 (ສໍາລັບ POSIX-BC), ແລະ perlvmesa ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ. (ຫມາຍ​ເຫດ​:
ການຮອງຮັບ VM/ESA ຖືກລຶບອອກໃນ Perl v5.18.0. ຂໍ້ມູນທີ່ກ່ຽວຂ້ອງແມ່ນຢູ່ໃນ
README.vmesa)

· ການສ້າງ perl ດ້ວຍ -Duseithreads ຫຼື -Duse5005threads ໃນປັດຈຸບັນເຮັດວຽກພາຍໃຕ້ HP-UX 10.20
(ກ່ອນຫນ້ານີ້ມັນພຽງແຕ່ເຮັດວຽກພາຍໃຕ້ 10.30 ຫຼືຫຼັງຈາກນັ້ນ). ທ່ານຈະຕ້ອງມີຫ້ອງສະຫມຸດກະທູ້
ຊຸດຕິດຕັ້ງ. ເບິ່ງ README.hpux. [561]

· Mac OS Classic ປະຈຸບັນໄດ້ຮັບການສະຫນັບສະຫນູນໃນຊຸດແຫຼ່ງຕົ້ນຕໍ (MacPerl ມີ
ຫຼັກສູດມີຢູ່ຕັ້ງແຕ່ perl 5.004 ແຕ່ຕອນນີ້ລະຫັດແຫຼ່ງຂອງມາດຕະຖານ Perl
ແລະ MacPerl ໄດ້ຖືກ synchronised) [561]

· Mac OS X (ຫຼື Darwin) ໃນປັດຈຸບັນຄວນຈະສາມາດສ້າງ Perl ເຖິງແມ່ນວ່າຢູ່ໃນລະບົບໄຟລ໌ HFS+. (ໄດ້
case-insensitivity ໃຊ້ເພື່ອສັບສົນຂະບວນການສ້າງ Perl.)

· NCR MP-RAS ໄດ້ຮັບການສະຫນັບສະຫນູນໃນປັດຈຸບັນ. [561]

· ທັງຫມົດ NetBSD ເພີ້ມສະເພາະ (ຍົກເວັ້ນສໍາລັບການຕິດຕັ້ງສະເພາະຫນຶ່ງ) ໄດ້
ລວມກັບຄືນໄປບ່ອນການແຜ່ກະຈາຍຕົ້ນຕໍ.

· NetWare ຈາກ Novell ໄດ້ຮັບການສະຫນັບສະຫນູນໃນປັດຈຸບັນ. ເບິ່ງ perlnetware.

· NonStop-UX ໄດ້ຮັບການສະຫນັບສະຫນູນໃນປັດຈຸບັນ. [561]

· NEC SUPER-UX ໄດ້ຮັບການສະຫນັບສະຫນູນໃນປັດຈຸບັນ.

· ແຜ່ນສະເພາະ OpenBSD ທັງໝົດ (ຍົກເວັ້ນສະເພາະການຕິດຕັ້ງສະເພາະ) ແມ່ນແລ້ວ
ລວມກັບຄືນໄປບ່ອນການແຜ່ກະຈາຍຕົ້ນຕໍ.

· Perl ໄດ້ຮັບການທົດສອບກັບຊຸດກະທູ້ລະດັບຜູ້ໃຊ້ GNU pth (
http://www.gnu.org/software/pth/pth.html ). ການທົດສອບກະທູ້ທັງຫມົດຂອງ Perl ໃນປັດຈຸບັນເຮັດວຽກ, ແຕ່
ບໍ່ແມ່ນໂດຍບໍ່ມີການເພີ່ມບາງ ຜົນຜະລິດ()s ກັບການທົດສອບ, ດັ່ງນັ້ນໃນຂະນະທີ່ pth (ແລະລະດັບຜູ້ໃຊ້ອື່ນໆ
ການປະຕິບັດກະທູ້) ສາມາດຖືວ່າເປັນ "ເຮັດວຽກ" ກັບ Perl ithreads, ຮັກສາຢູ່ໃນ
ຈື່ໄວ້ເຖິງຄວາມອາດສາມາດທີ່ບໍ່ແມ່ນການລ່ວງລະເມີດຂອງການປະຕິບັດກະທູ້ທີ່ຕິດພັນ.

· Stratus VOS ປະຈຸບັນໄດ້ຮັບການສະຫນັບສະຫນູນໂດຍໃຊ້ວິທີການສ້າງພື້ນເມືອງຂອງ Perl (Configure). ນີ້​ແມ່ນ
ວິທີການແນະນໍາເພື່ອສ້າງ Perl ໃນ VOS. ວິທີການເກົ່າ, ເຊິ່ງກໍ່ສ້າງ miniperl,
ຍັງມີຢູ່. ເບິ່ງ perlvos. [561+]

· ແພລດຟອມຫຼັກຂອງ Amdahl UTS Unix ໄດ້ຮັບການສະໜັບສະໜູນແລ້ວ. [561]

· WinCE ໄດ້ຮັບການສະຫນັບສະຫນູນໃນປັດຈຸບັນ. ເບິ່ງ perlce.

· z/OS (ເມື່ອກ່ອນເອີ້ນວ່າ OS/390, ເມື່ອກ່ອນເອີ້ນວ່າ MVS OE) ປະຈຸບັນມີການສະຫນັບສະຫນູນແບບເຄື່ອນໄຫວ
ກຳລັງໂຫຼດ. ນີ້ບໍ່ໄດ້ຖືກເລືອກໂດຍຄ່າເລີ່ມຕົ້ນ, ຢ່າງໃດກໍຕາມ, ທ່ານຕ້ອງລະບຸ -Dusedl ໃນ
ການໂຕ້ຖຽງຂອງ Configure. [561]

ການຄັດເລືອກ bow ແກ້ໄຂ


ການຮົ່ວໄຫຼຂອງໜ່ວຍຄວາມຈຳຈຳນວນຫຼວງຫຼາຍ ແລະການເຂົ້າເຖິງຄວາມຊົງຈຳທີ່ຍັງບໍ່ທັນໄດ້ເລີ່ມນຳໃຊ້ໄດ້ຖືກຕາມລ່າ. ຫຼາຍທີ່ສຸດ
ທີ່ສໍາຄັນ, subs ທີ່ບໍ່ເປີດເຜີຍຊື່ໃຊ້ໃນການຮົ່ວໄຫລເລັກນ້ອຍ. [561]

· autouse pragma ບໍ່ໄດ້ເຮັດວຽກສໍາລັບ Multi::Part::Function::Names.

· ຜູ້ໂທ() ສາມາດເຮັດໃຫ້ເກີດການຖິ້ມຂີ້ເຫຍື້ອໃນບາງສະຖານະການ. ບາງຄັ້ງ Carp ໄດ້ຮັບຜົນກະທົບຈາກ
ບັນຫານີ້. ໂດຍ​ສະ​ເພາະ, ຜູ້ໂທ() ຕອນນີ້ສົ່ງຄືນຊື່ທີ່ເຮັດປະຈຳຍ່ອຍຂອງ "(unknown)"
ສໍາ​ລັບ subroutines ທີ່​ໄດ້​ຮັບ​ການ​ໂຍກ​ຍ້າຍ​ອອກ​ຈາກ​ຕາ​ຕະ​ລາງ​ສັນ​ຍາ​ລັກ​.

· ຟັກ(@list) ໃນບໍລິບົດລາຍການສົ່ງຄືນຕົວອັກສອນທີ່ຖືກຕັດໃນລຳດັບປີ້ນກັບກັນ. ນີ້
ໄດ້ຖືກຖອນຄືນໃຫ້ຢູ່ໃນລໍາດັບທີ່ຖືກຕ້ອງ. [561]

· ຕັ້ງຄ່າບໍ່ລວມເອົາຫ້ອງສະໝຸດ DBM (dbm, gdbm, db, ndbm) ອີກຕໍ່ໄປເມື່ອສ້າງ
Perl binary. ຂໍ້ຍົກເວັ້ນພຽງແຕ່ນີ້ແມ່ນ SunOS 4.x, ເຊິ່ງຕ້ອງການພວກມັນ. [561]

· ພຶດ​ຕິ​ກໍາ​ຂອງ​ການ​ບໍ່​ແມ່ນ​ທົດ​ສະ​ນິ​ຍົມ​ແຕ່​ເປັນ​ຕົວ​ເລກ​ຄົງ​ທີ່​ສະ​ຕ​ຣິງ​ເຊັ່ນ "0x23​" ເປັນ platform-
dependent: ໃນບາງແພລະຕະຟອມທີ່ເຫັນວ່າເປັນ 35, ໃນບາງອັນເປັນ 0, ໃນບາງອັນເປັນແບບເລື່ອນ
ເລກຈຸດ (ຢ່າຖາມ). ນີ້ແມ່ນເກີດມາຈາກ Perl ຂອງການນໍາໃຊ້ລະບົບປະຕິບັດການ
ຫ້ອງສະໝຸດໃນສະຖານະການທີ່ຜົນຂອງການປ່ຽນສະຕຣິງເປັນຕົວເລກ
undefined: ໃນປັດຈຸບັນ Perl ປະຕິບັດຢ່າງສະຫມໍ່າສະເຫມີເຊັ່ນ: ສູນໃນບໍລິບົດຕົວເລກ.

·ການແກ້ໄຂດີບັກຫຼາຍໆຢ່າງ: ລະຫັດອອກຕອນນີ້ສະທ້ອນເຖິງລະຫັດອອກຂອງສະຄຣິບ, ເງື່ອນໄຂ "0" ດຽວນີ້
ໄດ້ຮັບການປິ່ນປົວຢ່າງຖືກຕ້ອງ, ຄໍາສັ່ງ "d" ໃນປັດຈຸບັນກວດເບິ່ງຈໍານວນເສັ້ນ, $. ບໍ່​ໄດ້​ຮັບ​ຕໍ່​ໄປ​ອີກ​ແລ້ວ​
ເສຍຫາຍ, ແລະຜົນອອກຂອງດີບັກທັງໝົດດຽວນີ້ໄປໃສ່ຊັອກເກັດຢ່າງຖືກຕ້ອງຖ້າ RemotePort ແມ່ນ
ຕັ້ງ. [561]

· debugger (perl5db.pl) ໄດ້ຖືກດັດແກ້ເພື່ອນໍາສະເຫນີຄໍາສັ່ງທີ່ສອດຄ່ອງຫຼາຍ
ການໂຕ້ຕອບ, ຜ່ານ (CommandSet=580). perl5db.t ຍັງຖືກເພີ່ມເພື່ອທົດສອບການປ່ຽນແປງ, ແລະເປັນ
ສະຖານທີ່ສໍາລັບການທົດສອບຕໍ່ໄປ.

ເບິ່ງ perldbug.

· debugger ມີ "dumpDepth" ທາງເລືອກໃຫມ່ເພື່ອຄວບຄຸມຄວາມເລິກສູງສຸດທີ່ຈະຮັງ
ໂຄງສ້າງຖືກຖິ້ມ. ຄໍາສັ່ງ "x" ໄດ້ຖືກຂະຫຍາຍອອກເພື່ອໃຫ້ "x N EXPR" ຖິ້ມອອກ
ມູນຄ່າຂອງ ເອັນພີພີ ໃນລະດັບຄວາມເລິກທີ່ສຸດ N ລະດັບ.

· ດຽວນີ້ debugger ສາມາດສະແດງຕົວແປ lexical ຖ້າເຈົ້າມີໂມດູນ CPAN PadWalker
ຕິດຕັ້ງ.

·ຄໍາສັ່ງຂອງ DESTROYs ໄດ້ຖືກເຮັດໃຫ້ຄາດຄະເນຫຼາຍຂຶ້ນ.

· Perl 5.6.0 ສາ​ມາດ​ປ່ອຍ​ອອກ​ມາ​ຈາກ​ການ​ເຕືອນ​ໄພ spurious ກ່ຽວ​ກັບ redefinition ຂອງ​ dl_error() ໃນເວລາທີ່
ສະຖິຕິການກໍ່ສ້າງການຂະຫຍາຍເຂົ້າໄປໃນ perl. ອັນນີ້ໄດ້ຖືກແກ້ໄຂແລ້ວ. [561]

· dprofpp -R ບໍ່ເຮັດວຽກ.

· *foo{FORMAT} ດຽວນີ້ໃຊ້ໄດ້ແລ້ວ.

· Infinity ດຽວນີ້ຖືກຮັບຮູ້ເປັນຕົວເລກ.

· Universal::isa ບໍ່ cache ວິທີການທີ່ບໍ່ຖືກຕ້ອງ. (ນີ້ທໍາລາຍການຂະຫຍາຍ Tk
ກັບ 5.6.0.) [561]

· Lexicals I: lexicals ຢູ່ນອກ eval "" ບໍ່ໄດ້ຖືກແກ້ໄຂຢ່າງຖືກຕ້ອງພາຍໃນ subroutine
ຄໍານິຍາມພາຍໃນ eval "" ຖ້າພວກເຂົາບໍ່ໄດ້ຖືກອ້າງອີງແລ້ວໃນລະດັບສູງສຸດຂອງ
the eval ""ລະຫັດ ed.

· Lexicals II: lexicals ຮົ່ວຢູ່ໃນຂອບເຂດໄຟລ໌ເຂົ້າໄປໃນ subroutines ທີ່ຖືກປະກາດກ່ອນ.
lexicals ໄດ້.

·ຄໍາເຕືອນ Lexical ໃນປັດຈຸບັນຂະຫຍາຍພັນຢ່າງຖືກຕ້ອງລະຫວ່າງຂອບເຂດແລະເຂົ້າໄປໃນ "eval "..."".

· "ໃຊ້ຄໍາເຕືອນ qw (FATAL ທັງຫມົດ)" ບໍ່ໄດ້ເຮັດວຽກຕາມຈຸດປະສົງ. ອັນນີ້ໄດ້ຖືກແກ້ໄຂແລ້ວ. [561]

· ຄຳເຕືອນ::enabled() ຕອນນີ້ລາຍງານສະຖານະຂອງ $^W ຢ່າງຖືກຕ້ອງ ຖ້າຜູ້ໂທບໍ່ໄດ້ໃຊ້
ຄໍາເຕືອນ lexical. [561]

· ການປ່ຽນເລກແຖວດ້ວຍ eval ແລະ "#line" ດຽວນີ້ເຮັດວຽກແລ້ວ. [561]

·ແກ້ໄຂການຮົ່ວໄຫລຂອງຄວາມຊົງຈໍາຈໍານວນຫລາຍ, ໂດຍສະເພາະໃນ eval "".

·ຕົວແປທີ່ຜູກມັດທ້ອງຖິ່ນບໍ່ຮົ່ວໄຫຼໃນຄວາມຊົງຈໍາ

ໃຊ້ Tie::Hash;
tie %tied_hash ຂອງຂ້ອຍ => 'Tie::StdHash';

...

# ໃຊ້ເພື່ອຮົ່ວຄວາມຊົງຈໍາທຸກຄັ້ງ local() ຖືກເອີ້ນ;
# ໃນ loop, ນີ້ເພີ່ມຂຶ້ນ.
local($tied_hash{Foo}) = 1;

· ອົງ​ປະ​ກອບ hash ທ້ອງ​ຖິ່ນ (ແລະ %ENV) ແມ່ນ​ຖືກ​ຕ້ອງ unlocalised ທີ່​ຈະ​ບໍ່​ມີ, ຖ້າ​ຫາກ​ວ່າ​ມັນ
ບໍ່ໄດ້ກ່ອນທີ່ເຂົາເຈົ້າໄດ້ຖືກທ້ອງຖິ່ນ.

ໃຊ້ Tie::Hash;
tie %tied_hash ຂອງຂ້ອຍ => 'Tie::StdHash';

...

# ບໍ່ມີຫຍັງກໍານົດອົງປະກອບ FOO ມາເຖິງຕອນນັ້ນ

{ ທ້ອງຖິ່ນ $tied_hash{FOO} = 'Bar' }

# ອັນນີ້ເຄີຍພິມ, ແຕ່ບໍ່ແມ່ນດຽວນີ້.
ພິມ "ມີຢູ່!\n" ຖ້າມີ $tied_hash{FOO};

ໃນຖານະເປັນຜົນກະທົບຂ້າງຄຽງຂອງການແກ້ໄຂນີ້, ການເຊື່ອມຕໍ່ hash interfaces ຕ້ອງ ກໍານົດທີ່ມີຢູ່ແລ້ວແລະລຶບ
ວິທີການ.

· mkdir() ຕອນນີ້ບໍ່ສົນໃຈຕົວຫຍໍ້ໜ້າໃນຊື່ໄດເຣັກທໍຣີ, ຕາມການມອບໝາຍໂດຍ POSIX.

·ບາງຮຸ່ນຂອງ glibc ມີການແຕກຫັກ modfl(). ນີ້ມີຜົນກະທົບການກໍ່ສ້າງກັບ
"-Duselongdouble". Perl ຮຸ່ນນີ້ກວດພົບຄວາມແຕກຫັກນີ້ແລະມີການແກ້ໄຂ
ສໍາລັບມັນ. ການປ່ອຍ glibc 2.2.2 ແມ່ນເປັນທີ່ຮູ້ຈັກທີ່ຈະແກ້ໄຂ modfl() ບັກ.

· ໂມດູລຂອງຕົວເລກທີ່ບໍ່ໄດ້ເຊັນໃນປັດຈຸບັນເຮັດວຽກ (4063328477 % 65535 ໃຊ້ເພື່ອກັບຄືນ 27406,
ແທນ 27047). [561]

·ບາງຄໍາເຕືອນ "ບໍ່ແມ່ນຕົວເລກ" ທີ່ນໍາສະເຫນີໃນ 5.6.0 ລົບລ້າງເພື່ອໃຫ້ເຂົ້າກັນໄດ້ຫຼາຍຂຶ້ນ
5.005. ດຽວນີ້ Infinity ຖືກຮັບຮູ້ເປັນຕົວເລກ. [561]

· ການແປງຕົວເລກບໍ່ໄດ້ຮັບຮູ້ການປ່ຽນແປງຂອງຄ່າສະຕຣິງຢ່າງຖືກຕ້ອງໃນບາງອັນ
ສະຖານະການ. [561]

· ຄຸນສົມບັດ (ເຊັ່ນ: ແບ່ງປັນ) ໃຊ້ບໍ່ໄດ້ກັບ ຂອງພວກເຮົາ ().

· ຂອງພວກເຮົາ () ຕົວແປຈະບໍ່ເຮັດໃຫ້ເກີດການປອມແປງ "ຕົວແປຈະບໍ່ຢູ່ຮ່ວມກັນ" ຄໍາເຕືອນ. [561]

·ຕົວແປ "ຂອງພວກເຮົາ" ທີ່ມີຊື່ດຽວກັນທີ່ປະກາດຢູ່ໃນສອງອ້າຍເອື້ອຍນ້ອງເຮັດໃຫ້ການປອມແປງ.
ຄໍາເຕືອນກ່ຽວກັບ "ການປະກາດຄືນ" ຂອງຕົວແປ. ບັນຫາໄດ້ຖືກແກ້ໄຂແລ້ວ.
[561]

· pack "Z" ດຽວນີ້ຢຸດສະຕຣິງດ້ວຍ "\0".

· ແກ້​ໄຂ​ລະ​ຫັດ​ຜ່ານ​ປົກ​ກະ​ຕິ​ໃນ​ບາງ​ເວ​ທີ​ລະ​ຫັດ​ຜ່ານ​ເງົາ (ເຊັ່ນ HP-UX) ເກີດ​ຂຶ້ນ
getpwent() ເພື່ອກັບຄືນທຸກລາຍການອື່ນໆ.

·ຕົວແປສະພາບແວດລ້ອມ PERL5OPT (ສໍາລັບການຖ່າຍທອດການໂຕ້ຖຽງເສັ້ນຄໍາສັ່ງໄປຫາ Perl) ບໍ່ໄດ້.
ເຮັດວຽກສໍາລັບຫຼາຍກວ່າກຸ່ມດຽວຂອງທາງເລືອກ. [561]

· PERL5OPT ທີ່ມີບ່ອນຝັງຕົວບໍ່ເຮັດວຽກ.

· printf() ບໍ່ຣີເຊັດສະຖານທີ່ຕົວເລກເປັນ "C".

· "qw(a\\b)" ດຽວນີ້ແຍກເປັນ 'a\b': ນັ້ນແມ່ນ, ເປັນສາມຕົວອັກສອນ, ບໍ່ແມ່ນສີ່ຕົວ.
[561]

· pos() ບໍ່ໄດ້ສົ່ງຄືນຄ່າທີ່ຖືກຕ້ອງພາຍໃນ s///ge ໃນລຸ້ນກ່ອນໜ້າ. ນີ້ແມ່ນດຽວນີ້
ຈັດການຢ່າງຖືກຕ້ອງ. [561]

· quads ການພິມ (ຈໍານວນ 64-bit) ກັບ printf/sprintf ໃນປັດຈຸບັນເຮັດວຽກໂດຍບໍ່ມີການ q L ll
ຄໍານໍາຫນ້າ (ສົມມຸດວ່າທ່ານຢູ່ໃນເວທີ quad-capable).

· ການສະແດງອອກເປັນປົກກະຕິກ່ຽວກັບການອ້າງອິງແລະ scalers overloaded ໃນປັດຈຸບັນເຮັດວຽກ. [561+]

· ດ້ານຂວາມື magic (GMAGIC) ສາມາດໃນຫຼາຍກໍລະນີເຊັ່ນ: ການເຊື່ອມສາຍເຊືອກ
ຮຽກ​ຮ້ອງ​ຫຼາຍ​ຄັ້ງ​ເກີນ​ໄປ.

· ເກັດ() ຕອນນີ້ບັງຄັບໃຫ້ບໍລິບົດສະເກັດຕາເຖິງແມ່ນວ່າຈະໃຊ້ໃນບໍລິບົດທີ່ບໍ່ມີປະໂຫຍດ.

· SOCKS ສະຫນັບສະຫນູນໃນປັດຈຸບັນແມ່ນເຂັ້ມແຂງຫຼາຍ.

· ຄັດ () ປະຈຸບັນການໂຕ້ຖຽງໄດ້ຖືກລວບລວມຢູ່ໃນບໍລິບົດທີ່ຕ້ອງການ (ພວກເຂົາແມ່ນ
ໂດຍບັງເອີນໃຊ້ບໍລິບົດຂອງ ຄັດ () ຕົວຂອງມັນເອງ). ຕອນນີ້ບລັອກການປຽບທຽບກຳລັງດຳເນີນຢູ່
ຢູ່ໃນບໍລິບົດຂອງ scalar, ແລະ arguments ທີ່ຈະຈັດຮຽງແມ່ນສະເຫມີສະຫນອງໃຫ້ບັນຊີລາຍຊື່.
[561]

· ປ່ຽນ​ລະ​ດັບ​ຕົວ​ອັກ​ສອນ POSIX "[[:space:]]" ເພື່ອ​ປະ​ກອບ​ມີ (ບໍ່​ຄ່ອຍ​ໄດ້​ນໍາ​ໃຊ້​ຫຼາຍ​)
ຕົວອັກສອນແຖບແນວຕັ້ງ. ເພີ່ມປະເພດຕົວອັກສອນ POSIX-ish ໃໝ່ "[[:blank:]]" ເຊິ່ງ
ຫຍໍ້ມາຈາກຊ່ອງຫວ່າງທາງນອນ (ປະຈຸບັນ, ຊ່ອງຫວ່າງ ແລະແຖບ).

· ພຶດ​ຕິ​ກໍາ tainting ຂອງ​ sprintf() ໄດ້ຮັບການສົມເຫດສົມຜົນ. ມັນບໍ່ taint ໄດ້
ຜົນໄດ້ຮັບຂອງຮູບແບບຈຸດທີ່ເລື່ອນໄດ້ອີກຕໍ່ໄປ, ເຮັດໃຫ້ພຶດຕິກໍາທີ່ສອດຄ່ອງກັບ
string interpolation. [561]

·ບາງກໍລະນີຂອງການຂະຫຍາຍພັນ taint ທີ່ບໍ່ສອດຄ່ອງ (ເຊັ່ນ: ພາຍໃນຄ່າ hash) ໄດ້
ຄົງທີ່.

· ເຄື່ອງຈັກ RE ທີ່ພົບເຫັນຢູ່ໃນ Perl 5.6.0 ໂດຍບັງເອີນເຮັດໃຫ້ບາງປະເພດງ່າຍດາຍ
ຈັບ​ຄູ່​ຮູບ​ແບບ​. ປະຈຸບັນນີ້ຖືກຈັດການດີກວ່າ. [561]

· ຜົນ​ຜະ​ລິດ debug ການ​ສະ​ແດງ​ອອກ​ເປັນ​ປົກ​ກະ​ຕິ (ບໍ່​ວ່າ​ຈະ​ເປັນ​ໂດຍ​ຜ່ານ "ການ​ນໍາ​ໃຊ້ re 'debug'​" ຫຼື​ຜ່ານ "-Dr​"​) ໃນ​ປັດ​ຈຸ​ບັນ
ເບິ່ງດີກວ່າ. [561]

· ການຈັບຄູ່ຫຼາຍແຖວເຊັ່ນ ""a\nxb\n" =~ /(?!\A)x/m" ມີຂໍ້ບົກພ່ອງ. ແມງໄມ້ໄດ້
ຄົງທີ່. [561]

· ການ​ນໍາ​ໃຊ້ $& ສາ​ມາດ​ເຮັດ​ໃຫ້​ເກີດ​ການ dump ເປັນ​ຫຼັກ​ໃນ​ບາງ​ສະ​ຖາ​ນະ​ການ​. ນີ້​ແມ່ນ​ໃນ​ປັດ​ຈຸ​ບັນ​ຫຼີກ​ເວັ້ນ​ການ​. [561]

· ການສະແດງອອກປົກກະຕິ captured submatches ($1, $2, ...) ໃນປັດຈຸບັນແມ່ນສອດຄ່ອງຫຼາຍ
ບໍ່ໄດ້ຕັ້ງຖ້າການແຂ່ງຂັນລົ້ມເຫລວ, ແທນທີ່ຈະປ່ອຍໃຫ້ຂໍ້ມູນທີ່ບໍ່ຖືກຕ້ອງຢູ່ໃນພວກມັນ. [561]

· ແຖວອ່ານ() ໃນ​ໄຟລ​໌​ທີ່​ເປີດ​ໃນ​ຮູບ​ແບບ "slurp​" ສາ​ມາດ​ກັບ​ຄືນ​ມາ​ເປັນ​ພິ​ເສດ "" (ເສັ້ນ​ເປົ່າ​) ຢູ່​ທີ່​
ສິ້ນສຸດໃນສະຖານະການສະເພາະໃດຫນຶ່ງ. ອັນນີ້ໄດ້ຖືກແກ້ໄຂແລ້ວ. [561]

· Autovivification ຂອງສັນຍາລັກອ້າງອີງຂອງຕົວແປພິເສດທີ່ອະທິບາຍໄວ້ໃນ perlvar (ເປັນ
ໃນ "${$num}") ຖືກປິດການນຳໃຊ້ໂດຍບັງເອີນ. ນີ້ເຮັດວຽກອີກເທື່ອຫນຶ່ງໃນປັດຈຸບັນ. [561]

· Sys::Syslog ບໍ່ສົນໃຈ "LOG_AUTH" ຄົງທີ່.

· $AUTOLOAD, ຄັດ (), ລັອກ(), ແລະ spawning subprocesses ໃນຫຼາຍກະທູ້
ຂະນະດຽວກັນໃນປັດຈຸບັນແມ່ນປອດໄພ thread.

· Tie::ວິທີການ SPLICE ຂອງ Array ຖືກແຍກ.

· ອະ​ນຸ​ຍາດ​ໃຫ້​ສະ​ຕ​ຣິງ​ອ່ານ​ເທົ່າ​ນັ້ນ​ຢູ່​ເບື້ອງ​ຊ້າຍ​ມື​ຂອງ tr// ບໍ່​ແມ່ນ​ການ​ດັດ​ແກ້/.

· ຖ້າ "STDERR" ຖືກຜູກມັດ, ການເຕືອນໄພທີ່ເກີດຈາກ "ເຕືອນ" ແລະ "ຕາຍ" ໃນປັດຈຸບັນຈະຜ່ານມັນຢ່າງຖືກຕ້ອງ.

·ການແກ້ໄຂ Unicode ຫຼາຍອັນ.

· BOMs (ເຄື່ອງໝາຍຄໍາສັ່ງ byte) ໃນຕອນຕົ້ນຂອງໄຟລ໌ Perl (scripts, modules)
ດຽວນີ້ຄວນຈະຂ້າມຜ່ານຢ່າງໂປ່ງໃສ. UTF-16 ແລະ UCS-2 ເຂົ້າລະຫັດໄຟລ໌ Perl
ດຽວນີ້ຄວນອ່ານຢ່າງຖືກຕ້ອງ.

· ຕາຕະລາງຕົວອັກສອນໄດ້ຖືກປັບປຸງເປັນ Unicode 3.2.0.

· ການປຽບທຽບກັບຂໍ້ມູນ utf8 ບໍ່ໄດ້ຍົກລະດັບຂໍ້ມູນທີ່ບໍ່ແມ່ນ utf8 ເຂົ້າໄປໃນ utf8.
(ນີ້​ເປັນ​ບັນ​ຫາ​ສໍາ​ລັບ​ຕົວ​ຢ່າງ​ຖ້າ​ຫາກ​ວ່າ​ທ່ານ​ກໍາ​ລັງ​ປະ​ສົມ​ຂໍ້​ມູນ​ຈາກ I/O ແລະ Unicode​
ຂໍ້ມູນ: ຜົນຜະລິດຂອງທ່ານອາດຈະຖືກເຂົ້າລະຫັດເປັນ UTF-8.)

· ສ້າງຈຸດລະຫັດ Unicode ທີ່ຜິດກົດໝາຍເຊັ່ນ U+FFFE, ຫຼື UTF-16
ຕົວແທນ, ໃນປັດຈຸບັນຍັງສ້າງຄໍາເຕືອນທາງເລືອກ.

· "IsAlnum", "IsAlpha", ແລະ "IsWord" ດຽວນີ້ກົງກັນກັບຕົວພິມໃຫຍ່.

· ການສົມທົບກັບ "." operator ຫຼືຜ່ານ interpolation ຕົວແປ, "eq",
"substr", "reverse", "quotemeta", ໂຕປະຕິບັດການ "x", ການທົດແທນດ້ວຍ "s///",
single-quoted UTF-8, ໃນປັດຈຸບັນຄວນຈະເຮັດວຽກ.

· ຕອນນີ້ຕົວປະຕິບັດການ "tr///" ເຮັດວຽກແລ້ວ. ໃຫ້ສັງເກດວ່າຫນ້າທີ່ "tr // / CU" ມີ
ໄດ້ຖືກໂຍກຍ້າຍອອກ (ແຕ່ເບິ່ງ pack('U0', ...)).

· "eval "v200" ປະຈຸບັນເຮັດວຽກ.

· Perl 5.6.0 pared m/\x{ab}/ ບໍ່ຖືກຕ້ອງ, ນໍາໄປສູ່ການເຕືອນໄພ. ນີ້
ໄດ້​ຮັບ​ການ​ແກ້​ໄຂ​. [561]

· ສູນຂາດລາຍການຈາກຫ້ອງຮຽນ Unicode ເຊັ່ນ "IsDigit".

· ຕົວເລກທີ່ບໍ່ມີການລົງລາຍເຊັນໃຫຍ່ (ຜູ້ທີ່ສູງກວ່າ 2**31) ບາງຄັ້ງອາດຈະສູນເສຍການບໍ່ໄດ້ເຊັນ,
ເຮັດໃຫ້ເກີດການຫຼອກລວງໃນການດໍາເນີນງານເລກເລກ. [561]

· Perl parser ໄດ້ຮັບການທົດສອບຄວາມກົດດັນໂດຍໃຊ້ທັງ input random ແລະ Markov chain input
ແລະ​ການ​ພົບ​ເຫັນ​ອຸ​ປະ​ຕິ​ເຫດ​ຈໍາ​ນວນ​ຫນ້ອຍ​ແລະ​ການ​ປິດ​ລ້ອມ​ໄດ້​ຮັບ​ການ​ແກ້​ໄຂ​.

ເວທີ Specific ການປ່ຽນແປງ ແລະ ແກ້ໄຂ
· BSDI 4.*

ໃນປັດຈຸບັນ Perl ເຮັດວຽກຢູ່ໃນ post-4.0 BSD/OSes.

· BSDs ທັງໝົດ

ການຕັ້ງຄ່າ $0 ໃນປັດຈຸບັນເຮັດວຽກ (ຫຼາຍເທົ່າທີ່ເປັນໄປໄດ້; ເບິ່ງ perlvar ສໍາລັບລາຍລະອຽດ).

· ໄຊກວິນ

ການປັບປຸງຈໍານວນຫລາຍ; ໃນປັດຈຸບັນ synchronized ກັບ Cygwin 1.3.10.

· ກ່ອນຫນ້ານີ້ DYNIX/ptx ມີບັນຫາຢູ່ໃນ Configure probe ສໍາລັບການບໍ່ສະກັດ I/O.

· EPOC

EPOC ໃນປັດຈຸບັນໄດ້ຮັບການສະຫນັບສະຫນູນທີ່ດີກວ່າ. ເບິ່ງ README.epoc. [561]

· FreeBSD 3.*

ໃນປັດຈຸບັນ Perl ເຮັດວຽກຢູ່ໃນ post-3.0 FreeBSDs.

· HP-UX

README.hpux ອັບເດດ; "Configure -Duse64bitall" ໃນປັດຈຸບັນເຮັດວຽກ; ຕອນນີ້ໃຊ້ HP-UX malloc
ແທນ Perl malloc.

· IRIX

ທຸງການລວບລວມຈໍານວນຫລາຍແລະການປັບປຸງຄໍາແນະນໍາ; ການປະສົມໂດຍບັງເອີນຂອງ 32-bit ແລະ
ຫໍສະໝຸດ 64-ບິດ (ຄວາມພະຍາຍາມຢ່າງສິ້ນເຊີງ) ໄດ້ຍາກຂຶ້ນຫຼາຍ.

· Linux

· ຄູ່ຍາວຄວນເຮັດວຽກ (ເບິ່ງການຕິດຕັ້ງ). [561]

· Linux ກ່ອນຫນ້ານີ້ມີບັນຫາກ່ຽວກັບ sockaddrlen ເມື່ອໃຊ້ ຍອມ​ຮັບ(),
recvfrom() (ໃນ Perl: recv ()), getpeername(), ແລະ getsockname().

· Mac OS Classic

ການລວບລວມການແຈກຢາຍ Perl ມາດຕະຖານໃນ Mac OS Classic ດຽວນີ້ຄວນເຮັດວຽກຖ້າທ່ານ
ມີສະພາບແວດລ້ອມການພັດທະນາ Metrowerks ແລະຊຸດເຄື່ອງມືສະເພາະຂອງ Mac ທີ່ຂາດຫາຍໄປ.
ຕິດຕໍ່ລາຍຊື່ທາງໄປສະນີ macperl ສໍາລັບລາຍລະອຽດ.

· MPE/iX

ອັບເດດ MPE/iX ຫຼັງຈາກ Perl 5.6.0. ເບິ່ງ README.mpeix. [561]

· NetBSD/ກະທູ້: ພະຍາຍາມຕິດຕັ້ງ GNU pth (ຄວນຈະຢູ່ໃນຊຸດລວບລວມຂໍ້ມູນ, ຫຼື
http://www.gnu.org/software/pth/), ແລະ configure ກັບ -Duseithreads.

· NetBSD/sparc

Perl ໃນປັດຈຸບັນເຮັດວຽກຢູ່ໃນ NetBSD/sparc.

· OS/2

ໃນປັດຈຸບັນເຮັດວຽກກັບ usethreads (ເບິ່ງ INSTALL). [561]

· Solaris

64-bitness ໂດຍໃຊ້ Sun Workshop compiler ດຽວນີ້ເຮັດວຽກໄດ້.

· Stratus VOS

ວິທີການສ້າງພື້ນເມືອງຕ້ອງການຢ່າງຫນ້ອຍ VOS Release 14.5.0 ແລະ GNU C++/GNU Tools
2.0.1 ຫຼືຫຼັງຈາກນັ້ນ. ຟັງຊັນ Perl pack ໃນປັດຈຸບັນແຜນທີ່ overflowed ຄ່າໄປຫາ +infinity ແລະ
ຄ່າ underflowed ກັບ -infinity.

· Tru64 (aka Digital UNIX, aka DEC OSF/1)

ຈົດໝາຍສະບັບຂອງລະບົບປະຕິບັດການຕອນນີ້ບັນທຶກໄວ້ໃນ $Config{osvers}. ອະນຸຍາດໃຫ້ລວບລວມ
ກັບ gcc (ຖືກຫ້າມຢ່າງຈະແຈ້ງກ່ອນຫນ້ານີ້). ການລວບລວມກັບ gcc ຍັງບໍ່ແນະນໍາ
ເນື່ອງຈາກວ່າຜົນໄດ້ຮັບລະຫັດ buggy, ເຖິງແມ່ນວ່າມີ gcc 2.95.2.

· Unicos

ແກ້ໄຂບັນຫາການຈັດຕໍາແຫນ່ງຕ່າງໆທີ່ນໍາໄປສູ່ການຖິ້ມຂີ້ເຫຍື້ອຂອງຫຼັກບໍ່ວ່າຈະໃນລະຫວ່າງການກໍ່ສ້າງຫຼື
ຕໍ່ມາ; ບໍ່ຕາຍໃນຄວາມຜິດພາດທາງຄະນິດສາດຢູ່ runtime; ຕອນນີ້ໃຊ້ຈຳນວນເຕັມ quad (64
bits), ກ່ອນຫນ້ານີ້ແມ່ນໃຊ້ພຽງແຕ່ 46 bit integers ສໍາລັບຄວາມໄວ.

· VMS

ເບິ່ງ "Socket Extension Dynamic ໃນ VMS" ແລະ "IEEE-format Floating Point Default on
OpenVMS Alpha" ສໍາລັບການປ່ຽນແປງທີ່ສໍາຄັນທີ່ບໍ່ໄດ້ລະບຸໄວ້ເປັນຢ່າງອື່ນຢູ່ທີ່ນີ້.

chdir() ໃນປັດຈຸບັນເຮັດວຽກໄດ້ດີກວ່າເຖິງວ່າຈະມີຂໍ້ບົກພ່ອງ CRT; ໃນປັດຈຸບັນເຮັດວຽກກັບ MULTIPLICITY (ເບິ່ງ INSTALL);
ໃນປັດຈຸບັນເຮັດວຽກກັບ malloc ຂອງ Perl.

ການ tainting ຂອງ %ENV ອົງປະກອບຜ່ານ "ກະແຈ" ຫຼື "ຄ່າ" ກ່ອນຫນ້ານີ້ແມ່ນບໍ່ໄດ້ປະຕິບັດ. ມັນ
ໃນປັດຈຸບັນເຮັດວຽກເປັນເອກະສານ.

emulation "waitpid" ໄດ້ຖືກປັບປຸງ. ແມງໄມ້ທີ່ຮ້າຍແຮງທີ່ສຸດ (ຕອນນີ້ຖືກແກ້ໄຂແລ້ວ) ແມ່ນວ່າ pid
ຂອງ -1 ຈະເຮັດໃຫ້ເກີດການຄົ້ນຫາ wildcard ຂອງຂະບວນການທັງຫມົດໃນລະບົບ.

ສັນຍານແບບ POSIX ດຽວນີ້ຖືກຈຳລອງໄດ້ດີກວ່າໃນລຸ້ນ VMS ກ່ອນ 7.0.

ຫນ້າທີ່ "ລະບົບ" ແລະຕົວປະຕິບັດການ backticks ໄດ້ປັບປຸງການເຮັດວຽກແລະດີກວ່າ
ການ​ຈັດ​ການ​ຄວາມ​ຜິດ​ພາດ​. [561]

ການທົດສອບການເຂົ້າເຖິງໄຟລ໌ໃນປັດຈຸບັນໃຊ້ສິດທິໃນຂະບວນການປະຈຸບັນແທນທີ່ຈະເປັນຄ່າເລີ່ມຕົ້ນຂອງຜູ້ໃຊ້
ສິດທິພິເສດ, ເຊິ່ງບາງຄັ້ງອາດຈະເຮັດໃຫ້ເກີດຄວາມບໍ່ກົງກັນລະຫວ່າງການເຂົ້າເຖິງທີ່ລາຍງານແລະ
ການ​ເຂົ້າ​ເຖິງ​ຕົວ​ຈິງ​. ການປັບປຸງນີ້ແມ່ນມີພຽງແຕ່ຢູ່ໃນ VMS v6.0 ແລະຕໍ່ມາ.

ມີການປະຕິບັດ "ຂ້າ" ໃຫມ່ໂດຍອີງໃສ່ "sys$sigprc" ທີ່ອະນຸຍາດໃຫ້ VMS ເກົ່າ
ລະບົບ (pre-7.0) ໃຊ້ "ຂ້າ" ເພື່ອສົ່ງສັນຍານແທນທີ່ຈະພຽງແຕ່ບັງຄັບໃຫ້ອອກ. ນີ້
ການປະຕິບັດຍັງອະນຸຍາດໃຫ້ລະບົບຕໍ່ມາໂທຫາ "ຂ້າ" ຈາກພາຍໃນຕົວຈັດການສັນຍານ.

ການແປຊື່ຊໍ້າກັນຢ່າງມີເຫດຜົນໃນປັດຈຸບັນຖືກຈຳກັດໄວ້ທີ່ 10 ຊໍ້າຄືນໃນການເຮັດຕາມ
ສະແດງ LOGICAL ແລະສິ່ງອໍານວຍຄວາມສະດວກ OpenVMS ອື່ນໆ.

· Windows

· ການ​ຈັດ​ສັນ​ຍານ​ໃນ​ປັດ​ຈຸ​ບັນ​ເຮັດ​ວຽກ​ໄດ້​ດີກ​ວ່າ​ທີ່​ມັນ​ເຄີຍ​. ມັນໄດ້ຖືກປະຕິບັດໃນປັດຈຸບັນໂດຍໃຊ້
loop ຂໍ້ຄວາມ Windows, ແລະດັ່ງນັ້ນຈຶ່ງມີຄວາມສ່ຽງຫນ້ອຍທີ່ຈະເກີດອຸປະຕິເຫດແບບສຸ່ມ.

· ສ້ອມ () ໃນປັດຈຸບັນ emulation ແມ່ນເຂັ້ມແຂງຂຶ້ນ, ແຕ່ຍັງຄົງມີຈໍານວນຫນ້ອຍ
ແມງໄມ້ esoteric ແລະ caveats. ເບິ່ງ perlfork ສໍາລັບລາຍລະອຽດ. [561+]

· A ລົ້ມເຫລວ (pseudo)fork ໃນປັດຈຸບັນກັບຄືນ undef ແລະກໍານົດ errno ເປັນ EAGAIN. [561]

· ໂມດູນຕໍ່ໄປນີ້ຕອນນີ້ເຮັດວຽກຢູ່ໃນ Windows:

ExtUtils::ຝັງ [561]
IO::ທໍ່
IO::ແບບສຳຫຼວດ
ສຸດທິ::Ping

· IO::File::new_tmpfile() ແມ່ນບໍ່ຈໍາກັດພຽງແຕ່ 32767 ຄໍາຮ້ອງຂໍຕໍ່ຂະບວນການ.

· ດີກວ່າ chdir() ກັບຄືນມູນຄ່າສໍາລັບໄດເລກະທໍລີທີ່ບໍ່ມີຢູ່.

· ການລວບລວມ perl ໂດຍໃຊ້ 64-bit Platform SDK tools ໄດ້ຖືກຮອງຮັບແລ້ວ.

·ທ Win32::SetChildShowWindow() buildin ສາມາດຖືກນໍາໃຊ້ເພື່ອຄວບຄຸມການເບິ່ງເຫັນ
ຂອງປ່ອງຢ້ຽມທີ່ສ້າງຂຶ້ນໂດຍຂະບວນການເດັກນ້ອຍ. ເບິ່ງ Win32 ສໍາລັບລາຍລະອຽດ.

· ການລໍຖ້າທີ່ບໍ່ຂັດຂວາງຂະບວນການຂອງເດັກ (ຫຼືຂະບວນການ pseudo) ໄດ້ຮັບການສະຫນັບສະຫນູນຜ່ານ
"waitpid($pid, &POSIX::WNOHANG)".

· ພຶດ​ຕິ​ກໍາ​ຂອງ​ ລະບົບ() ດ້ວຍ​ການ​ໂຕ້​ຖຽງ​ຫຼາຍ​ຢ່າງ​ໄດ້​ຮັບ​ການ​ສົມ​ເຫດ​ສົມ​ຜົນ​. ແຕ່ລະ
unquoted argument ຈະຖືກອ້າງອີງອັດຕະໂນມັດເພື່ອປົກປ້ອງ whitespace, ແລະໃດໆ
ຊ່ອງຫວ່າງທີ່ມີຢູ່ແລ້ວໃນອາກິວເມັນຈະຖືກຮັກສາໄວ້. ນີ້ປັບປຸງ
ການເຄື່ອນທີ່ຂອງລະບົບ (@args) ໂດຍການຫລີກລ້ຽງຄວາມຕ້ອງການຂອງ Windows "cmd" shell
ວົງຢືມສະເພາະໃນໂຄງການ perl.

ໃຫ້ສັງເກດວ່ານີ້ຫມາຍຄວາມວ່າບາງສະຄິບທີ່ອາດຈະອີງໃສ່ buggy ກ່ອນຫນ້ານີ້
ພຶດຕິກໍາອາດຈະບໍ່ເຮັດວຽກຢ່າງຖືກຕ້ອງ. ຕົວຢ່າງ, "system("nmake /nologo",
@args)" ຕອນນີ້ຈະພະຍາຍາມແລ່ນໄຟລ໌ "nmake /nologo" ແລະຈະລົ້ມເຫລວເມື່ອໃດ
ບໍ່ພົບໄຟລ໌ດັ່ງກ່າວ. ໃນທາງກົງກັນຂ້າມ, ດຽວນີ້ perl ຈະປະຕິບັດລະຫັດດັ່ງກ່າວ
ເປັນ "system("c:/Program Files/MyApp/foo.exe", @args)" ຢ່າງຖືກຕ້ອງ.

· ໄຟລ໌ສ່ວນຫົວ perl ຈະບໍ່ສະກັດກັ້ນການເຕືອນທົ່ວໄປຈາກ Microsoft ອີກຕໍ່ໄປ
Visual C++ compiler. ນີ້ຫມາຍຄວາມວ່າການເຕືອນໄພເພີ່ມເຕີມອາດຈະສະແດງໃຫ້ເຫັນເຖິງເວລາທີ່
ລວບລວມລະຫັດ XS.

· Borland C++ v5.5 ໃນປັດຈຸບັນເປັນ compiler ສະຫນັບສະຫນູນທີ່ສາມາດສ້າງ Perl. ແນວໃດກໍ່ຕາມ,
ໄບນາຣີທີ່ສ້າງຂຶ້ນຍັງສືບຕໍ່ບໍ່ເຂົ້າກັນກັບສິ່ງທີ່ສ້າງຂຶ້ນໂດຍ
ຄອມພີວເຕີທີ່ຮອງຮັບອື່ນໆ (GCC ແລະ Visual C++). [561]

· Duping socket handles with open(F, ">&MYSOCK") ໃນປັດຈຸບັນເຮັດວຽກພາຍໃຕ້ Windows 9x.
[561]

· ລາຍການໄດເລກະທໍລີປະຈຸບັນໃນ %ENV ໄດ້ຖືກເຜີຍແຜ່ໃຫ້ເດັກນ້ອຍຢ່າງຖືກຕ້ອງແລ້ວ
ຂະບວນການ. [561]

· %ENV ໃໝ່ ດຽວນີ້ແຜ່ຂະຫຍາຍໄປສູ່ຂະບວນການຍ່ອຍ. [561]

· Win32::GetCwd() ຕອບຢ່າງຖືກຕ້ອງ C:\ ແທນ C: ເມື່ອຢູ່ທີ່ຮາກຂອງໄດ.
ແມງໄມ້ອື່ນໆໃນ chdir() ແລະ Cwd::cwd() ຍັງໄດ້ຮັບການແກ້ໄຂ. [561]

· makefiles ໃນ​ປັດ​ຈຸ​ບັນ​ເລີ່ມ​ຕົ້ນ​ກັບ​ຄຸນ​ສົມ​ບັດ​ທີ່​ເປີດ​ໃຫ້​ໃຊ້​ງານ​ໃນ ActiveState ActivePerl (a
Win32 ທີ່ນິຍົມການແຈກຢາຍ binary). [561]

· ຕອນນີ້ໄຟລ໌ HTML ຈະຖືກຕິດຕັ້ງຢູ່ໃນ c:\perl\html ແທນ
c:\perl\lib\pod\html

· ກະແຈ REG_EXPAND_SZ ດຽວນີ້ໄດ້ຮັບອະນຸຍາດໃນການຕັ້ງຄ່າການລົງທະບຽນທີ່ໃຊ້ໂດຍ perl. [561]

· ດຽວນີ້ ສົ່ງ () ຈາກຫົວຂໍ້ທັງຫມົດ, ບໍ່ພຽງແຕ່ເປັນອັນທໍາອິດ. [561]

· ExtUtils::MakeMaker ດຽວນີ້ໃຊ້ $ENV{LIB} ເພື່ອຊອກຫາຫ້ອງສະໝຸດ. [561]

· ສະຫງວນ stack ໜ້ອຍລົງຕໍ່ກະທູ້ເພື່ອໃຫ້ກະທູ້ຫຼາຍສາມາດແລ່ນພ້ອມກັນໄດ້.
(ຍັງ 16M ຕໍ່ກະທູ້.) [561]

· "File::Spec->tmpdir()" ຕອນນີ້ມັກ C:/temp over / tmp (ເຮັດວຽກໄດ້ດີກວ່າເມື່ອ perl
ແມ່ນແລ່ນເປັນການບໍລິການ).

·ການຈັດການເສັ້ນທາງ UNC ທີ່ດີກວ່າພາຍໃຕ້ ithreads. [561]

· ລໍຖ້າ(), waitpid(), ແລະ backticks ໃນປັດຈຸບັນກັບຄືນສະຖານະພາບທາງອອກທີ່ຖືກຕ້ອງພາຍໃຕ້
Windows 9x. [561]

· ມີດ້າມຈັບເຕົ້າສຽບຮົ່ວເຂົ້າ ຍອມ​ຮັບ() ໄດ້ຮັບການແກ້ໄຂ. [561]

ໃຫມ່ or ມີການປ່ຽນແປງ ການວິນິດໄສ


ກະລຸນາເບິ່ງ perldiag ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ.

· ໄລຍະທີ່ບໍ່ຊັດເຈນຢູ່ໃນຕົວປະຕິບັດການແປ (ຄື az-9) ຕອນນີ້ໃຫ້ຄຳເຕືອນ.

· chdir("") ແລະ chdir(undef) ໃນປັດຈຸບັນໃຫ້ຄໍາເຕືອນ deprecation ເພາະວ່າພວກເຂົາເຮັດໃຫ້ເກີດ a
chdir ໂດຍບໍ່ໄດ້ຕັ້ງໃຈທີ່ເປັນໄປໄດ້ໄປຫາໄດເລກະທໍລີເຮືອນ. ເວົ້າ chdir() ຖ້າເຈົ້າໝາຍເຖິງແທ້ໆ
that

·ສອງທາງເລືອກໃນການດີບັກໃຫມ່ໄດ້ຖືກເພີ່ມ: ຖ້າທ່ານໄດ້ລວບລວມ Perl ຂອງທ່ານກັບ
debugging, ທ່ານສາມາດນໍາໃຊ້ທາງເລືອກ -DT [561] ແລະ -DR ເພື່ອຕິດຕາມ tokenising ແລະເພື່ອເພີ່ມ.
ການອ້າງອິງນັບກັບການສະແດງຕົວແປ, ຕາມລໍາດັບ.

·ປະເພດຄໍາເຕືອນ lexical "ປະຕິເສດ" ບໍ່ແມ່ນປະເພດຍ່ອຍຂອງ "syntax" ອີກຕໍ່ໄປ
ປະເພດ. ໃນປັດຈຸບັນມັນເປັນປະເພດລະດັບສູງສຸດໃນສິດທິຂອງຕົນເອງ.

· Unadorned dump() ດຽວນີ້ຈະໃຫ້ ຄຳ ເຕືອນແນະ ນຳ ໃຫ້ໃຊ້ຢ່າງຈະແຈ້ງ ຫຼັກ :: dump() if
ນັ້ນແມ່ນສິ່ງທີ່ຫມາຍຄວາມວ່າແທ້ໆ.

· ການເຕືອນໄພ "ການຫລົບໜີທີ່ບໍ່ຮັບຮູ້" ໄດ້ຖືກຂະຫຍາຍໄປຮວມເຖິງ "\8", "\9", ແລະ "\_".
ບໍ່ຈໍາເປັນຕ້ອງຫນີຈາກຕົວອັກສອນ "\w" ໃດໆ.

· ຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດການລວບລວມຂໍ້ມູນປົກກະຕິທັງໝົດແມ່ນຕອນນີ້ຫວັງວ່າຈະງ່າຍຂຶ້ນ
ເຂົ້າໃຈທັງສອງເນື່ອງຈາກວ່າຂໍ້ຄວາມຄວາມຜິດພາດໃນປັດຈຸບັນມາກ່ອນທີ່ຈະ regex ລົ້ມເຫລວແລະ
ເນື່ອງຈາກວ່າຈຸດຂອງຄວາມລົ້ມເຫລວໃນປັດຈຸບັນໄດ້ຖືກຫມາຍຢ່າງຊັດເຈນໂດຍເຄື່ອງຫມາຍ "<-- ທີ່ນີ້".

· ຟັງຊັນ I/O (ແລະ socket) ຕ່າງໆເຊັ່ນ binmode(), ປິດ (), ແລະອື່ນໆໃນປັດຈຸບັນຫຼາຍ
ເຕືອນຢ່າງສະໝໍ່າສະເໝີ ຖ້າພວກມັນຖືກໃຊ້ຢ່າງບໍ່ມີເຫດຜົນ ບໍ່ວ່າຈະຢູ່ໃນອັນທີ່ຍັງບໍ່ໄດ້ເປີດ ຫຼືຢູ່ໃນອັນໃດນຶ່ງ
filehandle ປິດແລ້ວ (ຫຼື socket).

·ການ ນຳ ໃຊ້ lstat () ໃນ filehandle ໃນປັດຈຸບັນໃຫ້ຄໍາເຕືອນ. (ມັນ​ເປັນ​ສິ່ງ​ທີ່​ບໍ່​ມີ​ເຫດ​ຜົນ​ທີ່​ຈະ​ເຮັດ.)

· ຕອນນີ້ຕົວເລືອກ "-M" ແລະ "-m" ເຕືອນຖ້າທ່ານບໍ່ໄດ້ສະຫນອງຊື່ໂມດູນ.

· ຖ້າ​ຫາກ​ວ່າ​ທ່ານ​ໃນ "ການ​ນໍາ​ໃຊ້​" ກໍາ​ນົດ​ສະ​ບັບ​ຕໍາ​່​ສຸດ​ທີ່​ຕ້ອງ​ການ​, ໂມ​ດູນ​ທີ່​ກົງ​ກັບ​ຊື່​ແລະ​ແຕ່​
ການບໍ່ກຳນົດ $VERSION ຈະເຮັດໃຫ້ຄວາມລົ້ມເຫລວຮ້າຍແຮງ.

· ການ​ນໍາ​ໃຊ້​ການ​ຊົດ​ເຊີຍ​ທາງ​ລົບ​ສໍາ​ລັບ​ການ​ vec() ໃນບໍລິບົດ lvalue ໃນປັດຈຸບັນເປັນການກະທໍາຜິດທີ່ສາມາດເຕືອນໄດ້.

· ຕົວເລກຄີກຂອງການໂຕ້ຖຽງທີ່ຈະ overload::ຄົງທີ່ໃນປັດຈຸບັນ elicits ຄໍາເຕືອນ.

· ຈໍານວນຄີກຂອງອົງປະກອບໃນ hash ທີ່ບໍ່ເປີດເຜີຍຊື່ໃນປັດຈຸບັນ elicits ຄໍາເຕືອນ.

·ການເຕືອນໄພ "ເປີດພຽງແຕ່ສໍາລັບ", "ປິດ", "ບໍ່ເຄີຍເປີດ" ຫຼຸດລົງ "ຕົ້ນຕໍ::"
ຄໍານໍາຫນ້າສໍາລັບ filehandles ໃນຊຸດ "ຕົ້ນຕໍ", ຕົວຢ່າງ "STDIN" ແທນທີ່ຈະເປັນ
"ຕົ້ນຕໍ::STDIN".

· ດຽວນີ້ຕົວແບບຍ່ອຍຖືກກວດກາຢ່າງລະມັດລະວັງ, ທ່ານອາດຈະໄດ້ຮັບການເຕືອນເປັນຕົວຢ່າງ
ຖ້າທ່ານໄດ້ໃຊ້ຕົວອັກສອນທີ່ບໍ່ແມ່ນຕົວແບບ.

· ຖ້າ​ຫາກ​ວ່າ​ຄວາມ​ພະ​ຍາ​ຍາມ​ທີ່​ຈະ​ນໍາ​ໃຊ້​ກະ​ສານ​ອ້າງ​ອີງ (ບໍ່​ໄດ້​ຮັບ​ພອນ​) ເປັນ​ດັດ​ຊະ​ນີ​ອາ​ເຣ​ແມ່ນ​ເຮັດ​ໄດ້​, ຄໍາ​ເຕືອນ​ແມ່ນ
ໃຫ້.

· "ຍູ້ @a;" ແລະ "unshift @a;" (ບໍ່​ມີ​ຄ່າ​ທີ່​ຈະ​ຍູ້​ຫຼື unshift​) ໃນ​ປັດ​ຈຸ​ບັນ​ໃຫ້​ຄໍາ​ເຕືອນ​.
ນີ້ອາດຈະເປັນບັນຫາສໍາລັບລະຫັດທີ່ຜະລິດແລະປະເມີນ.

· ຖ້າ​ຫາກ​ວ່າ​ທ່ານ​ພະ​ຍາ​ຍາມ "ຊອງ​" ໃນ perlfunc ຈໍາ​ນວນ​ຫນ້ອຍ​ກ​່​ວາ 0 ຫຼື​ໃຫຍ່​ກ​່​ວາ 255 ການ​ນໍາ​ໃຊ້ "C​"
ຮູບແບບທີ່ທ່ານຈະໄດ້ຮັບຄໍາເຕືອນທາງເລືອກ. ເຊັ່ນດຽວກັນສໍາລັບຮູບແບບ "c" ແລະຕົວເລກ
ໜ້ອຍກວ່າ -128 ຫຼືຫຼາຍກວ່າ 127.

· pack "P" ຮູບແບບໃນປັດຈຸບັນຮຽກຮ້ອງໃຫ້ມີຂະຫນາດທີ່ຈະແຈ້ງ.

· unpack "w" ໃນ​ປັດ​ຈຸ​ບັນ​ເຕືອນ​ຂອງ​ຈໍາ​ນວນ​ທີ່​ບີບ​ອັດ​ບໍ່​ໄດ້​ຢຸດ​ເຊົາ​.

· ຄໍາເຕືອນກ່ຽວກັບການນໍາໃຊ້ PerlIO ໄດ້ຖືກເພີ່ມ.

· ບາງຕົວແກ້ໄຂ regex ເຊັ່ນ "(?o)" ມີຄວາມໝາຍພຽງແຕ່ຖ້ານຳໃຊ້ກັບ regex ທັງໝົດ.
ທ່ານຈະໄດ້ຮັບຄໍາເຕືອນທາງເລືອກຖ້າທ່ານພະຍາຍາມເຮັດຖ້າບໍ່ດັ່ງນັ້ນ.

· ຄວາມ​ຍາວ​ຕົວ​ປ່ຽນ​ແປງ lookbehind ຍັງ​ບໍ່​ທັນ​ໄດ້​ຮັບ​ການ​ປະ​ຕິ​ບັດ, ພະ​ຍາ​ຍາມ​ທີ່​ຈະ​ນໍາ​ໃຊ້​ມັນ​ຈະ​ບອກ
that

· ການໃຊ້ arrays ຫຼື hashes ເປັນການອ້າງອີງ (ເຊັ່ນ: "%foo->{bar}" ໄດ້ຖືກຍົກເລີກການສະໜັບສະໜູນ
ໃນຂະນະທີ່. ໃນປັດຈຸບັນທ່ານຈະໄດ້ຮັບຄໍາເຕືອນທາງເລືອກ.

· ຄໍາເຕືອນກ່ຽວກັບການນໍາໃຊ້ຄຸນສົມບັດ hashes ຈໍາກັດໃຫມ່ໄດ້ຖືກເພີ່ມ.

· ການເຊື່ອມໂຍງຕົນເອງຂອງ arrays ແລະ hashes ບໍ່ໄດ້ຮັບການສະຫນັບສະຫນູນແລະຄວາມຜິດພາດທີ່ຮ້າຍແຮງຈະເກີດຂຶ້ນເຖິງແມ່ນວ່າຢູ່ໃນ
ຄວາມພະຍາຍາມທີ່ຈະເຮັດແນວນັ້ນ.

· ການ​ນໍາ​ໃຊ້ "ຈັດ​ລຽງ​" ໃນ​ສະ​ພາບ​ສະ​ເກັດ​ໃນ​ປັດ​ຈຸ​ບັນ​ອອກ​ຄໍາ​ເຕືອນ​ທາງ​ເລືອກ​. ອັນນີ້ບໍ່ໄດ້ເຮັດ
ສິ່ງທີ່ເປັນປະໂຫຍດ, ຍ້ອນວ່າການຈັດລຽງບໍ່ໄດ້ປະຕິບັດ.

· ການ​ນໍາ​ໃຊ້ /g modifier in ແບ່ງປັນ () ແມ່ນບໍ່ມີຄວາມຫມາຍແລະຈະເຮັດໃຫ້ເກີດການເຕືອນໄພ.

·ການ ນຳ ໃຊ້ splic() ຜ່ານໄປໃນຕອນທ້າຍຂອງ array ດຽວນີ້ເຮັດໃຫ້ເກີດການເຕືອນ.

· ການເຂົ້າລະຫັດ Unicode ທີ່ບໍ່ຖືກຕ້ອງ (UTF-8 ແລະ UTF-16) ເຮັດໃຫ້ເກີດການເຕືອນໄພຫຼາຍຢ່າງ, ເຊັ່ນດຽວກັນກັບຄວາມພະຍາຍາມ
ໃຊ້ UTF-16 ຕົວແທນຕົວແທນ (ທີ່ບໍ່ໄດ້ປະຕິບັດ).

· ພະຍາຍາມໃຊ້ຕົວອັກສອນ Unicode ຢູ່ໃນສະຕຣີມ I/O ໂດຍບໍ່ມີການໝາຍເຖິງການຖ່າຍທອດ
ການ​ເຂົ້າ​ລະ​ຫັດ (ການ​ນໍາ​ໃຊ້ ເປີດ() or binmode()) ຈະເຮັດໃຫ້ເກີດການເຕືອນ "ລັກສະນະກວ້າງ".

· ການ​ນໍາ​ໃຊ້​ຂອງ v-strings ໃນ​ການ​ນໍາ​ໃຊ້ / ຕ້ອງ​ການ​ເຮັດ​ໃຫ້​ເກີດ​ການ​ເຕືອນ​ໄພ​ການ​ເຄື່ອນ​ໄຫວ (ກັບ​ຄືນ​ໄປ​ບ່ອນ​)​.

· ຄໍາເຕືອນກ່ຽວກັບກະທູ້ນາຍພາສາ ແລະ ຂໍ້ມູນທີ່ໃຊ້ຮ່ວມກັນຂອງເຂົາເຈົ້າ
ເພີ່ມ

ມີການປ່ຽນແປງ Internals


· PerlIO ໃນປັດຈຸບັນເປັນຄ່າເລີ່ມຕົ້ນ.

· perlapi.pod (ຄູ່ກັບ perlguts) ຕອນນີ້ພະຍາຍາມບັນທຶກ API ພາຍໃນ.

·ຕອນນີ້ທ່ານສາມາດສ້າງ perl ຫນ້ອຍທີ່ສຸດທີ່ເອີ້ນວ່າ microperl. ການກໍ່ສ້າງ microperl ບໍ່ໄດ້
ຮຽກ ຮ້ອງ ໃຫ້ ເຖິງ ແມ່ນ ວ່າ ການ ແລ່ນ Configure; "make -f Makefile.micro" ຄວນຈະພຽງພໍ. ລະວັງ:
microperl ເຮັດໃຫ້ສົມມຸດຕິຖານຫຼາຍ, ບາງອັນອາດຈະກ້າຫານເກີນໄປ; ຜົນໄດ້ຮັບ
ການ​ປະ​ຕິ​ບັດ​ອາດ​ຈະ​ຂັດ​ຫຼື​ບໍ່​ດັ່ງ​ນັ້ນ​ເຮັດ​ຜິດ​ພາດ​ໃນ​ວິ​ທີ​ທີ່​ຫນ້າ​ອັດ​ສະ​ຈັນ​. ສໍາລັບແຮກເກີລະມັດລະວັງ
ເທົ່ານັ້ນ.

· ເພີ່ມ ສັນຍານ(), ຊິກ(), do_join(), op_clear, op_null, ptr_table_clear(),
ptr_table_free(), sv_setref_uv(), ແລະຫຼາຍສ່ວນຕິດຕໍ່ UTF-8 ກັບ API ສາທາລະນະ.
ສໍາລັບບັນຊີລາຍຊື່ເຕັມຂອງ APIs ທີ່ມີຢູ່ເບິ່ງ perlapi.

· ເຮັດ​ໃຫ້​ເປັນ​ໄປ​ໄດ້​ທີ່​ຈະ​ເຜີຍ​ແຜ່​ຂໍ້​ຍົກ​ເວັ້ນ​ການ​ປັບ​ແຕ່ງ​ໂດຍ​ຜ່ານ​ croak()ing

· ດຽວນີ້ xsubs ສາມາດມີຄຸນລັກສະນະຄືກັນກັບ subs. (ດີ, ຢ່າງຫນ້ອຍການກໍ່ສ້າງໃນ
ຄຸນ​ລັກ​ສະ​ນະ​.)

· dTHR ແລະ djSP ໄດ້ຖືກຍົກເລີກແລ້ວ; ອະດີດເອົາອອກ (ເນື່ອງຈາກວ່າມັນເປັນ no-op) ແລະ
ຕໍ່ມາແທນທີ່ດ້ວຍ dSP.

· PERL_OBJECT ໄດ້ຖືກໂຍກຍ້າຍອອກຢ່າງສົມບູນ.

· ຄ່າຄົງທີ່ຂອງ MAGIC (ເຊັ່ນ 'P') ໄດ້ຖືກຈັດໃຫ້ເປັນ macrofied (ເຊັ່ນ "PERL_MAGIC_TIED") ດີກວ່າ.
ການອ່ານລະຫັດແຫຼ່ງແລະການຮັກສາໄວ້.

· regex compiler ໃນປັດຈຸບັນຮັກສາໂຄງສ້າງທີ່ກໍານົດ nodes ໃນການລວບລວມ
bytecode ກັບລັກສະນະ syntactic ທີ່ສອດຄ້ອງກັນຂອງການສະແດງ regex ຕົ້ນສະບັບ.
ຂໍ້ມູນແມ່ນຕິດກັບສະມາຊິກ "offsets" ໃຫມ່ຂອງ "struct regexp". ເບິ່ງ
perldebguts ສໍາລັບຂໍ້ມູນຄົບຖ້ວນສົມບູນ.

·ລະຫັດ C ໄດ້ຖືກເຮັດໃຫ້ຫຼາຍ "gcc -Wall" ສະອາດ. ບາງຂໍ້ຄວາມເຕືອນ
ຍັງຄົງຢູ່ໃນບາງແພລະຕະຟອມ, ດັ່ງນັ້ນຖ້າທ່ານກໍາລັງລວບລວມກັບ gcc ທ່ານອາດຈະເຫັນຄໍາເຕືອນບາງຢ່າງ
ກ່ຽວກັບການປະຕິບັດທີ່ຫນ້າສົງໄສ. ການ​ເຕືອນ​ໄພ​ແມ່ນ​ໄດ້​ຮັບ​ການ​ເຮັດ​ວຽກ​ກ່ຽວ​ກັບ​ການ​.

· perly.c, sv.c, ແລະ sv.h ປະຈຸບັນໄດ້ຮັບການສະແດງຄວາມຄິດເຫັນຢ່າງກວ້າງຂວາງ.

· ເອກະສານກ່ຽວກັບວິທີການນໍາໃຊ້ບ່ອນເກັບຂໍ້ມູນ Perl ໄດ້ຖືກເພີ່ມໃສ່
Porting/repository.pod.

·ໃນປັດຈຸບັນມີຫຼາຍ profileing ເຮັດໃຫ້ເປົ້າຫມາຍ.

ຄວາມ​ປອດ​ໄພ ຄວາມອ່ອນແອ ປິດ [561]


(ການປ່ຽນແປງນີ້ໄດ້ຖືກເຮັດແລ້ວໃນ 5.7.0 ແຕ່ຫມີສວນ່ກັບຄືນມາຢູ່ທີ່ນີ້.) (5.7.0 ອອກມາກ່ອນ.
5.6.1: ສາຂາພັດທະນາ 5.7 ອອກມາກ່ອນໜ້ານີ້ກວ່າສາຂາບຳລຸງ 5.6)

ຄວາມສ່ຽງດ້ານຄວາມປອດໄພທີ່ອາດມີຢູ່ໃນອົງປະກອບ suidperl ທາງເລືອກຂອງ Perl ແມ່ນ
ກໍານົດໃນເດືອນສິງຫາ 2000. suidperl ບໍ່ໄດ້ຖືກສ້າງຫຼືຕິດຕັ້ງໂດຍຄ່າເລີ່ມຕົ້ນ. ເປັນຂອງ
ເດືອນພະຈິກ 2001 ແພລະຕະຟອມທີ່ມີຄວາມສ່ຽງທີ່ຮູ້ຈັກອັນດຽວແມ່ນ Linux, ສ່ວນຫຼາຍອາດຈະເປັນ Linux ທັງຫມົດ
ການ​ແຜ່​ກະ​ຈາຍ​. CERT ແລະຜູ້ຂາຍແລະຜູ້ຈັດຈໍາຫນ່າຍຕ່າງໆໄດ້ຮັບການເຕືອນກ່ຽວກັບ
ຄວາມອ່ອນແອ. ເບິ່ງ http://www.cpan.org/src/5.0/sperl-2000-08-05/sperl-2000-08-05.txt ສໍາລັບການ
ຂໍ້ມູນເພີ່ມເຕີມ

ບັນຫາແມ່ນເກີດມາຈາກ Perl ພະຍາຍາມລາຍງານຄວາມສົງໃສວ່າຄວາມພະຍາຍາມທີ່ຈະຂຸດຄົ້ນຄວາມປອດໄພໂດຍໃຊ້
ໂຄງການພາຍນອກ, /bin/mail. ໃນເວທີ Linux ໂປຣແກຣມ /bin/mail ມີ
ຄຸນສົມບັດທີ່ບໍ່ມີເອກະສານເຊິ່ງເມື່ອສົມທົບກັບ suidperl ໃຫ້ການເຂົ້າເຖິງແກະຮາກ,
ສົ່ງຜົນໃຫ້ມີການປະນີປະນອມຢ່າງຮ້າຍແຮງແທນທີ່ຈະລາຍງານຄວາມພະຍາຍາມຂຸດຄົ້ນ. ຖ້າເຈົ້າບໍ່
ມີ /bin/mail, ຫຼືຖ້າທ່ານມີ 'safe setuid scripts', ຫຼືຖ້າ suidperl ບໍ່ໄດ້ຖືກຕິດຕັ້ງ, ທ່ານ.
ປອດໄພ.

ຄຸນນະສົມບັດລາຍງານຄວາມພະຍາຍາມຂຸດຄົ້ນໄດ້ຖືກໂຍກຍ້າຍອອກຢ່າງສົມບູນຈາກ Perl 5.8.0 (ແລະ
ການປ່ອຍການບໍາລຸງຮັກສາ 5.6.1, ແລະມັນຖືກໂຍກຍ້າຍອອກຈາກທຸກລຸ້ນ Perl 5.7), ດັ່ງນັ້ນ
ຊ່ອງໂຫວ່ສະເພາະນັ້ນບໍ່ມີອີກແລ້ວ. ຢ່າງໃດກໍຕາມ, ຄວາມປອດໄພຕື່ມອີກ
ຊ່ອງໂຫວ່ແມ່ນ, ແຕ່ຫນ້າເສຍດາຍ, ເປັນໄປໄດ້ສະເຫມີ. ການທໍາງານຂອງ suidperl ແມ່ນຫຼາຍທີ່ສຸດ
ອາດຈະຖືກໂຍກຍ້າຍອອກໃນ Perl 5.10. ໃນກໍລະນີໃດກໍ່ຕາມ, suidperl ຄວນຖືກນໍາໃຊ້ໂດຍ
ຜູ້ຊ່ຽວຊານດ້ານຄວາມປອດໄພຜູ້ທີ່ຮູ້ແທ້ໆວ່າພວກເຂົາກໍາລັງເຮັດຫຍັງແລະເປັນຫຍັງພວກເຂົາຈຶ່ງໃຊ້ suidperl
ແທນທີ່ຈະເປັນການແກ້ໄຂອື່ນໆເຊັ່ນ sudo (ເບິ່ງ http://www.courtesan.com/sudo/ ).

ໃຫມ່ ການທົດສອບ


ການທົດສອບໃຫມ່ຈໍານວນຫນຶ່ງໄດ້ຖືກເພີ່ມ, ໂດຍສະເພາະແມ່ນສໍາລັບ lib ແລະ ext ພາກສ່ວນຍ່ອຍ. ມີ
ໃນປັດຈຸບັນປະມານ 69 000 ການທົດສອບສ່ວນບຸກຄົນ (ແຜ່ຂະຫຍາຍຫຼາຍກວ່າ 700 scripts ການທົດສອບ), ໃນ regression.
ຊຸດ (5.6.1 ມີປະມານ 11 700 ການທົດສອບ, ໃນ 258 scripts ການທົດສອບ) ຕົວເລກທີ່ແນ່ນອນແມ່ນຂຶ້ນກັບ.
ເວທີແລະການຕັ້ງຄ່າ Perl ຖືກນໍາໃຊ້. ການທົດສອບໃຫມ່ຈໍານວນຫຼາຍແມ່ນແນ່ນອນນໍາສະເຫນີໂດຍ
ໂມດູນໃຫມ່, ແຕ່ຍັງໂດຍທົ່ວໄປ Perl ໃນປັດຈຸບັນໄດ້ຖືກທົດສອບຢ່າງລະອຽດກວ່າ.

ເນື່ອງຈາກວ່າຈໍານວນການທົດສອບຈໍານວນຫລາຍ, ການດໍາເນີນງານຊຸດ regression ຈະໃຊ້ເວລາຢ່າງຫຼວງຫຼາຍ
ເວລາດົນກວ່າທີ່ເຄີຍໃຊ້: ຄາດວ່າຊຸດຈະໃຊ້ເວລາດົນກວ່າ 4-5 ເທົ່າທີ່ຈະແລ່ນກວ່າ
ໃນ perl 5.6. ໃນເຄື່ອງທີ່ໄວແທ້ໆທ່ານສາມາດຫວັງວ່າຈະສໍາເລັດຊຸດໃນປະມານ 6-8
ນາທີ (ເວລາໂມງ).

ການທົດສອບໄດ້ຖືກລາຍງານໃນຄໍາສັ່ງທີ່ແຕກຕ່າງກັນກ່ວາໃນ Perls ກ່ອນຫນ້ານີ້. (ອັນນີ້ເກີດຂຶ້ນ
ເນື່ອງຈາກວ່າສະຄຣິບທົດສອບຈາກພາຍໃຕ້ t/lib ໄດ້ຖືກຍ້າຍໄປໃກ້ກັບ
ຫ້ອງສະຫມຸດ / ສ່ວນຂະຫຍາຍທີ່ພວກເຂົາກໍາລັງທົດສອບ.)

ເປັນທີ່ຮູ້ຈັກ ບັນຫາ


ໄດ້ ຜູ້ລວບລວມຂໍ້ມູນ Suite Is ຍັງ ຫຼາຍ ທົດລອງ
ຊຸດ compiler ແມ່ນຄ່ອຍໆດີຂຶ້ນແຕ່ມັນຍັງສືບຕໍ່ມີການທົດລອງສູງ.
ການນໍາໃຊ້ໃນສະພາບແວດລ້ອມການຜະລິດແມ່ນທໍ້ຖອຍໃຈ.

ການທ້ອງຖິ່ນ tied ອາເລ ແລະ hashes Is ເສຍ
local %tied_array;

ບໍ່ເຮັດວຽກຕາມທີ່ຄົນຄາດຫວັງໄວ້: ຄ່າເກົ່າຖືກຟື້ນຟູບໍ່ຖືກຕ້ອງ. ນີ້ຈະເປັນ
ມີການປ່ຽນແປງໃນການປ່ອຍໃນອະນາຄົດ, ແຕ່ພວກເຮົາຍັງບໍ່ຮູ້ວ່າຄວາມຫມາຍໃຫມ່ຈະເປັນແນວໃດ.
ໃນກໍລະນີໃດກໍ່ຕາມ, ການປ່ຽນແປງຈະທໍາລາຍລະຫັດທີ່ມີຢູ່ແລ້ວທີ່ອີງໃສ່ປະຈຸບັນ (ບໍ່ໄດ້ກໍານົດ)
semantics, ສະນັ້ນພຽງແຕ່ຫຼີກເວັ້ນການເຮັດນີ້ໂດຍທົ່ວໄປ.

ການກໍ່ສ້າງ ການ​ຂະ​ຫຍາຍ ສາມາດເຮັດໄດ້ ເຊັ່ນການແລກປ່ຽນ ເນື່ອງຈາກວ່າ Of ໄຟລ໌ໃຫຍ່
ບາງສ່ວນຂະຫຍາຍເຊັ່ນ mod_perl ແມ່ນເປັນທີ່ຮູ້ຈັກວ່າມີບັນຫາກັບ 'largefiles', ການປ່ຽນແປງໄດ້ນໍາເອົາ
ໂດຍ Perl 5.6.0 ທີ່ໄຟລ໌ຈະຊົດເຊີຍຄ່າເລີ່ມຕົ້ນເປັນ 64 ບິດກວ້າງ, ບ່ອນທີ່ສະຫນັບສະຫນູນ. ໂມດູນອາດຈະ
ລົ້ມເຫລວໃນການລວບລວມທັງຫມົດ, ຫຼືພວກເຂົາອາດຈະລວບລວມແລະເຮັດວຽກບໍ່ຖືກຕ້ອງ. ໃນປັດຈຸບັນ, ບໍ່ມີ
ການແກ້ໄຂທີ່ດີສໍາລັບບັນຫາ, ແຕ່ Configure ໃນປັດຈຸບັນສະຫນອງທີ່ເຫມາະສົມທີ່ບໍ່ແມ່ນຂະຫນາດໃຫຍ່
ccflags, ldflags, libswanted, ແລະ libs ໃນ %Config hash (ເຊັ່ນ:
$Config{ccflags_nolargefiles}) ດັ່ງນັ້ນສ່ວນຂະຫຍາຍທີ່ມີບັນຫາສາມາດລອງໄດ້
ການ​ຕັ້ງ​ຄ່າ​ຂອງ​ຕົນ​ເອງ​ໂດຍ​ບໍ່​ມີ​ການ​ຂະ​ຫນາດ​ໃຫຍ່​ໄດ້​. ແນ່ນອນວ່ານີ້ແມ່ນບໍ່ສະອາດ
ການແກ້ໄຂ, ແລະການແກ້ໄຂອາດຈະບໍ່ເຮັດວຽກເລີຍ. ຄວາມລົ້ມເຫຼວທີ່ເປັນໄປໄດ້ຫນຶ່ງແມ່ນບໍ່ວ່າຈະເປັນຫນຶ່ງ
can (ຫຼື, ຖ້າຄົນຫນຶ່ງສາມາດເຮັດໄດ້, ບໍ່ວ່າຈະເປັນຄວາມຄິດທີ່ດີທີ່ຈະ) ເຊື່ອມຕໍ່ກັນຢູ່ໃນທຸກຄູ່ກັບ
ແນວຄວາມຄິດທີ່ແຕກຕ່າງກັນກ່ຽວກັບການຊົດເຊີຍໄຟລ໌; ທັງໝົດນີ້ແມ່ນຂຶ້ນກັບເວທີ.

ການດັດແກ້ $_ ພາຍໃນ ສໍາລັບ (..)
ສໍາລັບ (1..5) { $_++ }

ເຮັດວຽກໂດຍບໍ່ມີການຮ້ອງທຸກ. ມັນບໍ່ຄວນ. (ທ່ານຄວນຈະສາມາດແກ້ໄຂພຽງແຕ່ lvalue
ອົງປະກອບພາຍໃນ loops.) ທ່ານສາມາດເບິ່ງພຶດຕິກໍາທີ່ຖືກຕ້ອງໂດຍການປ່ຽນແທນ 1..5 ກັບ
1, 2, 3, 4, 5

mod_perl 1.26 ບໍ່ ສ້າງ ກັບ ກະທູ້ Perl
ໃຊ້ mod_perl 1.27 ຫຼືສູງກວ່າ.

lib/ftmp-security ການທົດສອບ ເຕືອນ 'ລະບົບ ອາດຈະເປັນ ບໍ່ປອດໄພ'
ຢ່າຕົກໃຈ. ອ່ານພາກສ່ວນ 'ເຮັດການທົດສອບ' ຂອງ INSTALL ແທນ.

libwww-perl (LWP) ຂໍ້ເທັດຈິງ ພື້ນຖານ/ວັນທີ #51
ໃຊ້ libwww-perl 5.65 ຫຼືຫຼັງຈາກນັ້ນ.

PDL ລົ້ມເຫລວ ບາງ ການທົດສອບ
ໃຊ້ PDL 2.3.4 ຫຼືຫຼັງຈາກນັ້ນ.

Perl_get_sv
ທ່ານອາດຈະໄດ້ຮັບຄວາມຜິດພາດເຊັ່ນ 'ສັນຍາລັກທີ່ບໍ່ໄດ້ກໍານົດ "Perl_get_sv" ຫຼື "ບໍ່ສາມາດແກ້ໄຂສັນຍາລັກໄດ້.
'Perl_get_sv'", ຫຼືສັນຍາລັກອາດຈະເປັນ "Perl_sv_2pv". ນີ້ອາດຈະຫມາຍຄວາມວ່າທ່ານ.
ພະຍາຍາມໃຊ້ຫ້ອງສະໝຸດ Perl ທີ່ເກົ່າແກ່ທີ່ໃຊ້ຮ່ວມກັນ (ຫຼືສ່ວນຂະຫຍາຍທີ່ເຊື່ອມໂຍງກັບສິ່ງດັ່ງກ່າວ) ກັບ Perl
5.8.0 ປະຕິບັດໄດ້. Perl ເຄີຍມີຂັ້ນຕອນຍ່ອຍດັ່ງກ່າວ, ແຕ່ນັ້ນບໍ່ແມ່ນກໍລະນີອີກຕໍ່ໄປ.
ກວດເບິ່ງເສັ້ນທາງຫ້ອງສະໝຸດທີ່ແບ່ງປັນຂອງເຈົ້າ, ແລະຫ້ອງສະໝຸດ Perl ທີ່ໃຊ້ຮ່ວມກັນໃນລາຍການເຫຼົ່ານັ້ນ.

ບາງ​ຄັ້ງ​ບັນ​ຫາ​ນີ້​ຍັງ​ອາດ​ຈະ​ຊີ້​ບອກ​ເຖິງ​ບາງ​ສ່ວນ​ການ​ຕິດ​ຕັ້ງ Perl 5.8.0, ເບິ່ງ "Mac OS X
dyld ສັນຍາລັກທີ່ບໍ່ໄດ້ກໍານົດ" ສໍາລັບຕົວຢ່າງແລະວິທີການຈັດການກັບມັນ.

ການຜູກມັດຕົນເອງ ບັນຫາ
ການຜູກມັດຂອງ arrays ແລະ hashes ດ້ວຍຕົນເອງແມ່ນຖືກແຍກໃນທາງທີ່ເລິກເຊິ່ງແລະຍາກທີ່ຈະແກ້ໄຂ. ເປັນ​ການ​ຢຸດ -
ມາດ​ຕະ​ການ​ຊ່ອງ​ຫວ່າງ​ເພື່ອ​ຫຼີກ​ເວັ້ນ​ການ​ປະ​ຊາ​ຊົນ​ຈາກ​ຄວາມ​ອຸກ​ອັ່ງ​ຢູ່​ໃນ​ຜົນ​ໄດ້​ຮັບ​ທີ່​ລຶກ​ລັບ (ການ dumps ຫຼັກ​,
ສ່ວນຫຼາຍມັກ), ມັນຖືກຫ້າມສໍາລັບໃນປັດຈຸບັນ (ທ່ານຈະໄດ້ຮັບຄວາມຜິດພາດທີ່ຮ້າຍແຮງເຖິງແມ່ນວ່າຈາກຄວາມພະຍາຍາມ).

ການ​ປ່ຽນ​ແປງ​ກ່ຽວ​ກັບ​ການ​ຜູກ​ມັດ​ຂອງ​ໜ່ວຍ​ໂລກ​ໄດ້​ເຮັດ​ໃຫ້​ພວກ​ມັນ​ຖືກ​ອ້າງ​ອີງ​ຊ້ຳ​ແລ້ວ​ຊ້ຳ​ອີກ (ເບິ່ງ: "ສອງ-
ການເກັບຂີ້ເຫຍື້ອໄລຍະ" ໃນ perlobj).
ໂລກທີ່ຜູກມັດຕົນເອງ. ພຶດຕິກຳນີ້ອາດຈະຖືກແກ້ໄຂໃນພາຍຫຼັງ.

ການຜູກມັດຕົນເອງຂອງເກັດແລະ IO ສິ່ງເຮັດວຽກ.

ext/threads/t/libc
ຖ້າການທົດສອບນີ້ລົ້ມເຫລວ, ມັນຊີ້ໃຫ້ເຫັນວ່າ libc (C library) ຂອງທ່ານບໍ່ປອດໄພ. ນີ້
ການທົດສອບຄວາມກົດດັນໂດຍສະເພາະການທົດສອບ ເວລາທ້ອງຖິ່ນ() ໂທຫາເພື່ອຊອກຫາບໍ່ວ່າຈະເປັນ threadsafe.
ເບິ່ງ perlthrtut ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ.

ຄວາມລົ້ມເຫຼວຂອງ of ກະທູ້ (5.005 ແບບ) ການທົດສອບ
ຫມາຍ​ເຫດ​ ທີ່ ສະຫນັບສະຫນູນ ສໍາລັບການ ແບບ 5.005 ແບບ ກະທູ້ is ຄັດຄ້ານ, ທົດລອງ ແລະ ໃນ​ທາງ​ປະ​ຕິ​ບັດ
ບໍ່ຮອງຮັບ. In 5.10, it is ຄາດວ່າຈະ to be ລົບອອກ. ທ່ານ ຄວນ ເຄື່ອນຍ້າຍ ຂອງ​ທ່ານ ລະຫັດ to
ຫົວຂໍ້.

ການທົດສອບຕໍ່ໄປນີ້ແມ່ນຮູ້ວ່າລົ້ມເຫລວເນື່ອງຈາກບັນຫາພື້ນຖານໃນ 5.005 threading
ການຈັດຕັ້ງປະຕິບັດ. ເຫຼົ່ານີ້ບໍ່ແມ່ນຄວາມລົ້ມເຫລວໃຫມ່ -- Perl 5.005_0x ມີແມງໄມ້ດຽວກັນ, ແຕ່ບໍ່ໄດ້.
ມີການທົດສອບເຫຼົ່ານີ້.

../ext/B/t/xref.t 255 65280 14 12 85.71% 3-14
../ext/List/Util/t/first.t 255 65280 7 4 57.14% 2 5-7
../lib/English.t 2 512 54 2 3.70% 2-3
../lib/FileCache.t 5 1 20.00% 5
../lib/Filter/Simple/t/data.t 6 3 50.00% 1-3
../lib/Filter/Simple/t/filter_only. 9 3 33.33% 1-2 5
../lib/Math/BigInt/t/bare_mbf.t 1627 4 0.25% 8 11 1626-1627
../lib/Math/BigInt/t/bigfltpm.t 1629 4 0.25% 10 13 1628- .
1629
../lib/Math/BigInt/t/sub_mbf.t 1633 4 0.24% 8 11 1632-1633
../lib/Math/BigInt/t/with_sub.t 1628 4 0.25% 9 12 1627-1628
../lib/Tie/File/t/31_autodefer.t 255 65280 65 32 49.23% 34-65
../lib/autouse.t 10 1 10.00% 4
op/flip.t 15 1 6.67% 15

ຄວາມລົ້ມເຫລວເຫຼົ່ານີ້ຄົງຈະບໍ່ຖືກແກ້ໄຂຍ້ອນວ່າກະທູ້ 5.005 ແບບຖືກພິຈາລະນາ
ແຕກ​ໂດຍ​ພື້ນ​ຖານ​. (ໂດຍພື້ນຖານແລ້ວສິ່ງທີ່ເກີດຂື້ນແມ່ນວ່າກະທູ້ທີ່ແຂ່ງຂັນສາມາດເສຍຫາຍ
ສະຖານະທົ່ວໂລກທີ່ແບ່ງປັນ, ຕົວຢ່າງທີ່ດີອັນໜຶ່ງແມ່ນສະຖານະຂອງເຄື່ອງຈັກສະແດງອອກເປັນປົກກະຕິ.)

Timing ບັນຫາ
ການ​ທົດ​ສອບ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​ອາດ​ຈະ​ລົ້ມ​ເຫຼວ​ເປັນ​ໄລ​ຍະ​ເນື່ອງ​ຈາກ​ບັນ​ຫາ​ກໍາ​ນົດ​ເວ​ລາ​, ສໍາ​ລັບ​ການ​ຍົກ​ຕົວ​ຢ່າງ​ຖ້າ​ຫາກ​ວ່າ​
ລະບົບຖືກໂຫລດຫຼາຍ.

t/op/alarm.t
ext/Time/HiRes/HiRes.t
lib/Benchmark.t
lib/Memoize/t/expmod_t.t
lib/Memoize/t/speed.t

ໃນ​ກໍ​ລະ​ນີ​ຂອງ​ຄວາມ​ລົ້ມ​ເຫຼວ​, ກະ​ລຸ​ນາ​ພະ​ຍາ​ຍາມ​ແລ່ນ​ພວກ​ເຂົາ​ດ້ວຍ​ຕົນ​ເອງ​, ສໍາ​ລັບ​ການ​ຍົກ​ຕົວ​ຢ່າງ​

./perl -Ilib ext/Time/HiRes/HiRes.t

Tied/Magical Array/Hash ອົງປະກອບ Do ບໍ່ Autovivify
ສໍາລັບ arrays ປົກກະຕິ "$foo = \$bar[1]" ຈະມອບຫມາຍ "undef" ໃຫ້ $bar[1] (ສົມມຸດວ່າມັນ.
ບໍ່ມີມາກ່ອນ), ແຕ່ສໍາລັບ tied / magical arrays ແລະ hashes autovivification ດັ່ງກ່າວເຮັດ.
ບໍ່ເກີດຂຶ້ນເພາະວ່າປະຈຸບັນບໍ່ມີວິທີການທີ່ຈະຈັບການສ້າງເອກະສານອ້າງອີງ. ຄື​ກັນ
ບັນຫາມີຜົນຕໍ່ການຕັດຕໍ່ດັດຊະນີທີ່ບໍ່ມີຢູ່ແລ້ວ/ກະແຈຂອງອາເຣ/hash ຜູກມັດ/ວິເສດ.

Unicode in ຊຸດ/ຫ້ອງຮຽນ ແລະ ລະບົບຍ່ອຍ ຊື່ ບໍ່ ບໍ່ ການເຮັດວຽກ
ຫນຶ່ງສາມາດມີ Unicode ໃນຊື່ຕົວລະບຸ, ແຕ່ບໍ່ແມ່ນຢູ່ໃນຊຸດ / ຫ້ອງຮຽນຫຼືຊື່ຍ່ອຍ.
ໃນຂະນະທີ່ບາງຫນ້າທີ່ຈໍາກັດຕໍ່ກັບສິ່ງນີ້ມີຢູ່ໃນ Perl 5.8.0, ນັ້ນແມ່ນຫຼາຍກວ່ານັ້ນ
ອຸບັດເຫດກ່ວາການອອກແບບ; ບໍ່ຮອງຮັບການນຳໃຊ້ Unicode ເພື່ອຈຸດປະສົງດັ່ງກ່າວ.

ເຫດຜົນອັນນຶ່ງຂອງຄວາມບໍ່ສໍາເລັດນີ້ແມ່ນ (ປະຈຸບັນ) ຄວາມບໍ່ສະດວກທີ່ເກີດຈາກມັນ: ນັບຕັ້ງແຕ່ທັງສອງ
ຊື່ແພັກເກັດ ແລະຊື່ປະຈຳການຍ່ອຍອາດຈະຕ້ອງຖືກສ້າງແຜນທີ່ໃສ່ກັບຊື່ໄຟລ໌ ແລະລາຍການ, the
ຄວາມສາມາດຂອງ Unicode ຂອງລະບົບໄຟລ໌ກາຍເປັນສິ່ງສໍາຄັນ - ແລະຫນ້າເສຍດາຍບໍ່ແມ່ນ
ຄໍາຕອບແບບພົກພາ.

ເວທີ Specific ບັນຫາ


Aix
· ຖ້າ​ຫາກ​ວ່າ​ການ​ນໍາ​ໃຊ້​ຄໍາ​ສັ່ງ AIX native make, ແທນ​ທີ່​ຈະ​ເປັນ​ພຽງ​ແຕ່ "ເຮັດ​ໃຫ້​" ບັນ​ຫາ "ເຮັດ​ໃຫ້​ທັງ​ຫມົດ​"​. ໃນ
ການຕິດຕັ້ງບາງອັນທີ່ອະດີດໄດ້ຮູ້ຈັກກັບ spuriously ຍັງພະຍາຍາມດໍາເນີນການ "ເຮັດການຕິດຕັ້ງ".
ອີກທາງເລືອກ, ທ່ານອາດຈະຕ້ອງການໃຊ້ GNU make.

· ໃນ AIX 4.2, ສ່ວນຂະຫຍາຍ Perl ທີ່ໃຊ້ຟັງຊັນ C++ ທີ່ໃຊ້ສະຖິດອາດຈະມີບັນຫາ
ໃນນັ້ນ statics ບໍ່ໄດ້ຮັບການເລີ່ມຕົ້ນ. ໃນລຸ້ນ AIX ໃໝ່ກວ່າ, ນີ້ແມ່ນ
ແກ້ໄຂໂດຍການເຊື່ອມໂຍງ Perl ກັບຫ້ອງສະຫມຸດ libC_r, ແຕ່ຫນ້າເສຍດາຍໃນ AIX 4.2 ໄດ້ເວົ້າວ່າ.
ຫ້ອງສະຫມຸດມີຂໍ້ບົກພ່ອງທີ່ບໍ່ຊັດເຈນທີ່ຫນ້າທີ່ຕ່າງໆທີ່ກ່ຽວຂ້ອງກັບເວລາ (ເຊັ່ນ: ເວລາ()
ແລະ gettimeofday()) ສົ່ງຄືນຄ່າທີ່ແຕກຫັກ, ແລະດັ່ງນັ້ນໃນ AIX 4.2 Perl ບໍ່ໄດ້ຖືກເຊື່ອມຕໍ່
ຕ້ານ libC_r.

· vac 5.0.0.0 ອາດຈະຜະລິດລະຫັດ Buggy ສໍາລັບ Perl

AIX C compiler vac ເວີຊັ່ນ 5.0.0.0 ອາດຈະສ້າງລະຫັດ buggy, ສົ່ງຜົນໃຫ້ມີບາງອັນ.
ການທົດສອບແບບສຸ່ມລົ້ມເຫລວໃນເວລາທີ່ແລ່ນເປັນສ່ວນຫນຶ່ງຂອງ "ເຮັດການທົດສອບ", ແຕ່ເມື່ອການທົດສອບລົ້ມເຫລວ
ແລ່ນດ້ວຍມື, ພວກເຂົາປະສົບຜົນສໍາເລັດ. ພວກເຮົາແນະນຳໃຫ້ອັບເກຣດເປັນຢ່າງໜ້ອຍ vac version 5.0.1.0, ນັ້ນເອງ
ເປັນທີ່ຮູ້ຈັກທີ່ຈະລວບລວມ Perl ຢ່າງຖືກຕ້ອງ. "lslpp -L|grep vac.C" ຈະບອກທ່ານວ່າ vac
ສະບັບ. ເບິ່ງ README.aix.

· ຖ້າການສ້າງກະທູ້ Perl, ທ່ານອາດຈະໄດ້ຮັບການເຕືອນການລວບລວມຂໍ້ມູນຈາກ pp_sys.c:

"pp_sys.c", ເສັ້ນ 4651.39: 1506-280 (W) ການມອບໝາຍອາກິວເມັນຟັງຊັນລະຫວ່າງປະເພດ "unsigned char*" ແລະ "const void*" ແມ່ນບໍ່ໄດ້ຮັບອະນຸຍາດ.

ອັນນີ້ບໍ່ເປັນອັນຕະລາຍ; ມັນເກີດມາຈາກ getnetbaddr() ແລະ getnetbaddr_r() ມີ
ປະເພດທີ່ແຕກຕ່າງກັນເລັກນ້ອຍສໍາລັບການໂຕ້ຖຽງທໍາອິດຂອງພວກເຂົາ.

Alpha ລະບົບ ກັບ ອາຍຸ gccs ບໍ່ ຫຼາຍ ການທົດສອບ
ຖ້າເຈົ້າເຫັນ op/pack, op/pat, op/regexp, ຫຼື ext/Storable tests ລົ້ມເຫລວໃນ Linux/alpha ຫຼື
*BSD/Alpha, ມັນອາດຈະເປັນເວລາທີ່ຈະຍົກລະດັບ gcc ຂອງທ່ານ. gccs ກ່ອນ 2.95.3 ແມ່ນແນ່ນອນ
ບໍ່ດີພໍ, ແລະ gcc 3.1 ອາດຈະດີກວ່າ. (RedHat Linux/alpha ກັບ gcc 3.1
ລາຍງານວ່າບໍ່ມີບັນຫາ, ເຊັ່ນດຽວກັນກັບ Linux 2.4.18 ກັບ gcc 2.95.4.) (ໃນ Tru64, ມັນດີກວ່າ.
ການ​ນໍາ​ໃຊ້ C compiler ມັດ​ໄວ້​.)

AmigaOS
Perl 5.8.0 ບໍ່ໄດ້ສ້າງໃນ AmigaOS. ມັນ broke ໃນບາງຈຸດໃນລະຫວ່າງການ ithreads ເຮັດວຽກແລະ
ພວກເຮົາບໍ່ສາມາດຊອກຫາຜູ້ຊ່ຽວຊານ Amiga ເພື່ອແກ້ໄຂບັນຫາໄດ້. Perl 5.6.1 ຍັງເຮັດວຽກສໍາລັບ
AmigaOS (ເຊັ່ນດຽວກັນກັບການປ່ອຍການພັດທະນາ 5.7.2).

Beos
ການທົດສອບຕໍ່ໄປນີ້ລົ້ມເຫລວໃນ 5.8.0 Perl ໃນ BeOS Personal 5.03:

t/op/lfs............................ລົ້ມເຫລວໃນການທົດສອບ 17
t/op/magic .......................... ລົ້ມເຫລວໃນການທົດສອບ 24
ext/Fcntl/t/syslfs..................ລົ້ມເຫລວໃນການທົດສອບ 17
ext/File/Glob/t/basic ...............ລົ້ມເຫລວໃນການທົດສອບ 3
ext/POSIX/t/sigaction...............FAILED ໃນການທົດສອບ 13
ext/POSIX/t/waitpid.................ລົ້ມເຫລວໃນການທົດສອບ 1

(ຫມາຍ​ເຫດ​: ຂໍ້ມູນເພີ່ມເຕີມແມ່ນມີຢູ່ໃນ README.beos ຈົນກ່ວາການສະຫນັບສະຫນູນສໍາລັບ BeOS ໄດ້ຖືກໂຍກຍ້າຍອອກໃນ
Perl v5.18.0)

Cygwin "ບໍ່ສາມາດ to remap"
ຕົວຢ່າງເມື່ອສ້າງສ່ວນຂະຫຍາຍ Tk ສໍາລັບ Cygwin, ທ່ານອາດຈະໄດ້ຮັບຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດວ່າ
"ບໍ່ສາມາດ remap ໄດ້". ນີ້ແມ່ນບັນຫາທີ່ຮູ້ຈັກກັບ Cygwin, ແລະການແກ້ໄຂບັນຫາແມ່ນລາຍລະອຽດຢູ່ໃນ
ທີ່ນີ້: http://sources.redhat.com/ml/cygwin/2001-12/msg00894.html

Cygwin ndbm ການທົດສອບ ບໍ່ on FAT
ຫນຶ່ງສາມາດສ້າງແຕ່ບໍ່ຕິດຕັ້ງ (ຫຼືທົດສອບການສ້າງ) NDBM_File ໃນລະບົບໄຟລ໌ FAT.
ການຕິດຕັ້ງ (ຫຼືສ້າງ) ໃນ NTFS ເຮັດວຽກໄດ້ດີ. ຖ້າຫນຶ່ງພະຍາຍາມທົດສອບໃນການຕິດຕັ້ງ FAT (ຫຼື
ການກໍ່ສ້າງ) ຄວາມລົ້ມເຫຼວດັ່ງຕໍ່ໄປນີ້ຄາດວ່າຈະ:

../ext/NDBM_File/ndbm.t 13 3328 71 59 83.10% 1-2 4 16-71 .
../ext/ODBM_File/odbm.t 255 65280 ?? ?? % ??
../lib/AnyDBM_File.t 2 512 12 2 16.67% 1 4 .
../lib/Memoize/t/errors.t 0 139 11 5 45.45% 7-11
../lib/Memoize/t/tie_ndbm.t 13 3328 4 4 100.00% 1-4
run/fresh_perl.t 97 1 1.03% 91

NDBM_File ລົ້ມເຫລວ ແລະ ODBM_File ພຽງແຕ່ coredumps.

ຖ້າ​ຫາກ​ວ່າ​ທ່ານ​ຕັ້ງ​ໃຈ​ທີ່​ຈະ​ດໍາ​ເນີນ​ການ​ພຽງ​ແຕ່​ກ່ຽວ​ກັບ FAT (ຫຼື​ຖ້າ​ຫາກ​ວ່າ​ການ​ນໍາ​ໃຊ້ AnyDBM_File ກ່ຽວ​ກັບ FAT​)​, ໃຫ້​ແລ່ນ Configure ກັບ​.
ຕົວເລືອກ -Ui_ndbm ແລະ -Ui_dbm ເພື່ອປ້ອງກັນບໍ່ໃຫ້ NDBM_File ແລະ ODBM_File ຖືກສ້າງຂຶ້ນ.

DJGPP ຄວາມລົ້ມເຫຼວ
t/op/stat............................ ລົ້ມເຫລວໃນການທົດສອບ 29
lib/File/Find/t/find.................ລົ້ມເຫລວໃນການທົດສອບ 1
lib/File/Find/t/taint................ລົ້ມເຫລວໃນການທົດສອບ 1
lib/h2xs............................. FAILED ໃນການທົດສອບ 15
lib/Pod/t/eol........................ ລົ້ມເຫລວໃນການທົດສອບ 1
lib/Test/Harness/t/strap-analyze.....FAILED ໃນການທົດສອບ 8
lib/Test/Harness/t/test-harness......ລົ້ມເຫລວໃນການທົດສອບ 23
lib/Test/Simple/t/exit ...............ລົ້ມເຫລວໃນການທົດສອບ 1

ຄວາມລົ້ມເຫຼວຂ້າງເທິງນີ້ເປັນທີ່ຮູ້ຈັກເປັນ 5.8.0 ກັບການກໍ່ສ້າງພື້ນເມືອງທີ່ມີຊື່ໄຟລ໌ຍາວ, ແຕ່ວ່າມີ
ມີຈໍານວນຫນ້ອຍຫຼາຍຖ້າແລ່ນພາຍໃຕ້ dosemu ເນື່ອງຈາກຂໍ້ຈໍາກັດ (ແລະບາງທີແມງໄມ້) ຂອງ dosemu:

t/comp/cpp...........................ລົ້ມເຫລວໃນການທົດສອບ 3
t/op/inccode.........................(ຂັດຂ້ອງ)

ແລະການທົດສອບ lib/ExtUtils ຈໍານວນຫນ້ອຍ, ແລະຫຼາຍຮ້ອຍ Encode/t/Aliases.t ລົ້ມເຫລວທີ່ເຮັດວຽກ.
ດີກັບຊື່ໄຟລ໌ຍາວ. ດັ່ງນັ້ນເຈົ້າອາດຈະມັກການສ້າງແບບພື້ນເມືອງ ແລະຊື່ໄຟລ໌ຍາວ.

FreeBSD ສ້າງຂຶ້ນ ກັບ ຫົວຂໍ້ coredumps ອ່ານ ຂະຫນາດໃຫຍ່ ໄດເລກະທໍລີ
ນີ້ແມ່ນແມງໄມ້ທີ່ຮູ້ຈັກໃນ FreeBSD 4.5's readdir_r(), ມັນໄດ້ຖືກແກ້ໄຂໃນ FreeBSD 4.6 (ເບິ່ງ
perlfreebsd (README.freebsd)).

FreeBSD ລົ້ມເຫລວ ທ້ອງຖິ່ນ ການທົດສອບ 117 ສໍາລັບການ ISO 8859​-15 ທ້ອງຖິ່ນ
ທ້ອງຖິ່ນ ISO 8859-15 ອາດຈະລົ້ມເຫລວໃນການທົດສອບທ້ອງຖິ່ນ 117 ໃນ FreeBSD. ອັນນີ້ແມ່ນເກີດມາຈາກ
ຕົວອັກສອນ \xFF (y ກັບ diaeresis) ແລະ \xBE (Y ກັບ diaeresis) ປະຕິບັດຕົວບໍ່ຖືກຕ້ອງເມື່ອ
ຖືກຈັບຄູ່ກັນແບບບໍ່ລະອຽດອ່ອນ. ປາກົດຂື້ນວ່າບັນຫານີ້ໄດ້ຖືກແກ້ໄຂໃນຫລ້າສຸດ
ການປ່ອຍ FreeBSD. ( http://www.freebsd.org/cgi/query-pr.cgi?pr=34308 )

IRIX ຂໍ້ເທັດຈິງ ext/List/Util/t/shuffle.t or ເອກະສານຍ່ອຍ::MD5
IRIX ກັບ MIPSpro 7.3.1.2m ຫຼື 7.3.1.3m compiler ອາດຈະລົ້ມເຫລວໃນລາຍການ::Util test
ext/List/Util/t/shuffle.t ໂດຍ dumping core. ນີ້ເບິ່ງຄືວ່າເປັນຄວາມຜິດພາດ compiler ນັບຕັ້ງແຕ່ if
ລວບລວມກັບ gcc ບໍ່ມີ core dump ເກີດຂຶ້ນ, ແລະບໍ່ພົບຄວາມລົ້ມເຫລວໃນການທົດສອບດັ່ງກ່າວໃນ.
ເວທີອື່ນໆ.

ເຊັ່ນດຽວກັນ, ການສ້າງ Digest:: MD5 extension ເປັນທີ່ຮູ້ຈັກທີ່ຈະລົ້ມເຫລວກັບ "*** ການສິ້ນສຸດ
ລະຫັດ 139 (bu21)".

ການປິ່ນປົວແມ່ນການຫຼຸດລົງໃນລະດັບການເພີ່ມປະສິດທິພາບ (Configure -Doptimize=-O2).

HP-UX lib/posix ການທົດສອບຍ່ອຍ 9 ຄວາມລົ້ມເຫຼວ ເມື່ອ​ໃດ​ LP64-Configured
ຖ້າ perl ຖືກຕັ້ງຄ່າດ້ວຍ -Duse64bitall, ຜົນໄດ້ຮັບທີ່ປະສົບຜົນສໍາເລັດຂອງການທົດສອບຍ່ອຍ 10 ຂອງ.
lib/posix ອາດຈະມາຮອດກ່ອນຜົນສໍາ ເລັດຂອງການທົດສອບຍ່ອຍ 9, ເຊິ່ງເຮັດໃຫ້ສັບສົນ
ການທົດສອບ harness ຫຼາຍດັ່ງນັ້ນມັນຄິດວ່າ subtest 9 ລົ້ມເຫລວ.

Linux ກັບ glibc 2.2.5 ຂໍ້ເທັດຈິງ t/op/int ການທົດສອບຍ່ອຍ #6 ກັບ -Duse64bitint
ນີ້ແມ່ນແມງໄມ້ທີ່ຮູ້ຈັກໃນ glibc 2.2.5 ທີ່ມີຈໍານວນເຕັມຍາວ. (
http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=65612 )

Linux ກັບ Sfio ຄວາມລົ້ມເຫຼວ op/misc ການທົດສອບ 48
ບໍ່ມີການແກ້ໄຂທີ່ຮູ້ຈັກ.

Mac OS X
ກະ​ລຸ​ນາ​ຈື່​ຈໍາ​ທີ່​ຈະ​ຕັ້ງ​ຕົວ​ປ່ຽນ​ສະ​ພາບ​ແວດ​ລ້ອມ​ຂອງ​ທ່ານ LC_ALL ເປັນ "C​" (setenv LC_ALL C​) ກ່ອນ​.
ແລ່ນ "ເຮັດການທົດສອບ" ເພື່ອຫຼີກເວັ້ນການເຕືອນຫຼາຍກ່ຽວກັບທ້ອງຖິ່ນທີ່ແຕກຫັກຂອງ Mac OS X.

ການ​ທົດ​ສອບ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​ເປັນ​ທີ່​ຮູ້​ຈັກ​ວ່າ​ຈະ​ລົ້ມ​ເຫຼວ​ໃນ Mac OS X 10.1.5 ເນື່ອງ​ຈາກ​ວ່າ buggy (ເກົ່າ​)
ການ​ປະ​ຕິ​ບັດ​ຂອງ Berkeley DB ລວມ​ຢູ່​ໃນ Mac OS X​:

ການທົດສອບຄວາມລົ້ມເຫຼວຂອງສະຖິຕິ Wstat Total Fail ບັນຊີລາຍຊື່ລົ້ມເຫລວ
-------------------------------------------------- -----------------------
../ext/DB_File/t/db-btree.t 0 11 ?? ?? % ??
../ext/DB_File/t/db-recno.t 149 3 2.01% 61 63 65

ຖ້າ​ຫາກ​ວ່າ​ທ່ານ​ກໍາ​ລັງ​ສ້າງ​ໃນ​ພາ​ທິ​ຊັນ UFS​, ທ່ານ​ອາດ​ຈະ​ເບິ່ງ t/op/stat.t subtest #9
ລົ້ມເຫລວ. ນີ້ແມ່ນເກີດມາຈາກ UFS ຂອງ Darwin ບໍ່ສະຫນັບສະຫນູນເວລາການປ່ຽນແປງ inode.

ນອກຈາກນັ້ນ, ext/POSIX/t/posix.t subtest #10 ລົ້ມເຫລວ, ແຕ່ມັນໄດ້ຖືກຂ້າມໄປສໍາລັບຕອນນີ້ເພາະວ່າ
ຄວາມລົ້ມເຫຼວແມ່ນຄວາມຜິດຂອງ Apple, ບໍ່ແມ່ນ Perl's (ສັນຍານທີ່ຖືກບລັອກແມ່ນສູນເສຍ).

ຖ້າທ່ານ Configure ດ້ວຍ ithreads, ext/threads/t/libc.t ຈະລົ້ມເຫລວ. ອີກເທື່ອຫນຶ່ງ, ນີ້ບໍ່ແມ່ນ Perl's
ຄວາມຜິດ-- libc ຂອງ Mac OS X ບໍ່ປອດໄພ (ໃນການທົດສອບສະເພາະນີ້, ໄດ້ ເວລາທ້ອງຖິ່ນ()
ພົບວ່າການໂທບໍ່ປອດໄພ.)

Mac OS X ຍ້ອມ undefined ສັນຍາລັກ
ຖ້າຫຼັງຈາກການຕິດຕັ້ງ Perl 5.8.0 ທ່ານກໍາລັງໄດ້ຮັບການເຕືອນກ່ຽວກັບສັນຍາລັກທີ່ຂາດຫາຍໄປ, ສໍາລັບການຍົກຕົວຢ່າງ

dyld: perl ສັນຍາລັກທີ່ບໍ່ໄດ້ກໍານົດ
_perl_sv_2pv
_perl_get_sv

ທ່ານອາດຈະມີການຕິດຕັ້ງ Pre-Perl-5.8.0 ເກົ່າ (ຫຼືບາງສ່ວນຂອງຫນຶ່ງ) ໃນ /Library/Perl
(ສັນຍາລັກທີ່ບໍ່ໄດ້ກໍານົດເຄີຍມີຢູ່ໃນກ່ອນ 5.8.0 Perls). ມັນເບິ່ງຄືວ່າສໍາລັບເຫດຜົນບາງຢ່າງ
"ເຮັດການຕິດຕັ້ງ" ບໍ່ໄດ້ຂຽນທັບໄຟລ໌ທັງຫມົດໃນ /Library/Perl. ເຈົ້າ​ສາ​ມາດ
ຍ້າຍຫ້ອງສະຫມຸດທີ່ໃຊ້ຮ່ວມກັນ Perl ເກົ່າອອກໄປຈາກວິທີນີ້:

cd /Library/Perl/darwin/CORE
mv libperl.dylib libperlold.dylib

ແລະຫຼັງຈາກນັ້ນອອກ "ເຮັດການຕິດຕັ້ງ". ໃຫ້ສັງເກດວ່າຂ້າງເທິງແນ່ນອນແມ່ນການລົບກວນທີ່ສຸດ
ສໍາລັບອັນໃດກໍໄດ້ໂດຍໃຊ້ /usr/local/bin/perl. ຖ້າມັນບໍ່ຊ່ວຍ, ເຈົ້າອາດຈະຕ້ອງພະຍາຍາມ
ເອົາໄຟລ໌ .bundle ທັງໝົດອອກຈາກລຸ່ມ /Library/Perl, ແລະອີກຄັ້ງ "ເຮັດການຕິດຕັ້ງ"-ing.

OS / 2 ການທົດສອບ ຄວາມລົ້ມເຫຼວ
ການ​ທົດ​ສອບ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​ແມ່ນ​ເປັນ​ທີ່​ຮູ້​ຈັກ​ວ່າ​ຈະ​ລົ້ມ​ເຫຼວ​ໃນ OS/2 (ສໍາ​ລັບ​ຄວາມ​ຊັດ​ເຈນ​ພຽງ​ແຕ່​ຄວາມ​ລົ້ມ​ເຫຼວ​ທີ່​ໄດ້​ສະ​ແດງ​ໃຫ້​ເຫັນ​,
ບໍ່ແມ່ນຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດທັງໝົດ):

../lib/ExtUtils/t/Mkbootstrap.t 1 256 18 1 5.56% 8
../lib/ExtUtils/t/Packlist.t 1 256 34 1 2.94% 17
../lib/ExtUtils/t/basic.t 1 256 17 1 5.88% 14
lib/os2_process.t 2 512 227 2 0.88% 174 209
lib/os2_process_kid.t 227 2 0.88% 174 209
lib/rx_cmprt.t 255 65280 18 3 16.67% 16-18

op/sprintf ການທົດສອບ 91, 129, ແລະ 130
ການທົດສອບ op/sprintf 91, 129, ແລະ 130 ແມ່ນເປັນທີ່ຮູ້ຈັກທີ່ຈະລົ້ມເຫລວໃນບາງເວທີ. ຕົວຢ່າງ
ລວມເອົາແພລະຕະຟອມໃດນຶ່ງໂດຍໃຊ້ sfio, ແລະ Compaq/Tandem's NonStop-UX.

ການທົດສອບ 91 ເປັນທີ່ຮູ້ຈັກທີ່ຈະລົ້ມເຫລວໃນ QNX6 (nto), ເພາະວ່າ "sprintf '%e',0" ຜະລິດບໍ່ຖືກຕ້ອງ.
0.000000e+0 ແທນ 0.000000e+00.

ສໍາລັບການທົດສອບ 129 ແລະ 130, ເວທີທີ່ລົ້ມເຫລວບໍ່ປະຕິບັດຕາມມາດຕະຖານ ANSI C: ສາຍ.
19ff ໃນຫນ້າ 134 ຂອງ ANSI X3.159 1989, ເພື່ອໃຫ້ຖືກຕ້ອງ. (ພວກເຂົາຜະລິດສິ່ງອື່ນທີ່ບໍ່ແມ່ນ "1"
ແລະ "-1" ເມື່ອຈັດຮູບແບບ 0.6 ແລະ -0.6 ໂດຍໃຊ້ຮູບແບບ printf "%.0f"; ສ່ວນຫຼາຍມັກ, ພວກເຂົາ
ຜະລິດ "0" ແລະ "-0".

SCO
ການທົດສອບ socketpair ແມ່ນຮູ້ວ່າບໍ່ພໍໃຈໃນ SCO 3.2v5.0.4:

ext/Socket/socketpair.t...............FAILED ການທົດສອບ 15-45

ແສງອາທິດ 2.5
ໃນກໍລະນີທີ່ທ່ານຍັງໃຊ້ Solaris 2.5 (aka SunOS 5.5), ທ່ານອາດຈະປະສົບກັບຄວາມລົ້ມເຫລວ (ໄດ້.
ທົດສອບການຖິ້ມຂີ້ເຫຍື້ອຫຼັກ) ໃນ lib/locale.t. ການປິ່ນປົວທີ່ແນະນໍາແມ່ນເພື່ອຍົກລະດັບ Solaris ຂອງທ່ານ.

ແສງອາທິດ x86 ຄວາມລົ້ມເຫຼວ ການທົດສອບ ກັບ -Duse64bitint
ການທົດສອບຕໍ່ໄປນີ້ແມ່ນເປັນທີ່ຮູ້ຈັກທີ່ຈະລົ້ມເຫລວໃນ Solaris x86 ກັບ Perl ທີ່ຖືກຕັ້ງຄ່າໃຫ້ໃຊ້ 64 bit.
ຈຳນວນເຕັມ:

ext/Data/Dumper/t/dumper.............ລົ້ມເຫລວໃນການທົດສອບ 268
ext/Devel/Peek/Peek..................ລົ້ມເຫລວໃນການທົດສອບ 7

SUPER-UX (NEC SX)
ການທົດສອບຕໍ່ໄປນີ້ແມ່ນຮູ້ວ່າລົ້ມເຫລວໃນ SUPER-UX:

op/64bitint........................... FAILED ການທົດສອບ 29-30, 32-33, 35-36
op/arith..............................FAILED ການທົດສອບ 128-130
op/pack...............................FAILED ການທົດສອບ 25-5625
op/pow................................
op/taint..............................# msgsnd ລົ້ມເຫລວ
../ext/IO/lib/IO/t/io_poll............ FAILED ການທົດສອບ 3-4
../ext/IPC/SysV/ipcsysv...............FAILED ການທົດສອບ 2, 5-6
../ext/IPC/SysV/t/msg................. FAILED ການທົດສອບ 2, 4-6
../ext/Socket/socketpair..............FAILED ການທົດສອບ 12
../lib/IPC/SysV.........................FAILED ການທົດສອບ 2, 5-6
../lib/warnings....................... FAILED ການທົດສອບ 115-116, 118-119

ຄວາມລົ້ມເຫຼວຂອງ op/pack ("ບໍ່ສາມາດບີບອັດຕົວເລກລົບຢູ່ທີ່ op/pack.t line 126") ແມ່ນຮ້າຍແຮງ.
​ແຕ່​ຍັງ​ບໍ່​ທັນ​ແກ້​ໄຂ. ມັນຊີ້ໃຫ້ເຫັນບາງບັນຫາກ່ຽວກັບການຈັດການການລົງນາມຂອງ C
compiler, ເຊັ່ນດຽວກັນກັບ 64bitint, arit, ແລະ pow ລົ້ມເຫລວ. ສ່ວນທີ່ເຫຼືອສ່ວນໃຫຍ່ຊີ້ໃຫ້ເຫັນບັນຫາ
ກັບ SysV IPC.

ໄລຍະເວລາ::ReadKey ບໍ່ ການເຮັດວຽກ on Win32
ໃຊ້ໄລຍະ::ReadKey 2.20 ຫຼືຫຼັງຈາກນັ້ນ.

UNICOS/mk
· ໃນ​ລະ​ຫວ່າງ​ການ​ຕັ້ງ​ຄ່າ​, ການ​ທົດ​ສອບ​

ການຄາດເດົາວ່າສັນຍາລັກໃດຂອງ C compiler ແລະ preprocessor ຂອງເຈົ້າກໍານົດ ...

ອາດຈະລົ້ມເຫລວກັບຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດເຊັ່ນ

CC-20 cc: ERROR File = try.c, Line = 3
ຕົວລະບຸ "ບໍ່ດີ" ແມ່ນບໍ່ໄດ້ກໍານົດ.

ສະຫຼັບບໍ່ດີ yylook 79bad switch yylook 79bad switch yylook 79bad switch yylook 79#ifdef A29K
^

CC-65 cc: ERROR File = try.c, Line = 3
ໃນຈຸດນີ້ຄາດວ່າຈະມີ semicolon.

ອັນນີ້ແມ່ນເກີດມາຈາກ bug ໃນ utility awk ຂອງ UNICOS/mk. ທ່ານ​ສາ​ມາດ​ລະ​ເລີຍ​ຄວາມ​ຜິດ​ພາດ​,
ແຕ່ມັນເຮັດໃຫ້ເກີດບັນຫາເລັກນ້ອຍ: ທ່ານບໍ່ສາມາດໄດ້ຮັບຜົນປະໂຫຍດຢ່າງເຕັມທີ່ຈາກຜົນປະໂຫຍດ h2ph
(ເບິ່ງ h2ph) ທີ່ສາມາດຖືກນໍາໃຊ້ເພື່ອປ່ຽນຫົວ C ໄປຫາຫ້ອງສະຫມຸດ Perl, ສ່ວນໃຫຍ່ແມ່ນໃຊ້ເປັນ.
ສາ​ມາດ​ເຂົ້າ​ເຖິງ​ຈາກ Perl ຄົງ​ທີ່​ກໍາ​ນົດ​ໂດຍ​ນໍາ​ໃຊ້ C preprocessor​, cpp​. ເພາະ​ວ່າ
ຂໍ້ຜິດພາດຂ້າງເທິງ, ພາກສ່ວນຂອງສ່ວນຫົວທີ່ປ່ຽນແລ້ວຈະເບິ່ງບໍ່ເຫັນ. ໂຊກດີ, ເຫຼົ່ານີ້
ມື້ທີ່ຕ້ອງການ h2ph ແມ່ນຫາຍາກ.

· ຖ້າ​ຫາກ​ວ່າ​ການ​ກໍ່​ສ້າງ Perl ກັບ​ກະ​ທູ້​ນາຍ​ພາ​ສາ (ithreads​)​, ໄດ້​ getgrent(), getgrnam(), ແລະ
getgrgid() ຟັງຊັນບໍ່ສາມາດສົ່ງຄືນລາຍຊື່ສະມາຊິກຂອງກຸ່ມໄດ້ເນື່ອງຈາກມີຂໍ້ຜິດພາດໃນ
ຮອງຮັບ multithreaded ຂອງ UNICOS/mk. ນີ້ ໝາຍ ຄວາມວ່າແນວໃດໃນບັນຊີລາຍການ
ຟັງຊັນຈະສົ່ງຄືນພຽງແຕ່ສາມຄ່າ, ບໍ່ແມ່ນສີ່.

UTS
ມີຄວາມລົ້ມເຫລວໃນການທົດສອບທີ່ຮູ້ຈັກບໍ່ຫຼາຍປານໃດ. (ຫມາຍ​ເຫດ​: ຂໍ້ມູນທີ່ກ່ຽວຂ້ອງແມ່ນມີຢູ່ໃນ
README.uts ຈົນ​ກ​່​ວາ​ການ​ສະ​ຫນັບ​ສະ​ຫນູນ UTS ຖືກ​ລົບ​ອອກ​ໃນ Perl v5.18.0​)

VOS (ລະດັບ)
ເມື່ອ Perl ຖືກສ້າງໂດຍໃຊ້ຂະບວນການສ້າງພື້ນເມືອງໃນ VOS Release 14.5.0 ແລະ GNU C++/GNU
ເຄື່ອງ​ມື 2.0.1, ທຸກ​ການ​ທົດ​ສອບ​ທີ່​ພະ​ຍາ​ຍາມ​ຜ່ານ​ຫຼື​ເຮັດ​ໃຫ້ TODO (ລະ​ເລີຍ​) ຄວາມ​ລົ້ມ​ເຫຼວ​.

ສ່ວນຂະຫຍາຍ VMS
ບໍ່ຄວນມີການລາຍງານຄວາມລົ້ມເຫຼວຂອງການທົດສອບທີ່ມີການຕັ້ງຄ່າເລີ່ມຕົ້ນ, ເຖິງແມ່ນວ່າມີ a
ຈໍາ​ນວນ​ຂອງ​ການ​ທົດ​ສອບ​ຫມາຍ TODO ທີ່​ຊີ້​ໄປ​ເຖິງ​ພື້ນ​ທີ່​ຈໍາ​ເປັນ​ຕ້ອງ​ການ​ແກ້​ໄຂ​ບັນ​ຫາ​ເພີ່ມ​ເຕີມ​ແລະ / ຫຼື porting​
ເຮັດວຽກ.

Win32
ໃນກ່ອງຫຼາຍ CPU, ມີບັນຫາບາງຢ່າງກັບ I/O buffering: ບາງຜົນຜະລິດອາດຈະປາກົດ
ສອງຄັ້ງ.

XML::ຕົວວິເຄາະ ບໍ່ ການເຮັດວຽກ
ໃຊ້ XML::Parser 2.31 ຫຼືຫຼັງຈາກນັ້ນ.

z/OS (OS/390)
z/OS ມີຄວາມລົ້ມເຫລວໃນການທົດສອບຫຼາຍຢ່າງແຕ່ຕົວຈິງແລ້ວສະຖານະການແມ່ນດີກວ່າຫຼາຍ
ໃນ 5.6.0; ມັນພຽງແຕ່ວ່າຫຼາຍໂມດູນໃຫມ່ແລະການທົດສອບໄດ້ຖືກເພີ່ມ.

ການທົດສອບຄວາມລົ້ມເຫຼວຂອງສະຖິຕິ Wstat Total Fail ບັນຊີລາຍຊື່ລົ້ມເຫລວ
---------------------------------------------------------------------- -------------------------
../ext/Data/Dumper/t/dumper.t 357 8 2.24% 311 314 325 327
331 333 337 339
../ext/IO/lib/IO/t/io_unix.t 5 4 80.00% 2-5
../ext/Storable/t/downgrade.t 12 3072 169 12 7.10% 14-15 46-47 78-79
110-111 150 161
../lib/ExtUtils/t/Constant.t 121 30976 48 48 100.00% 1-48
../lib/ExtUtils/t/Embed.t 9 9 100.00% 1-9
op/pat.t 922 7 0.76% 665 776 785 832-
834 845
op/sprintf.t 224 3 1.34% 98 100 136
op/tr.t 97 5 5.15% 63 71-74
uni/fold.t 780 6 0.77% 61 169 196 661
710​-711

ຄວາມລົ້ມເຫລວໃນ dumper.t ແລະ downgrade.t ແມ່ນບັນຫາໃນການທົດສອບ, ຜູ້ທີ່ຢູ່ໃນ io_unix ແລະ
sprintf ແມ່ນບັນຫາຢູ່ໃນ USS (ຊັອກເກັດ UDP ແລະຮູບແບບ printf). pat, tr, ແລະພັບ
ຄວາມລົ້ມເຫຼວແມ່ນບັນຫາ Perl ທີ່ແທ້ຈິງທີ່ເກີດຈາກ EBCDIC (ແລະໃນກໍລະນີຂອງ pat ແລະພັບ,
ສົມທົບກັບ Unicode). Constant ແລະ Embed ອາດຈະເປັນບັນຫາໃນການທົດສອບ
(ນັບຕັ້ງແຕ່ພວກເຂົາທົດສອບຄວາມສາມາດຂອງ Perl ໃນການສ້າງສ່ວນຂະຫຍາຍ, ແລະເບິ່ງຄືວ່າຈະເຮັດວຽກ
ສົມເຫດສົມຜົນ.)

Unicode ສະຫນັບສະຫນູນ on EBCDIC ຍັງ ຈຸດ Spot
ເຖິງແມ່ນວ່າສ່ວນໃຫຍ່ແມ່ນເຮັດວຽກ, ການສະຫນັບສະຫນູນ Unicode ຍັງມີຈຸດທີ່ມີບັນຫາຢູ່ໃນເວທີ EBCDIC. ຫນຶ່ງ
ຈຸດທີ່ຮູ້ຈັກຄື "\p{}" ແລະ "\P{}" ໂຄງສ້າງການສະແດງອອກປົກກະຕິສໍາລັບຈຸດລະຫັດ
ຫນ້ອຍກວ່າ 256: "pP" ກໍາລັງທົດສອບຈຸດລະຫັດ Unicode, ບໍ່ຮູ້ກ່ຽວກັບ EBCDIC.

ເຫັນແລ້ວ In Perl 5.7 ແຕ່ Gone ໃນປັດຈຸບັນ
"Time::Piece" (ເມື່ອກ່ອນເອີ້ນວ່າ "Time::Object") ຖືກໂຍກຍ້າຍອອກເພາະວ່າມັນຮູ້ສຶກວ່າມັນ.
ບໍ່ມີມູນຄ່າພຽງພໍທີ່ຈະເປັນໂມດູນຫຼັກ. ມັນຍັງເປັນໂມດູນທີ່ເປັນປະໂຫຍດ, ເຖິງແມ່ນວ່າ,
ແລະສາມາດໃຊ້ໄດ້ຈາກ CPAN.

ແຕ່ຫນ້າເສຍດາຍ, Perl 5.8 ບໍ່ໄດ້ສ້າງອີກໃນ AmigaOS; ນີ້ broke ບັງເອີນໃນບາງ
ຈຸດ. ເນື່ອງຈາກບໍ່ມີນັກພັດທະນາ Amiga ຈໍານວນຫຼາຍທີ່ມີຢູ່, ພວກເຮົາບໍ່ສາມາດໄດ້ຮັບສິ່ງນີ້
ຄົງ​ທີ່​ແລະ​ການ​ທົດ​ສອບ​ໃນ​ເວ​ລາ​ສໍາ​ລັບ 5.8.0. Perl 5.6.1 ຍັງເຮັດວຽກສໍາລັບ AmigaOS (ເຊັ່ນດຽວກັນກັບ 5.7.2
ການປ່ອຍການພັດທະນາ).

"PerlIO::Scalar" ແລະ "PerlIO::Via" (ຕົວພິມໃຫຍ່) ຖືກປ່ຽນຊື່ເປັນ "PerlIO::scalar" ແລະ
"PerlIO::via" (ຕົວພິມນ້ອຍທັງໝົດ) ກ່ອນ 5.8.0. ເຫດຜົນຕົ້ນຕໍແມ່ນການມີຫຼັກທັງໝົດ
ຊັ້ນ PerlIO ໃຫ້ມີຊື່ຕົວພິມນ້ອຍທັງໝົດ. ຕົວຢ່າງ "ປັ໊ກອິນ" ຖືກຕັ້ງຊື່ຕາມປົກກະຕິ
"PerlIO::via::QuotedPrint".

"ກະທູ້::shared::queue" ແລະ "threads::shared::semaphore" ຖືກປ່ຽນຊື່ເປັນ.
"ກະທູ້::Queue" ແລະ "Thread::Semaphore" ກ່ອນ 5.8.0. ເຫດຜົນຕົ້ນຕໍແມ່ນການມີ
ໂມດູນກະທູ້ເພື່ອປະຕິບັດຕາມການຕັ້ງຊື່ປົກກະຕິ, "ກະທູ້::" ("ກະທູ້" ແລະ "ກະທູ້::shared"
ຕົວຂອງມັນເອງແມ່ນຄ້າຍຄື pragma ຫຼາຍ, ພວກມັນມີຜົນກະທົບຕໍ່ເວລາລວບລວມ, ດັ່ງນັ້ນພວກເຂົາຢູ່ໃນຕົວພິມນ້ອຍ).

ການລາຍງານ ແມງໄມ້


ຖ້າເຈົ້າພົບສິ່ງທີ່ເຈົ້າຄິດວ່າເປັນຂໍ້ບົກພ່ອງ, ເຈົ້າອາດຈະກວດເບິ່ງບົດຄວາມທີ່ໂພສເມື່ອບໍ່ດົນມານີ້
ກຸ່ມຂ່າວ comp.lang.perl.misc ແລະຖານຂໍ້ມູນ perl bug ຢູ່ http://bugs.perl.org/ ທີ່ຢູ່ ມີ
ອາດຈະເປັນຂໍ້ມູນຢູ່ທີ່ http://www.perl.com/ , ຫນ້າທໍາອິດ Perl.

ຖ້າທ່ານເຊື່ອວ່າທ່ານມີຂໍ້ບົກພ່ອງທີ່ບໍ່ໄດ້ລາຍງານ, ກະລຸນາດໍາເນີນການ perlbug ໂຄງ​ການ​ລວມ​ກັບ​
ການປ່ອຍຕົວຂອງເຈົ້າ. ໃຫ້ແນ່ໃຈວ່າຈະຕັດ bug ຂອງທ່ານລົງເປັນກໍລະນີທົດສອບຂະຫນາດນ້ອຍແຕ່ພຽງພໍ. ບັກຂອງເຈົ້າ
ບົດລາຍງານ, ພ້ອມກັບຜົນຜະລິດຂອງ "perl -V", ຈະຖືກສົ່ງໄປຫາ [email protected] ຈະ
ວິເຄາະໂດຍທີມງານ Porting Perl.

ໃຊ້ perl58delta ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net


ເຊີບເວີ ແລະສະຖານີເຮັດວຽກຟຣີ

ດາວໂຫຼດແອັບ Windows ແລະ Linux

Linux ຄຳ ສັ່ງ

Ad




×
ການ​ໂຄ​ສະ​ນາ
?ຊື້ເຄື່ອງ, ຈອງ, ຫຼືຊື້ທີ່ນີ້ — ບໍ່ມີຄ່າໃຊ້ຈ່າຍ, ຊ່ວຍໃຫ້ການບໍລິການຟຣີ.