ນີ້ແມ່ນຄໍາສັ່ງ perl5120delta ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
perl5120delta - ແມ່ນຫຍັງໃຫມ່ສໍາລັບ perl v5.12.0
ລາຍລະອຽດ
ເອກະສານນີ້ອະທິບາຍຄວາມແຕກຕ່າງລະຫວ່າງການປ່ອຍ 5.10.0 ແລະການປ່ອຍ 5.12.0.
ການແກ້ໄຂຂໍ້ບົກພ່ອງຫຼາຍຢ່າງໃນ 5.12.0 ແມ່ນລວມຢູ່ໃນການປ່ອຍການບໍາລຸງຮັກສາ 5.10.1 ແລ້ວ.
ທ່ານສາມາດເບິ່ງລາຍຊື່ການປ່ຽນແປງເຫຼົ່ານັ້ນໃນບັນທຶກການປ່ອຍ 5.10.1 (perl5101delta).
Core ການຍົກລະດັບ
ໃຫມ່ "ຊຸດ NAME ລຸ້ນ" syntax
syntax ໃຫມ່ນີ້ອະນຸຍາດໃຫ້ຜູ້ຂຽນໂມດູນສາມາດກໍານົດ $VERSION ຂອງ namespace ເມື່ອ
namespace ຖືກປະກາດດ້ວຍ 'package'. ມັນກໍາຈັດຄວາມຕ້ອງການສໍາລັບ "$VERSION ຂອງພວກເຮົາ = ... " ແລະ
ໂຄງສ້າງທີ່ຄ້າຍຄືກັນ. ຕົວຢ່າງ
ຊຸດ Foo::Bar 1.23;
# $Foo::Bar::VERSION == 1.23
ມີຂໍ້ດີຫຼາຍອັນນີ້:
· $VERSION ຖືກວິເຄາະດ້ວຍວິທີດຽວກັນກັບ "ໃຊ້ NAME VERSION"
· $VERSION ຖືກກໍານົດໃນເວລາລວບລວມ
· $VERSION ແມ່ນວັດຖຸສະບັບທີ່ສະຫນອງການ overloading ທີ່ເຫມາະສົມຂອງການປະຕິບັດການປຽບທຽບ
ດັ່ງນັ້ນການປຽບທຽບ $VERSION ກັບເລກທົດສະນິຍົມ (1.23) ຫຼືເລກເວີຊັ່ນ dotted-decimal (v1.2.3)
ເຮັດວຽກຢ່າງຖືກຕ້ອງ.
· ລົບລ້າງ "$VERSION = ... " ແລະ "eval $VERSION" clutter
·ຍ້ອນວ່າມັນຮຽກຮ້ອງໃຫ້ VERSION ເປັນຕົວຫນັງສືຕົວເລກຫຼືຕົວຫນັງສື v-string, ມັນສາມາດເປັນ
ການວິເຄາະທາງສະຖິຕິໂດຍໂມດູນລະບົບຕ່ອງໂສ້ເຄື່ອງມືໂດຍບໍ່ມີ "eval" ວິທີທີ່ MM->parse_version ເຮັດ.
ສໍາລັບ "$VERSION = ..."
ມັນບໍ່ໄດ້ທໍາລາຍລະຫັດເກົ່າທີ່ມີພຽງແຕ່ "package NAME", ແຕ່ລະຫັດທີ່ໃຊ້ "package NAME
VERSION" ຈະຕ້ອງຖືກຈໍາກັດຕໍ່ perl 5.12.0 ຫຼືໃຫມ່ກວ່ານີ້ແມ່ນຄ້າຍຄືກັນກັບ
ປ່ຽນເປັນ "ເປີດ" ຈາກສອງອາກຫາສາມອາກ. ຜູ້ໃຊ້ຕ້ອງການ Perl ຫຼ້າສຸດ
ຜົນປະໂຫຍດ, ແລະບາງທີຫຼັງຈາກຫຼາຍປີ, ມັນຈະກາຍເປັນການປະຕິບັດມາດຕະຖານ.
ແນວໃດກໍ່ຕາມ, "package NAME VERSION" ຕ້ອງການຮູບແບບເລກເວີຊັ່ນໃໝ່, 'ເຂັ້ມງວດ'. ເບິ່ງ
"ຮູບແບບຈໍານວນຮຸ່ນ" ສໍາລັບລາຍລະອຽດ.
ໄດ້ "... " ປະຕິບັດການ
ມີການເພີ່ມຕົວປະຕິບັດການໃຫມ່, "...", ມີຊື່ຫຼິ້ນວ່າຜູ້ປະກອບການ Yada Yada, ໄດ້ຖືກເພີ່ມ. ມັນມີຈຸດປະສົງ
ເພື່ອຫມາຍລະຫັດ placeholder ທີ່ຍັງບໍ່ໄດ້ປະຕິບັດ. ເບິ່ງ "Yada Yada Operator" ໃນ perlop.
ສົມບູນແບບ ຄວາມເຄັ່ງຄັດ
ການໃຊ້ syntax "ໃຊ້ VERSION" ທີ່ມີຕົວເລກເວີຊັນໃຫຍ່ກວ່າ ຫຼືເທົ່າກັບ 5.11.0 ຈະ
lexically ເປີດໃຊ້ຄວາມເຂັ້ມງວດຄືກັນກັບ "ໃຊ້ຢ່າງເຂັ້ມງວດ" ຈະເຮັດ (ນອກເຫນືອຈາກການເປີດໃຊ້
ຄຸນນະສົມບັດ.) ດັ່ງຕໍ່ໄປນີ້:
ໃຊ້ 5.12.0;
ໝາຍ ຄວາມວ່າ:
ໃຊ້ຢ່າງເຄັ່ງຄັດ;
ໃຊ້ຄຸນສົມບັດ ':5.12';
Unicode ການປັບປຸງ
Perl 5.12 ມາພ້ອມກັບ Unicode 5.2, ຮຸ່ນຫຼ້າສຸດທີ່ມີໃຫ້ພວກເຮົາໃນເວລາຂອງ
ປ່ອຍ. ສະບັບຂອງ Unicode ນີ້ໄດ້ຖືກປ່ອຍອອກມາໃນເດືອນຕຸລາ 2009. ເບິ່ງ
<http://www.unicode.org/versions/Unicode5.2.0> ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບສິ່ງທີ່ມີການປ່ຽນແປງໃນ
ສະບັບຂອງມາດຕະຖານນີ້. ເບິ່ງ perlunicode ສໍາລັບຄໍາແນະນໍາໃນການຕິດຕັ້ງແລະການນໍາໃຊ້
Unicode ຮຸ່ນອື່ນໆ.
ນອກຈາກນັ້ນ, ຜູ້ພັດທະນາຂອງ Perl ໄດ້ປັບປຸງການປະຕິບັດ Unicode ຂອງ Perl ຢ່າງຫຼວງຫຼາຍ.
ສໍາລັບລາຍລະອຽດເຕັມ, ເບິ່ງ "Unicode overhaul" ຂ້າງລຸ່ມນີ້.
Y2038 ປະຕິບັດຕາມ
ຫນ້າທີ່ທີ່ກ່ຽວຂ້ອງກັບເວລາຫຼັກຂອງ Perl ໃນປັດຈຸບັນແມ່ນສອດຄ່ອງກັບ Y2038. (ມັນອາດຈະບໍ່ມີຄວາມຫມາຍຫຼາຍສໍາລັບທ່ານ,
ແຕ່ລູກຂອງເຈົ້າຈະຮັກມັນ!)
qr ເກີນ ກຳ ລັງ
ໃນປັດຈຸບັນມັນເປັນໄປໄດ້ທີ່ຈະ overload ຕົວປະຕິບັດການ "qr//", ນັ້ນແມ່ນ, ການປ່ຽນເປັນ regexp, ເຊັ່ນມັນ
ເປັນໄປໄດ້ແລ້ວທີ່ຈະ overload ການແປງເປັນ boolean, string ຫຼືຈໍານວນຂອງວັດຖຸ. ມັນແມ່ນ
ຖືກເອີ້ນເມື່ອວັດຖຸປະກົດຂຶ້ນຢູ່ເບື້ອງຂວາຂອງຕົວປະຕິບັດການ "=~" ຫຼືເມື່ອມັນຢູ່
interpolated ເຂົ້າໄປໃນ regexp. ເບິ່ງ overload.
Pluggable ຄໍາ
ໂມດູນການຂະຫຍາຍໃນປັດຈຸບັນສາມາດເຊື່ອມຕໍ່ເຂົ້າໄປໃນຕົວແຍກ Perl ຢ່າງສະອາດເພື່ອກໍານົດປະເພດໃຫມ່
ການສະແດງອອກຂອງຄໍາຫລັກແລະຄໍາຖະແຫຼງທີ່ປະສົມປະສານ. syntax ດັ່ງຕໍ່ໄປນີ້ຄໍາຫລັກແມ່ນ
ຖືກກໍານົດໂດຍສ່ວນຂະຫຍາຍທັງຫມົດ. ນີ້ອະນຸຍາດໃຫ້ເປັນພາສາຍ່ອຍທີ່ບໍ່ແມ່ນ Perl ຢ່າງສົມບູນ
ແຍກວິເຄາະໃນແຖວ, ດ້ວຍ ops ທີ່ຖືກຕ້ອງທີ່ສ້າງຂຶ້ນຢ່າງສະອາດ.
ເບິ່ງ "PL_keyword_plugin" ໃນ perlapi ສໍາລັບກົນໄກ. ການແຈກຢາຍແຫຼ່ງຫຼັກ Perl
ຍັງປະກອບມີໂມດູນໃຫມ່ XS::APItest::KeywordRPN, ເຊິ່ງປະຕິບັດການປີ້ນກັບໂປໂລຍ
notation arithmetic ຜ່ານຄໍາທີ່ໃຊ້ pluggable. ໂມດູນນີ້ສ່ວນໃຫຍ່ແມ່ນໃຊ້ສໍາລັບຈຸດປະສົງການທົດສອບ,
ແລະບໍ່ໄດ້ຕິດຕັ້ງຕາມປົກກະຕິ, ແຕ່ຍັງເປັນຕົວຢ່າງຂອງວິທີການນໍາໃຊ້ໃຫມ່
ກົນໄກ.
ຜູ້ພັດທະນາຂອງ Perl ພິຈາລະນາລັກສະນະນີ້ເປັນການທົດລອງ. ພວກເຮົາອາດຈະເອົາມັນອອກຫຼືປ່ຽນມັນ
ໃນທາງກັບກັນ-ບໍ່ເຂົ້າກັນໄດ້ໃນ Perl 5.14.
APIs ສໍາລັບການ ເພີ່ມເຕີມ ພາຍໃນ
ຊັ້ນຕ່ໍາສຸດຂອງ lexer ແລະພາກສ່ວນຂອງລະບົບ pad ໃນປັດຈຸບັນມີ C APIs ສາມາດໃຊ້ໄດ້ກັບ XS
ສ່ວນຂະຫຍາຍ. ເຫຼົ່ານີ້ແມ່ນມີຄວາມຈໍາເປັນເພື່ອສະຫນັບສະຫນູນການນໍາໃຊ້ທີ່ເຫມາະສົມຂອງຄໍາ pluggable, ແຕ່ມີ
ການນໍາໃຊ້ອື່ນໆເຊັ່ນດຽວກັນ. APIs ໃຫມ່ແມ່ນການທົດລອງ, ແລະພຽງແຕ່ກວມເອົາອັດຕາສ່ວນເລັກນ້ອຍຂອງສິ່ງທີ່
ຈະຕ້ອງໃຊ້ປະໂຫຍດຢ່າງເຕັມທີ່ຈາກສິ່ງອໍານວຍຄວາມສະດວກຂອງພື້ນຖານໃນຂົງເຂດເຫຼົ່ານີ້. ມັນແມ່ນ
ມີຈຸດປະສົງວ່າວົງຈອນການພັດທະນາ Perl 5.13 ຈະເຫັນການເພີ່ມລະດັບອັນເຕັມທີ່ຂອງ
ສະອາດ, ການໂຕ້ຕອບທີ່ສະຫນັບສະຫນູນ.
ຜູ້ພັດທະນາຂອງ Perl ພິຈາລະນາລັກສະນະນີ້ເປັນການທົດລອງ. ພວກເຮົາອາດຈະເອົາມັນອອກຫຼືປ່ຽນມັນ
ໃນທາງກັບກັນ-ບໍ່ເຂົ້າກັນໄດ້ໃນ Perl 5.14.
overridable ຫນ້າທີ່ ຊອກຫາ
ບ່ອນທີ່ໂມດູນການຂະຫຍາຍຕິດພັນກັບການສ້າງ rv2cv ops ເພື່ອດັດແປງການເບິ່ງແບບຍ່ອຍ
ຂະບວນການນີ້, ດຽວນີ້ເຮັດວຽກຢ່າງຖືກຕ້ອງສໍາລັບການເອີ້ນແບບປົກກະຕິຍ່ອຍ. ນີ້ຫມາຍຄວາມວ່າ
prototypes ໃນ subroutines ອ້າງອີງວິທີການນີ້ຈະໄດ້ຮັບການປະມວນຜົນຢ່າງຖືກຕ້ອງ. (ກ່ອນໜ້ານີ້
ຊື່ປະຈຳການຍ່ອຍ bareword ໄດ້ຖືກຊອກຫາໃນເບື້ອງຕົ້ນ, ເພື່ອຈຸດປະສົງການວິເຄາະ, ໂດຍ unhookable.
ກົນໄກ, ດັ່ງນັ້ນການຂະຫຍາຍພຽງແຕ່ສາມາດມີອິດທິພົນຢ່າງຖືກຕ້ອງກັບຊື່ຍ່ອຍທີ່ປາກົດດ້ວຍ
ເປັນ "&" sigil.)
A ທີ່ເຫມາະສົມ ການໂຕ້ຕອບ ສໍາລັບການ pluggable ວິທີການ ການແກ້ໄຂ ຄໍາສັ່ງ
ໃນຖານະເປັນຂອງ Perl 5.12.0 ມີການໂຕ້ຕອບໃຫມ່ສໍາລັບການສຽບແລະການນໍາໃຊ້ຄໍາສັ່ງການແກ້ໄຂວິທີການ
ນອກ ເໜືອ ຈາກຄວາມເລິກຂອງເສັ້ນເລີ່ມຕົ້ນໃນການຄົ້ນຫາຄັ້ງ ທຳ ອິດ. ຄໍາສັ່ງການແກ້ໄຂວິທີການ C3 ເພີ່ມເຂົ້າໃນ
5.10.0 ໄດ້ຖືກປະຕິບັດຄືນໃຫມ່ເປັນ plugin, ໂດຍບໍ່ມີການປ່ຽນການໂຕ້ຕອບ Perl-space ຂອງມັນ. ເບິ່ງ
perlmroapi ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ.
"\N" ທົດລອງ regex escape
ດຽວນີ້ Perl ຮອງຮັບ "\N", ເຊິ່ງເປັນການຫລົບຫນີ regex ໃໝ່ ທີ່ທ່ານສາມາດຄິດວ່າເປັນການກົງກັນຂ້າມຂອງ "\n".
ມັນຈະກົງກັບລັກສະນະໃດຫນຶ່ງທີ່ບໍ່ແມ່ນເສັ້ນໃຫມ່, ເປັນອິດສະຫຼະຈາກທີ່ມີຫຼື
ບໍ່ມີຕົວແກ້ໄຂການຈັບຄູ່ແຖວດຽວ "/s". ມັນບໍ່ສາມາດໃຊ້ໄດ້ພາຍໃນຫ້ອງຮຽນຕົວອັກສອນ.
"\N{3}" ໝາຍເຖິງການຈັບຄູ່ 3 ແຖວທີ່ບໍ່ແມ່ນສາຍໃໝ່; "\N{5,}" ຫມາຍເຖິງການຈັບຄູ່ຢ່າງໜ້ອຍ 5. "\N{NAME}"
ຍັງໝາຍເຖິງຕົວອັກສອນ ຫຼື ລຳດັບຊື່ "NAME", ແຕ່ "NAME" ບໍ່ສາມາດເປັນສິ່ງຂອງໄດ້ອີກຕໍ່ໄປ
ເຊັ່ນ: 3, ຫຼື "5,".
ນີ້ຈະທໍາລາຍຕົວແປ charnames ແບບກໍານົດເອງທີ່ອະນຸຍາດໃຫ້ຕົວເລກສໍາລັບຊື່ຕົວອັກສອນ, ເປັນ
"\N{3}" ຕອນນີ້ຫມາຍເຖິງການຈັບຄູ່ 3 ຕົວອັກສອນທີ່ບໍ່ແມ່ນແຖວໃໝ່, ແລະບໍ່ແມ່ນຕົວອັກສອນທີ່ມີຊື່
ແມ່ນ 3. (ບໍ່ມີຊື່ທີ່ກໍານົດໂດຍມາດຕະຖານ Unicode ເປັນຕົວເລກ, ດັ່ງນັ້ນພຽງແຕ່ຜູ້ແປພາສາທີ່ກໍາຫນົດເອງ
ອາດຈະໄດ້ຮັບຜົນກະທົບ.)
ນັກພັດທະນາຂອງ Perl ມີຄວາມກັງວົນບາງຢ່າງກ່ຽວກັບຄວາມສັບສົນຂອງຜູ້ໃຊ້ທີ່ເປັນໄປໄດ້ກັບສິ່ງທີ່ມີຢູ່
"\N{...}" ສ້າງທີ່ກົງກັບຕົວອັກສອນຕາມຊື່ Unicode ຂອງເຂົາເຈົ້າ. ດັ່ງນັ້ນ, ນີ້
ຄຸນນະສົມບັດແມ່ນການທົດລອງ. ພວກເຮົາອາດຈະເອົາມັນອອກຫຼືປ່ຽນມັນໃນວິທີການກັບຄືນໄປບ່ອນທີ່ບໍ່ເຂົ້າກັນໄດ້ໃນ
Perl 5.14
DTrace ສະຫນັບສະຫນູນ
ໃນປັດຈຸບັນ Perl ມີການສະຫນັບສະຫນູນບາງຢ່າງສໍາລັບ DTrace. ເບິ່ງ "ການສະຫນັບສະຫນູນ DTrace" ໃນ ການຕິດຕັ້ງ.
ສະຫນັບສະຫນູນ ສໍາລັບການ "configure_requires" in ຄ. ສ ໂມດູນ metadata
ທັງ "CPAN" ແລະ "CPANPLUS" ໃນປັດຈຸບັນສະຫນັບສະຫນູນຄໍາສໍາຄັນ "configure_requires" ໃນ META.yml
ໄຟລ໌ metadata ລວມຢູ່ໃນການແຈກຢາຍ CPAN ຫຼ້າສຸດ. ນີ້ອະນຸຍາດໃຫ້ແຈກຢາຍ
ຜູ້ຂຽນເພື່ອລະບຸເງື່ອນໄຂການຕັ້ງຄ່າກ່ອນທີ່ຈະຕ້ອງໄດ້ຮັບການຕິດຕັ້ງກ່ອນທີ່ຈະແລ່ນ
Makefile.PL or Build.PL.
ເບິ່ງເອກະສານສໍາລັບ "ExtUtils::MakeMaker" ຫຼື "Module::Build" ສໍາລັບເພີ່ມເຕີມກ່ຽວກັບວິທີການ
ລະບຸ "configure_requires" ເມື່ອສ້າງການແຈກຢາຍສໍາລັບ CPAN.
"ແຕ່ລະ", "ກະແຈ", "ຄຸນຄ່າ" ມີ ໃນປັດຈຸບັນ ເພີ່ມເຕີມ ປ່ຽນແປງໄດ້
ຟັງຊັນ "ແຕ່ລະ", "ກະແຈ", "ຄ່າ" ສາມາດເຮັດວຽກຢູ່ໃນ arrays.
"ເມື່ອໃດ" as a ຄໍາຖະແຫຼງທີ່ ການປ່ຽນແປງ
ດຽວນີ້ "ເມື່ອ" ຖືກອະນຸຍາດໃຫ້ໃຊ້ເປັນຕົວແກ້ໄຂຖະແຫຼງການ.
$, ຄວາມຍືດຫຍຸ່ນ
ຕົວແປ $, ໃນປັດຈຸບັນອາດຈະຖືກຜູກມັດ.
// in ໃນເວລາທີ່ ຂໍ້
// ປະຈຸບັນປະຕິບັດຕົວຄື || ໃນເວລາທີ່ຂໍ້
ເປີດໃຊ້ງານ ຄໍາເຕືອນ ຈາກ ຂອງທ່ານ ຫອຍ ສະພາບແວດລ້ອມ
ດຽວນີ້ທ່ານສາມາດຕັ້ງ "-W" ຈາກຕົວແປສະພາບແວດລ້ອມ "PERL5OPT".
"ລຶບ ທ້ອງຖິ່ນ"
ດຽວນີ້ "ລຶບທ້ອງຖິ່ນ" ຊ່ວຍໃຫ້ທ່ານສາມາດລຶບລາຍການ hash ໄດ້.
ໃຫມ່ ສະຫນັບສະຫນູນ ສໍາລັບການ ບົດຄັດຫຍໍ້ namespace ເຕົ້າຮັບ
ເຕົ້າຮັບ namespace ແບບຫຍໍ້ແມ່ນປະເພດຊັອກເກັດສະເພາະ Linux ທີ່ອາໄສຢູ່ໃນຄອບຄົວ AF_UNIX,
abusing ເລັກນ້ອຍເພື່ອໃຫ້ສາມາດນໍາໃຊ້ arrays arrays arbitrary ເປັນທີ່ຢູ່: ພວກເຂົາເຈົ້າເລີ່ມຕົ້ນ
ດ້ວຍ nul byte ແລະບໍ່ໄດ້ຖືກຢຸດໂດຍ nul byte, ແຕ່ດ້ວຍຄວາມຍາວທີ່ສົ່ງກັບ
ຊັອກເກັດ () ລະບົບການໂທ.
32-bit ກໍານົດຂອບເຂດ on ຍ່ອຍ ກະທູ້ທີ່ ລົບອອກ
ຂອບເຂດຈໍາກັດ 32-bit ກ່ຽວກັບ "substr" arguments ໄດ້ຖືກໂຍກຍ້າຍອອກໃນປັດຈຸບັນ. ລະດັບຄວາມເຕັມທີ່ຂອງ
ຈຳນວນເຕັມທີ່ລົງລາຍເຊັນ ແລະບໍ່ໄດ້ເຊັນໃນປັດຈຸບັນແມ່ນມີໃຫ້ສຳລັບອາກິວເມັນ "pos" ແລະ "len".
Potentially ບໍ່ເຂົ້າກັນໄດ້ ການປ່ຽນແປງ
ປະຕິເສດ ເຕືອນ by Default
ໃນຊຸມປີມໍ່ໆມານີ້, ນັກພັດທະນາຂອງ Perl ໄດ້ປະຕິເສດລັກສະນະພາສາຈໍານວນຫນຶ່ງສໍາລັບ a
ຫຼາກຫຼາຍເຫດຜົນ. ໃນປັດຈຸບັນ Perl ເລີ່ມຕົ້ນທີ່ຈະອອກຄໍາເຕືອນຖ້າຫາກວ່າພາສາທີ່ຖືກຍົກເລີກ
ຄຸນນະສົມບັດໄດ້ຖືກນໍາໃຊ້. ປະຈຸບັນນີ້ Perl ການປະຕິເສດຫຼາຍຄົນໄດ້ເຕືອນທ່ານກ່ຽວກັບວ່າໄດ້ຖືກຍົກເລີກແລ້ວ
ສໍາລັບເວລາຫຼາຍປີ. ທ່ານສາມາດຊອກຫາບັນຊີລາຍຊື່ຂອງສິ່ງທີ່ຖືກປະຕິເສດໃນການປ່ອຍ Perl ໃນ
ໄຟລ໌ "perl5xxdelta.pod" ສໍາລັບການປ່ອຍນັ້ນ.
ເພື່ອປິດຄຸນສົມບັດນີ້ຢູ່ໃນຂອບເຂດ lexical ທີ່ກໍານົດໄວ້, ທ່ານຄວນໃຊ້ "ບໍ່ມີຄໍາເຕືອນ
'deprecated';" ສໍາລັບຂໍ້ມູນກ່ຽວກັບລັກສະນະພາສາໃດຖືກປະຕິເສດແລະ
ຄໍາອະທິບາຍຂອງຄໍາເຕືອນການຫຼຸດຜ່ອນການຕ່າງໆ, ກະລຸນາເບິ່ງ perldiag. ເບິ່ງ "ການປະຕິເສດ"
ຂ້າງລຸ່ມນີ້ສໍາລັບບັນຊີລາຍຊື່ຂອງຄຸນສົມບັດແລະໂມດູນທີ່ນັກພັດທະນາ Perl ໄດ້ປະຕິເສດເປັນສ່ວນຫນຶ່ງຂອງ
ການປ່ອຍນີ້.
Version ຈໍານວນ ຮູບແບບ
ຮູບແບບຕົວເລກສະບັບທີ່ຍອມຮັບໄດ້ໄດ້ຖືກຈັດເປັນລະບຽບ "ເຄັ່ງຄັດ" ແລະ "ຫລະ".
"package NAME VERSION" ໃຊ້ຕົວເລກສະບັບທີ່ເຂັ້ມງວດ. "universal::VERSION" ແລະ
ຜູ້ສ້າງວັດຖຸລຸ້ນໃຊ້ຕົວເລກສະບັບທີ່ຫລະວ່າງ. ການສະຫນອງສະບັບທີ່ບໍ່ຖືກຕ້ອງຈະ
ສົ່ງຜົນໃຫ້ເກີດຄວາມຜິດພາດຮ້າຍແຮງ. ເວີຊັ່ນ argument ໃນ "ໃຊ້ NAME VERSION" ທຳອິດຖືກແຍກເປັນ a
ຕົວຫນັງສືຕົວເລກຫຼື v-string ແລະຫຼັງຈາກນັ້ນສົ່ງກັບ "UNIVERSAL::VERSION" (ແລະຫຼັງຈາກນັ້ນຕ້ອງຜ່ານ.
ການທົດສອບຮູບແບບ "lax").
ຮູບແບບເຫຼົ່ານີ້ແມ່ນເປັນເອກະສານຢ່າງເຕັມທີ່ໃນໂມດູນສະບັບ. ໃນການປະມານທໍາອິດ, a
ໝາຍເລກເວີຊັນ "ເຂັ້ມງວດ" ແມ່ນຕົວເລກທົດສະນິຍົມບວກ (ຈຳນວນເຕັມ ຫຼື ສ່ວນທົດສະນິຍົມ) ໂດຍບໍ່ມີ
exponentiation ຫຼືອື່ນໆເປັນ v-string ອັດສະລິຍະ dotted-decimal ທີ່ມີຕົວອັກສອນ 'v' ນໍາໜ້າ ແລະຢ່າງໜ້ອຍ
ສາມອົງປະກອບ. ຕົວເລກສະບັບ "lax" ອະນຸຍາດໃຫ້ v-strings ທີ່ມີອົງປະກອບຫນ້ອຍກວ່າສາມອົງປະກອບ
ຫຼືບໍ່ມີ 'v' ຊັ້ນນໍາ. ພາຍໃຕ້ກົດລະບຽບ "lax", ທັງສະບັບທົດສະນິຍົມແລະຈຸດ - ທົດສະນິຍົມອາດຈະ
ມີອົງປະກອບ "alpha" ຕໍ່ທ້າຍທີ່ແຍກອອກດ້ວຍຕົວອັກສອນຂີດກ້ອງຫຼັງຈາກເສດສ່ວນ
ຫຼືອົງປະກອບຈຸດ - ທົດສະນິຍົມ.
ໂມດູນຮຸ່ນຈະເພີ່ມຫນ້າທີ່ "version::is_strict" ແລະ "version::is_lax" ເພື່ອກວດເບິ່ງ
scalar ຕໍ່ກັບກົດລະບຽບເຫຼົ່ານີ້.
@INC ການຈັດຕັ້ງຄືນ ໃໝ່
ໃນ @INC, "ARCHLIB" ແລະ "PRIVLIB" ໃນປັດຈຸບັນເກີດຂຶ້ນຫຼັງຈາກ "site_perl" ຂອງສະບັບປະຈຸບັນແລະ
"vendor_perl". ໂມດູນທີ່ຕິດຕັ້ງໃສ່ "site_perl" ແລະ "vendor_perl" ຈະຖືກໂຫລດໃນຕອນນີ້
ການຕັ້ງຄ່າທີ່ຕິດຕັ້ງຢູ່ໃນ "ARCHLIB" ແລະ "PRIVLIB".
REGEXPs ມີ ໃນປັດຈຸບັນ ຄັ້ງທໍາອິດ ລະດັບ
ພາຍໃນ, Perl ປະຈຸບັນປະຕິບັດການລວບລວມການສະແດງອອກປົກກະຕິ (ເຊັ່ນ: ທີ່ສ້າງຂຶ້ນດ້ວຍ
"qr//") ເປັນຫນ່ວຍງານຊັ້ນທໍາອິດ. ໂມດູນ Perl ທີ່ serialize, deserialize ຫຼືຖ້າບໍ່ດັ່ງນັ້ນ
ມີປະຕິສໍາພັນຢ່າງເລິກເຊິ່ງກັບໂຄງສ້າງຂໍ້ມູນພາຍໃນຂອງ Perl ຕ້ອງໄດ້ຮັບການປັບປຸງສໍາລັບການນີ້
ການປ່ຽນແປງ. ໂມດູນ CPAN ທີ່ໄດ້ຮັບຜົນກະທົບສ່ວນໃຫຍ່ໄດ້ຖືກປັບປຸງແລ້ວໃນການຂຽນນີ້.
Switch ຄໍາຖະແຫຼງທີ່ ການປ່ຽນແປງ
ຄຳຖະແຫຼງການສະຫຼັບ "ໃຫ້"/"ເມື່ອ" ຈັດການຄຳຖະແຫຼງທີ່ຊັບຊ້ອນໄດ້ດີກວ່າ Perl 5.10.0 ເຮັດ
(ການປັບປຸງເຫຼົ່ານີ້ຍັງມີຢູ່ໃນ 5.10.1 ແລະ 5.10 ຕໍ່ມາ.) ມີ.
ສອງກໍລະນີໃຫມ່ທີ່ "ເມື່ອ" ໃນປັດຈຸບັນຕີຄວາມຫມາຍການໂຕ້ຖຽງຂອງຕົນເປັນ boolean, ແທນທີ່ຈະເປັນ
ການສະແດງອອກທີ່ຈະໃຊ້ໃນການຈັບຄູ່ທີ່ສະຫຼາດ:
ຕົວປະຕິບັດການ flip-flop
".." ແລະ "..." ຕົວປະຕິບັດການ flip-flop ໄດ້ຖືກປະເມີນໃນສະພາບການ boolean, ຕໍ່ໄປນີ້.
semantics ປົກກະຕິຂອງເຂົາເຈົ້າ; ເບິ່ງ "Range Operators" ໃນ perlop.
ໃຫ້ສັງເກດວ່າ, ເຊັ່ນດຽວກັບ perl 5.10.0, "when (1..10)" ຈະບໍ່ເຮັດວຽກເພື່ອທົດສອບວ່າໃຫ້.
ຄ່າແມ່ນຈຳນວນເຕັມລະຫວ່າງ 1 ແລະ 10; ທ່ານຄວນໃຊ້ "ເມື່ອ ([1..10])" ແທນ (ຫມາຍເຫດ
ການອ້າງອິງ array).
ຢ່າງໃດກໍ່ຕາມ, ກົງກັນຂ້າມກັບ 5.10.0, ການປະເມີນຕົວປະຕິບັດການ flip-flop ໃນສະພາບການ boolean
ຮັບປະກັນວ່າມັນສາມາດເປັນປະໂຫຍດໃນ "ເມື່ອ ()", ໂດຍສະເພາະສໍາລັບການປະຕິບັດ bistable
ເງື່ອນໄຂເຊັ່ນ:
ເມື່ອ (/^=begin/ .. /^=end/) {
# ເຮັດບາງຢ່າງ
}
ກໍານົດ - ຫຼືຕົວປະຕິບັດການ
ການສະແດງອອກປະສົມທີ່ກ່ຽວຂ້ອງກັບຕົວປະຕິບັດການທີ່ກໍານົດໄວ້, ຄືກັບ "ເມື່ອ (expr1 //.
expr2)", ຈະຖືກປະຕິບັດເປັນ boolean ຖ້າການສະແດງອອກທໍາອິດແມ່ນ boolean. (ນີ້ພຽງແຕ່
ຂະຫຍາຍກົດລະບຽບທີ່ມີຢູ່ແລ້ວທີ່ໃຊ້ກັບຜູ້ປະຕິບັດການປົກກະຕິຫຼື "ໃນເວລາທີ່ (expr1
|| expr2)".)
Smart ການແຂ່ງຂັນ ການປ່ຽນແປງ
ນັບຕັ້ງແຕ່ Perl 5.10.0, ຜູ້ພັດທະນາຂອງ Perl ໄດ້ເຮັດການປ່ຽນແປງຈໍານວນຫນຶ່ງຕໍ່ກັບການຈັບຄູ່ທີ່ສະຫຼາດ
ຜູ້ປະກອບການ. ເຫຼົ່ານີ້, ແນ່ນອນ, ຍັງປ່ຽນແປງພຶດຕິກໍາຂອງຄໍາສັ່ງສະຫຼັບບ່ອນທີ່ smart
ການຈັບຄູ່ແມ່ນຖືກນໍາໃຊ້ໂດຍ implicitly. ການປ່ຽນແປງເຫຼົ່ານີ້ຍັງໄດ້ເຮັດສໍາລັບການປ່ອຍ 5.10.1, ແລະ
ຈະຍັງຄົງຢູ່ໃນການປ່ອຍ 5.10 ຕໍ່ມາ.
ການປ່ຽນແປງ to ອີງຕາມປະເພດ ສົ່ງ
ຕົວປະຕິບັດການຈັບຄູ່ທີ່ສະຫຼາດ "~~" ແມ່ນບໍ່ເປັນການປ່ຽນແປງອີກຕໍ່ໄປ. ພຶດຕິກໍາຂອງການແຂ່ງຂັນທີ່ສະຫລາດໃນປັດຈຸບັນ
ຕົ້ນຕໍແມ່ນຂຶ້ນກັບປະເພດຂອງການໂຕ້ຖຽງມືຂວາຂອງມັນ. ຍິ່ງໄປກວ່ານັ້ນ, semantics ຂອງມັນມີ
ໄດ້ຖືກປັບໃຫ້ມີຄວາມສອດຄ່ອງ ຫຼືເປັນປະໂຫຍດຫຼາຍຂຶ້ນໃນຫຼາຍໆກໍລະນີ. ໃນຂະນະທີ່ນາຍພົນ
ຄວາມເຂົ້າກັນໄດ້ໃນດ້ານຫລັງແມ່ນຮັກສາໄວ້, ການປ່ຽນແປງຫຼາຍໆຢ່າງຕ້ອງໄດ້ຮັບການສັງເກດເຫັນ:
· ການອ້າງອິງລະຫັດທີ່ມີຕົ້ນແບບຫວ່າງເປົ່າບໍ່ໄດ້ຖືກປະຕິບັດເປັນພິເສດ. ພວກເຂົາແມ່ນ
ຜ່ານການໂຕ້ຖຽງຄືກັບການອ້າງອີງລະຫັດອື່ນໆ (ເຖິງແມ່ນວ່າພວກເຂົາເລືອກທີ່ຈະບໍ່ສົນໃຈມັນ).
· "%hash ~~ sub {}" ແລະ "@array ~~ sub {}" ຕອນນີ້ທົດສອບວ່າ subroutine ກັບຄືນຄວາມຈິງ.
ຄ່າສໍາລັບແຕ່ລະຄີຂອງ hash (ຫຼືອົງປະກອບຂອງ array), ແທນທີ່ຈະຜ່ານທັງຫມົດ
hash ຫຼື array ເປັນການອ້າງອີງເຖິງການຍ່ອຍ.
· ເນື່ອງຈາກຄວາມແຕກແຍກຂອງການປ່ຽນແປງ, ການອ້າງອີງລະຫັດຈະບໍ່ຖືກປະຕິບັດເປັນພິເສດ
ເມື່ອປາກົດຢູ່ທາງຊ້າຍຂອງຕົວປະຕິບັດການ "~~", ແຕ່ຄືກັບ scalar ທີ່ຫຍາບຄາຍ.
· "undef ~~ %hash" ແມ່ນບໍ່ຖືກຕ້ອງສະເໝີ (ເນື່ອງຈາກ "undef" ບໍ່ສາມາດເປັນກະແຈໃນ hash). ບໍ່ມີ implicit
ການປ່ຽນເປັນ "" ແມ່ນເຮັດແລ້ວ (ເຊັ່ນດຽວກັບກໍລະນີໃນ perl 5.10.0).
· "$scalar ~~ @array" ໃນປັດຈຸບັນສະເຫມີແຈກຢາຍການຈັບຄູ່ສະຫມາດໃນທົ່ວອົງປະກອບຂອງ
array. ມັນເປັນຄວາມຈິງຖ້າອົງປະກອບຫນຶ່ງໃນ @array ຢືນຢັນ "$scalar ~~ $element". ນີ້ແມ່ນ
generalization ຂອງພຶດຕິກໍາເກົ່າທີ່ທົດສອບວ່າ array ມີ
ເກັດ.
ຕາຕະລາງການຈັດສົ່ງເຕັມສໍາລັບຕົວປະຕິບັດການຈັບຄູ່ທີ່ສະຫຼາດແມ່ນໃຫ້ຢູ່ໃນ "Smart matching in
ລາຍລະອຽດ" ໃນ perlsyn.
Smart ການແຂ່ງຂັນ ແລະ ເກີນ ກຳ ລັງ
ອີງຕາມກົດລະບຽບການສົ່ງໂດຍອີງໃສ່ປະເພດການໂຕ້ຖຽງທີ່ຖືກຕ້ອງທີ່ສຸດ, ໃນເວລາທີ່ວັດຖຸ
overloading "~~" ປາກົດຢູ່ເບື້ອງຂວາຂອງຜູ້ປະຕິບັດການ, ການ overload ປົກກະຕິຈະ
ສະເຫມີຖືກເອີ້ນ (ດ້ວຍການໂຕ້ຖຽງທີ 3 ກໍານົດເປັນມູນຄ່າທີ່ແທ້ຈິງ, ເບິ່ງ overload.) ຢ່າງໃດກໍຕາມ, ເມື່ອ
ຈຸດປະສົງຈະປາກົດຢູ່ເບື້ອງຊ້າຍ, ການປົກກະຕິ overload ຈະຖືກເອີ້ນພຽງແຕ່ໃນເວລາທີ່
ການໂຕ້ຖຽງທີ່ຖືກຕ້ອງທີ່ສຸດແມ່ນ scalar ງ່າຍດາຍ. ດ້ວຍວິທີນີ້, ການແຈກຢາຍການຈັບຄູ່ທີ່ສະຫຼາດໃນທົ່ວ
arrays ບໍ່ໄດ້ຖືກແຍກ, ເຊັ່ນດຽວກັນກັບພຶດຕິກໍາອື່ນໆທີ່ມີປະເພດສະລັບສັບຊ້ອນ (coderefs,
hashes, regexes). ດັ່ງນັ້ນ, ຜູ້ຂຽນຂອງ overloading ປົກກະຕິສໍາລັບການຈັບຄູ່ smart ສ່ວນຫຼາຍແມ່ນຕ້ອງການ
ກັງວົນພຽງແຕ່ກັບການປຽບທຽບກັບ scalar, ແລະເປັນໄປໄດ້ stringification overloading;
ກໍລະນີທົ່ວໄປອື່ນໆຈະຖືກຈັດການໂດຍອັດຕະໂນມັດຢ່າງຕໍ່ເນື່ອງ.
"~~" ໃນປັດຈຸບັນຈະປະຕິເສດທີ່ຈະເຮັດວຽກກ່ຽວກັບວັດຖຸທີ່ບໍ່ overload ມັນ (ເພື່ອຫຼີກເວັ້ນການອີງໃສ່
ກ່ຽວກັບໂຄງສ້າງພື້ນຖານຂອງວັດຖຸ). (ຢ່າງໃດກໍຕາມ, if the object overloads the
stringification ຫຼືຕົວປະຕິບັດການ numification, ແລະຖ້າ overload fallback ເຮັດວຽກ, ມັນຈະ
ໃຊ້ແທນ, ຕາມປົກກະຕິ.)
ອື່ນ ໆ ອາດຈະເປັນ ບໍ່ເຂົ້າກັນ ການປ່ຽນແປງ
· ຄໍານິຍາມຂອງຄຸນສົມບັດຂອງ Unicode ຈໍານວນໜຶ່ງໄດ້ມີການປ່ຽນແປງເພື່ອໃຫ້ກົງກັບສິ່ງຂອງ
ມາດຕະຖານ Unicode ປະຈຸບັນ. ເຫຼົ່ານີ້ແມ່ນໄດ້ລະບຸໄວ້ຂ້າງເທິງພາຍໃຕ້ "Unicode overhaul". ການປ່ຽນແປງນີ້
ອາດຈະທໍາລາຍລະຫັດທີ່ຄາດວ່າຈະມີຄໍານິຍາມເກົ່າ.
· boolkeys op ໄດ້ຍ້າຍໄປຢູ່ໃນກຸ່ມຂອງ hash ops. ນີ້ທໍາລາຍຄວາມເຂົ້າກັນໄດ້ຂອງຖານສອງ.
· Filehandles ໃນປັດຈຸບັນໄດ້ຮັບພອນສະເຫມີເຂົ້າໄປໃນ "IO::File".
ພຶດຕິກໍາທີ່ຜ່ານມາແມ່ນເພື່ອອວຍພອນ Filehandles ເຂົ້າໄປໃນ FileHandle (ຊັ້ນ proxy ຫວ່າງເປົ່າ)
ຖ້າຫາກວ່າມັນໄດ້ຮັບການໂຫຼດເຂົ້າໄປໃນຄວາມຊົງຈໍາແລະບໍ່ດັ່ງນັ້ນຈະໃຫ້ພອນໃຫ້ເຂົາເຈົ້າເຂົ້າໄປໃນ "IO::Handle".
· semantics ຂອງ "ຄຸນນະສົມບັດການນໍາໃຊ້: 5.10*" ໄດ້ມີການປ່ຽນແປງເລັກນ້ອຍ. ເບິ່ງ "ໂມດູນແລະ
Pragmata" ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ.
·ຜູ້ພັດທະນາຂອງ Perl ໃນປັດຈຸບັນໃຊ້ git, ແທນທີ່ຈະ Perforce. ນີ້ຄວນຈະເປັນພາຍໃນທີ່ບໍລິສຸດ
ການປ່ຽນແປງພຽງແຕ່ກ່ຽວຂ້ອງກັບປະຊາຊົນຢ່າງຫ້າວຫັນເຮັດວຽກຢູ່ໃນຫຼັກ. ຢ່າງໃດກໍຕາມ, ທ່ານອາດຈະເຫັນ
ຄວາມແຕກຕ່າງເລັກນ້ອຍໃນ perl ເປັນຜົນມາຈາກການປ່ຽນແປງ. ສໍາລັບຕົວຢ່າງ, ໃນບາງສ່ວນຂອງ
ລາຍລະອຽດຂອງຜົນຜະລິດຂອງ "perl -V". ເບິ່ງ perlrepository ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ.
· ເປັນສ່ວນຫນຶ່ງຂອງ "Test::Harness" ການຍົກລະດັບ 2.x ເປັນ 3.x, ການທົດລອງ.
ໂມດູນ "Test::Harness::Straps" ຖືກຖອດອອກແລ້ວ. ເບິ່ງ "ໂມດູນ ແລະ Pragmata" ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ
ລາຍລະອຽດ.
· ເປັນສ່ວນຫນຶ່ງຂອງການຍົກລະດັບ "ExtUtils::MakeMaker", "ExtUtils::MakeMaker::bytes" ແລະ
ໂມດູນ "ExtUtils::MakeMaker::vmsish" ໄດ້ຖືກໂຍກຍ້າຍອອກຈາກການແຈກຢາຍນີ້.
· "ໂມດູນ::CoreList" ບໍ່ມີ %:patchlevel hash ອີກຕໍ່ໄປ.
· "ຄວາມຍາວ undef" ໃນປັດຈຸບັນກັບຄືນ undef.
· ຟັງຊັນ C API ສ່ວນຕົວທີ່ບໍ່ຮອງຮັບໃນປັດຈຸບັນໄດ້ຖືກປະກາດວ່າ "static" ເພື່ອປ້ອງກັນການຮົ່ວໄຫລໄປຫາ
API ສາທາລະນະຂອງ Perl.
·ເພື່ອສະຫນັບສະຫນູນຂະບວນການ bootstrapping, miniperl ບໍ່ໄດ້ສ້າງຂຶ້ນດ້ວຍການສະຫນັບສະຫນູນ UTF-8 ໃນ
ເຄື່ອງຈັກ regexp.
ນີ້ອະນຸຍາດໃຫ້ການກໍ່ສ້າງສໍາເລັດດ້ວຍຊຸດ PERL_UNICODE ແລະ UTF-8 locale. ໂດຍບໍ່ມີການ
ນີ້ມີບັນຫາ bootstrapping, ເນື່ອງຈາກວ່າ miniperl ບໍ່ສາມາດໂຫຼດອົງປະກອບ UTF-8 ຂອງ
ເຄື່ອງຈັກ regexp, ເພາະວ່າພວກມັນຍັງບໍ່ໄດ້ສ້າງເທື່ອ.
· miniperl's @INC ຕອນນີ້ຖືກຈຳກັດໃຫ້ພຽງແຕ່ "-I...", ການແບ່ງປັນຂອງ $ENV{PERL5LIB}, ແລະ
""."
· ຕອນນີ້ຕ້ອງການຍະຫວ່າງ ຫຼືແຖວໃໝ່ຫຼັງຈາກຄຳສັ່ງ "#line XXX".
· Tied filehandles ໃນປັດຈຸບັນມີວິທີການເພີ່ມເຕີມ EOF ທີ່ສະຫນອງປະເພດ EOF.
· ເພື່ອໃຫ້ກົງກັບຄຳຖະແຫຼງການຄວບຄຸມການໄຫຼເຂົ້າອື່ນໆທີ່ດີຂຶ້ນ, "foreach" ອາດຈະບໍ່ຖືກໃຊ້ເປັນ
ຄຸນລັກສະນະ.
· ສະຫຼັບເສັ້ນຄຳສັ່ງ "-P" ຂອງ Perl ເຊິ່ງຖືກຍົກເລີກໃນເວີຊັນ 5.10.0, ດຽວນີ້ໄດ້ເປັນ
ເອົາອອກ. ໂມດູນ CPAN "Filter::cpp" ສາມາດໃຊ້ເປັນທາງເລືອກ.
ປະຕິເສດ
ບາງຄັ້ງ, ນັກພັດທະນາຂອງ Perl ພົບວ່າມັນມີຄວາມຈໍາເປັນທີ່ຈະປະຕິເສດຄຸນສົມບັດຫຼືໂມດູນ
ພວກເຮົາໄດ້ຈັດສົ່ງໃນເມື່ອກ່ອນເປັນສ່ວນຫນຶ່ງຂອງການແຈກຢາຍຫຼັກ. ພວກເຮົາຮູ້ດີກ່ຽວກັບຄວາມເຈັບປວດ
ແລະຄວາມອຸກອັ່ງທີ່ການປ່ຽນແປງທີ່ກົງກັນຂ້າມກັບ Perl ສາມາດເຮັດໃຫ້ນັກພັດທະນາ
ການກໍ່ສ້າງຫຼືການຮັກສາຊອບແວໃນ Perl. ເຈົ້າສາມາດໝັ້ນໃຈໄດ້ວ່າເມື່ອພວກເຮົາຄັດຄ້ານ a
ຟັງຊັນ ຫຼື syntax, ມັນບໍ່ແມ່ນທາງເລືອກທີ່ພວກເຮົາເຮັດແບບເບົາໆ. ບາງຄັ້ງ, ພວກເຮົາເລືອກທີ່ຈະ
ປະຕິເສດການທໍາງານ ຫຼື syntax ເນື່ອງຈາກວ່າມັນໄດ້ຖືກພົບເຫັນວ່າຖືກອອກແບບບໍ່ດີ ຫຼື
ປະຕິບັດ. ບາງຄັ້ງ, ນີ້ແມ່ນຍ້ອນວ່າເຂົາເຈົ້າກໍາລັງຖືກັບຄືນໄປບ່ອນລັກສະນະອື່ນໆຫຼືເຮັດໃຫ້ເກີດ
ບັນຫາການປະຕິບັດ. ບາງຄັ້ງ, ເຫດຜົນແມ່ນສັບສົນຫຼາຍ. ບ່ອນໃດກໍ່ຕາມທີ່ເປັນໄປໄດ້, ພວກເຮົາພະຍາຍາມ
ເພື່ອຮັກສາຟັງຊັນທີ່ຖືກຍົກເລີກໃຫ້ຜູ້ພັດທະນາຢູ່ໃນຮູບແບບກ່ອນໜ້າຂອງມັນຢ່າງໜ້ອຍ
ການປ່ອຍທີ່ສໍາຄັນຫນຶ່ງ. ຕາບໃດທີ່ຄຸນສົມບັດທີ່ຖືກຍົກເລີກບໍ່ໄດ້ລົບກວນຄວາມສາມາດຂອງພວກເຮົາຢ່າງຈິງຈັງ
ເພື່ອຮັກສາແລະຂະຫຍາຍ Perl, ພວກເຮົາຈະພະຍາຍາມປ່ອຍໃຫ້ມັນຢູ່ໃນສະຖານທີ່ດົນເທົ່າທີ່ເປັນໄປໄດ້.
ລາຍການຕໍ່ໄປນີ້ຖືກຍົກເລີກໃນປັດຈຸບັນ:
suidperl
"suidperl" ບໍ່ແມ່ນສ່ວນຫນຶ່ງຂອງ Perl ອີກຕໍ່ໄປ. ມັນໃຊ້ເພື່ອສະຫນອງກົນໄກເພື່ອເຮັດຕາມແບບຢ່າງ setuid
ບິດການອະນຸຍາດໃນລະບົບທີ່ບໍ່ຮອງຮັບມັນຢ່າງຖືກຕ້ອງ.
ການໃຊ້ ":=" ເພື່ອໝາຍເຖິງລາຍການຄຸນສົມບັດທີ່ຫວ່າງເປົ່າ
ອຸບັດເຫດຂອງ parser ຂອງ Perl ຫມາຍຄວາມວ່າການກໍ່ສ້າງເຫຼົ່ານີ້ແມ່ນທັງຫມົດທຽບເທົ່າ:
$pi ຂອງຂ້ອຍ := 4;
$pi ຂອງຂ້ອຍ : = 4;
$pi ຂອງຂ້ອຍ : = 4;
ກັບ ":" ຖືກປະຕິບັດເປັນການເລີ່ມຕົ້ນຂອງບັນຊີລາຍຊື່ຄຸນລັກສະນະ, ເຊິ່ງສິ້ນສຸດກ່ອນ
"=". ເນື່ອງຈາກຊ່ອງຫວ່າງບໍ່ສຳຄັນຢູ່ບ່ອນນີ້, ທັງໝົດຈະຖືກວິເຄາະເປັນລາຍການຄຸນສົມບັດຫວ່າງເປົ່າ,
ເພາະ ສະ ນັ້ນ ທັງ ຫມົດ ຂ້າງ ເທິງ ນີ້ ແມ່ນ ທຽບ ເທົ່າ ກັບ, ແລະ ລາຍ ລັກ ອັກ ສອນ ທີ່ ດີກ ວ່າ ເປັນ
$pi ຂອງຂ້ອຍ = 4;
ເນື່ອງຈາກວ່າບໍ່ມີການປະມວນຜົນຄຸນສົມບັດແມ່ນເຮັດສໍາລັບບັນຊີລາຍຊື່ເປົ່າ.
ເຊັ່ນດຽວກັບ, ນີ້ຫມາຍຄວາມວ່າ ":=" ບໍ່ສາມາດໃຊ້ເປັນ token ໃຫມ່, ໂດຍບໍ່ມີການປ່ຽນແປງຢ່າງງຽບໆ
ຄວາມຫມາຍຂອງລະຫັດທີ່ມີຢູ່ແລ້ວ. ດັ່ງນັ້ນ ແບບຟອມສະເພາະນັ້ນຈຶ່ງຖືກຍົກເລີກໃນປັດຈຸບັນ, ແລະຈະ
ກາຍເປັນ syntax ຜິດພາດ. ຖ້າມີຄວາມຈໍາເປັນແທ້ໆທີ່ຈະມີລາຍການຄຸນລັກສະນະຫວ່າງເປົ່າ
(ຕົວຢ່າງ, ເນື່ອງຈາກເຄື່ອງສ້າງລະຫັດ) ຫຼັງຈາກນັ້ນຫຼີກເວັ້ນການເຕືອນໂດຍການເພີ່ມພື້ນທີ່
ກ່ອນ "=".
"UNIVERSAL->ນໍາເຂົ້າ()"
ຕອນນີ້ວິທີການ "UNIVERSAL->import()" ຖືກຍົກເລີກແລ້ວ. ຄວາມພະຍາຍາມທີ່ຈະຜ່ານການນໍາເຂົ້າ
ການໂຕ້ຖຽງຕໍ່ຄໍາຖະແຫຼງທີ່ "ໃຊ້ UNIVERSAL" ຈະສົ່ງຜົນໃຫ້ມີການເຕືອນໄພການຍົກເລີກ.
ການນໍາໃຊ້ "goto" ເພື່ອເຕັ້ນໄປຫາການກໍ່ສ້າງ
ການໃຊ້ "goto" ເພື່ອໂດດຈາກຂອບເຂດນອກໄປສູ່ຂອບເຂດພາຍໃນແມ່ນໄດ້ຖືກຍົກເລີກແລ້ວ. ນີ້
ກໍລະນີການນໍາໃຊ້ທີ່ຫາຍາກແມ່ນເຮັດໃຫ້ເກີດບັນຫາໃນການປະຕິບັດຂອບເຂດ.
ຊື່ຕົວອັກສອນແບບກຳນົດເອງໃນ \N{name} ທີ່ບໍ່ຄືກັບຊື່
ໃນ "\N{ຊື່}", ຊື່ ສາມາດເປັນພຽງແຕ່ກ່ຽວກັບຫຍັງ. ຊື່ Unicode ມາດຕະຖານມີຫຼາຍຢ່າງ
ໂດເມນຈໍາກັດ, ແຕ່ນັກແປຊື່ທີ່ກໍາຫນົດເອງສາມາດສ້າງຊື່ທີ່ເປັນ, ສໍາລັບການຍົກຕົວຢ່າງ,
ປະກອບດ້ວຍເຄື່ອງໝາຍວັກຕອນທັງໝົດ. ຕອນນີ້ມັນຖືກປະຕິເສດເພື່ອສ້າງຊື່ທີ່ບໍ່ມີ
ເລີ່ມຕົ້ນດ້ວຍຕົວໜັງສື, ແລະບໍ່ແມ່ນຕົວໜັງສື ຫຼື ມີຕົວອັກສອນອື່ນນອກເໜືອໄປຈາກ a
ຕົວອັກສອນອື່ນໆໜ້ອຍຫຼາຍ, ຄື ຍະຫວ່າງ, ຂີດຕໍ່, ວົງເລັບ ແລະຈໍ້າສອງເມັດ. ເພາະວ່າ
ຄວາມໝາຍເພີ່ມຂອງ "\N" (ເບິ່ງ ""\N" ການທົດລອງ regex escape"), ຊື່ທີ່ຄ້າຍຄື
curly brace -enclosed quantifiers ຈະບໍ່ເຮັດວຽກ. ຕົວຢ່າງ, "\N{3,4}" ຕອນນີ້ໝາຍເຖິງ
ຈັບຄູ່ 3 ຫາ 4 ທີ່ບໍ່ແມ່ນສາຍໃຫມ່; ກ່ອນທີ່ຊື່ "3,4" ສາມາດຖືກສ້າງຂື້ນ.
ໂມດູນທີ່ຄັດຄ້ານ
ໂມດູນຕໍ່ໄປນີ້ຈະຖືກລຶບອອກຈາກການແຈກຢາຍຫຼັກໃນການປ່ອຍໃນອະນາຄົດ,
ແລະຄວນຈະຖືກຕິດຕັ້ງຈາກ CPAN ແທນ. ການແຜ່ກະຈາຍຢູ່ໃນ CPAN ທີ່ຕ້ອງການເຫຼົ່ານີ້
ຄວນເພີ່ມພວກມັນເຂົ້າໃນເງື່ອນໄຂເບື້ອງຕົ້ນຂອງພວກເຂົາ. ສະບັບຫຼັກຂອງໂມດູນເຫຼົ່ານີ້ເຕືອນ
ຈະອອກຄໍາເຕືອນການຫຼຸດການສະຫມັກ.
ຖ້າທ່ານສົ່ງຊຸດ Perl ສະບັບ, ບໍ່ວ່າຈະຢູ່ຄົນດຽວຫຼືເປັນສ່ວນຫນຶ່ງຂອງລະບົບທີ່ໃຫຍ່ກວ່າ,
ຫຼັງຈາກນັ້ນ, ທ່ານຄວນພິຈາລະນາຢ່າງລະອຽດກ່ຽວກັບຜົນສະທ້ອນຂອງການປະຕິເສດໂມດູນຫຼັກ. ເຈົ້າ
ອາດຈະຕ້ອງການທີ່ຈະພິຈາລະນາການຂົນສົ່ງເລີ່ມຕົ້ນ Perl ຂອງທ່ານກັບຊຸດສໍາລັບບາງຫຼືທັງຫມົດ
ໂມດູນທີ່ຖືກຍົກເລີກທີ່ຕິດຕັ້ງເຂົ້າໄປໃນ "ຜູ້ຂາຍ" ຫຼື "ເວັບໄຊ" ໄດເລກະທໍລີ perl.
ນີ້ຈະຍັບຍັ້ງການເຕືອນໄພການປະຕິເສດ.
ອີກທາງເລືອກ, ທ່ານອາດຈະຕ້ອງການພິຈາລະນາການ patching lib/deprecate.pm ໃຫ້
ຄໍາເຕືອນ deprecation ໂດຍສະເພາະກັບລະບົບການຫຸ້ມຫໍ່ຂອງທ່ານຫຼືການແຈກຢາຍ Perl,
ສອດຄ່ອງກັບວິທີການທີ່ລະບົບການຫຸ້ມຫໍ່ຫຼືການແຈກຢາຍຂອງທ່ານຄຸ້ມຄອງການຫັນປ່ຽນເປັນຂັ້ນຕອນ
ຈາກການປ່ອຍທີ່ການຕິດຕັ້ງຊຸດດຽວສະຫນອງການໃຫ້
ການທໍາງານ, ກັບການປ່ອຍຕໍ່ມາທີ່ຜູ້ເບິ່ງແຍງລະບົບຕ້ອງການຮູ້
ຕິດຕັ້ງຫຼາຍແພັກເກັດເພື່ອໃຫ້ໄດ້ຟັງຊັນດຽວກັນນັ້ນ.
ທ່ານສາມາດປິດສຽງການແຈ້ງເຕືອນການຫຼຸດຜ່ອນການເຫຼົ່ານີ້ໂດຍການຕິດຕັ້ງໂມດູນທີ່ເປັນຄໍາຖາມຈາກ
CPAN. ເພື່ອຕິດຕັ້ງເວີຊັນຫຼ້າສຸດຂອງພວກມັນທັງໝົດ, ພຽງແຕ່ຕິດຕັ້ງ
"Task::Deprecations::5_12".
ຫ້ອງຮຽນ::ISA
Pod::Plainer
Shell
Switch
ສະວິດແມ່ນ buggy ແລະຄວນຈະຫຼີກເວັ້ນ. ທ່ານອາດຈະຊອກຫາ "ໃຫ້" / "ເມື່ອ" ຂອງ Perl.
ມີການທົດແທນທີ່ເຫມາະສົມ. ເບິ່ງ "Switch statements" ໃນ perlsyn ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ
ຂໍ້ມູນຂ່າວສານ.
ການມອບໝາຍໃຫ້ $[
ການນໍາໃຊ້ຄຸນລັກສະນະ :locked on subroutines
ການນໍາໃຊ້ "ລັອກ" ກັບຄຸນລັກສະນະ pragma
ການນໍາໃຊ້ "ເປັນເອກະລັກ" ກັບຄຸນລັກສະນະ pragma
Perl_pmflag
"Perl_pmflag" ບໍ່ແມ່ນສ່ວນຫນຶ່ງຂອງ API ສາທາລະນະຂອງ Perl ອີກຕໍ່ໄປ. ໂທຫາມັນໃນປັດຈຸບັນສ້າງ a
ຄໍາເຕືອນການຍົກເລີກການປະຕິເສດ, ແລະມັນຈະຖືກລຶບອອກໃນການປ່ອຍໃນອະນາຄົດ. ເຖິງແມ່ນວ່າໄດ້ລະບຸໄວ້ເປັນ
ສ່ວນຫນຶ່ງຂອງ API, ມັນບໍ່ເຄີຍຖືກບັນທຶກໄວ້, ແລະພຽງແຕ່ເຄີຍໃຊ້ໃນ toke.c, ແລະກ່ອນ
5.10, regcomp.c. ໃນຫຼັກ, ມັນໄດ້ຖືກທົດແທນໂດຍຫນ້າທີ່ຄົງທີ່.
ຫໍສະໝຸດ 4 ຍຸກ Perl ຈໍານວນຫລາຍ
termcap.pl, tainted.pl, stat.pl, shellwords.pl, pwd.pl, open3.pl, open2.pl,
newgettopt.pl, look.pl, find.pl, finddepth.pl, importenv.pl, hostname.pl, getopts.pl,
getopt.pl, getcwd.pl, flush.pl, fastcwd.pl, exceptions.pl, ctime.pl, complete.pl,
cacheout.pl, bigrat.pl, bigint.pl, bigfloat.pl, assert.pl, abbrev.pl, dotsh.pl, ແລະ
timelocal.pl ທັງໝົດຕອນນີ້ຖືກປະຕິເສດແລ້ວ. ກ່ອນຫນ້ານີ້, ຜູ້ພັດທະນາຂອງ Perl ມີຈຸດປະສົງທີ່ຈະເອົາອອກ
ຫ້ອງສະຫມຸດເຫຼົ່ານີ້ຈາກຫຼັກຂອງ Perl ສໍາລັບການປ່ອຍ 5.14.0.
ໃນລະຫວ່າງການທົດສອບສຸດທ້າຍກ່ອນການປ່ອຍ 5.12.0, ນັກພັດທະນາຫຼາຍຄົນໄດ້ຄົ້ນພົບ
ລະຫັດການຜະລິດໃນປັດຈຸບັນການນໍາໃຊ້ຫ້ອງສະຫມຸດວັດຖຸບູຮານເຫຼົ່ານີ້, ບາງຢູ່ໃນຫຼັກ Perl
ຕົວຂອງມັນເອງ. ຕາມນັ້ນແລ້ວ, ການປຸ້ນຈີ້ໄດ້ອະນຸຍາດໃຫ້ເຂົາເຈົ້າຢູ່ໃນການປະຫານຊີວິດ. ພວກເຂົາຈະເລີ່ມຕົ້ນ
ເພື່ອເຕືອນກ່ຽວກັບການປະຕິເສດຂອງພວກເຂົາໃນການປ່ອຍ 5.14.0 ແລະຈະຖືກໂຍກຍ້າຍອອກໃນ
ລຸ້ນ 5.16.0.
Unicode overhaul
ຜູ້ພັດທະນາຂອງ Perl ໄດ້ພະຍາຍາມຮ່ວມກັນເພື່ອປັບປຸງ Perl ໃຫ້ສອດຄ່ອງກັບ
ມາດຕະຖານ Unicode ຫຼ້າສຸດ. ການປ່ຽນແປງສໍາລັບການນີ້ປະກອບມີ:
ດຽວນີ້ Perl ສາມາດຈັດການທຸກຄຸນສົມບັດຕົວອັກສອນ Unicode. ເອກະສານໃຫມ່, perluniprops,
ບອກຄຸນສົມບັດຕົວອັກສອນທີ່ບໍ່ແມ່ນ Unihan ທັງໝົດ. ໂດຍຄ່າເລີ່ມຕົ້ນ, perl ບໍ່ໄດ້ເປີດເຜີຍ
Unihan, ຄັດຄ້ານ ຫຼືຄຸນສົມບັດພາຍໃນຂອງ Unicode. ເບິ່ງຂ້າງລຸ່ມນີ້ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບການເຫຼົ່ານີ້;
ນອກນັ້ນຍັງມີພາກສ່ວນໜຶ່ງໃນຝັກທີ່ບອກເຂົາເຈົ້າ, ແລະອະທິບາຍວ່າເປັນຫຍັງພວກມັນບໍ່ຖືກເປີດເຜີຍ.
ໃນປັດຈຸບັນ Perl ສະຫນັບສະຫນູນຢ່າງເຕັມສ່ວນຮູບແບບປະສົມຂອງ Unicode ຂອງການໃຊ້ "=" ແລະ ":" ໃນການຂຽນແບບປົກກະຕິ
expressions: "\p{property=value}" ແລະ "\p{property:value}" (ທັງສອງອັນນີ້ມີຄວາມໝາຍຄືກັນ.
ສິ່ງ).
ໃນປັດຈຸບັນ Perl ສະຫນັບສະຫນູນຢ່າງເຕັມສ່ວນກົດລະບຽບການຈັບຄູ່ Unicode ວ່າງສໍາລັບຂໍ້ຄວາມລະຫວ່າງ braces ໃນ
"\p{...}" ກໍ່ສ້າງ. ນອກຈາກນັ້ນ, Perl ອະນຸຍາດໃຫ້ underscores ລະຫວ່າງຕົວເລກຂອງຕົວເລກ.
ດຽວນີ້ Perl ຍອມຮັບທຸກຄໍາສັບຄ້າຍຄືກັນທີ່ກໍານົດໂດຍ Unicode ສໍາລັບຄຸນສົມບັດແລະມູນຄ່າຊັບສິນ.
"qr/\X/", ເຊິ່ງກົງກັບຕົວອັກສອນທີ່ມີເຫດຜົນຂອງ Unicode, ໄດ້ຖືກຂະຫຍາຍໃຫ້ເຮັດວຽກໄດ້ດີຂຶ້ນ
ພາສາອາຊີຕ່າງໆ. ໃນປັດຈຸບັນມັນຖືກກໍານົດເປັນ ຂະຫຍາຍ grapheme ກຸ່ມ, (ເບິ່ງ
<http://www.unicode.org/reports/tr29/>). ສິ່ງໃດທີ່ກົງກັນໃນເມື່ອກ່ອນ ແລະມັນມີຄວາມໝາຍ
ຈະສືບຕໍ່ໄດ້ຮັບການຍອມຮັບ. ນອກຈາກນັ້ນ:
· "\X" ຈະບໍ່ແຍກລໍາດັບ "CR LF".
· ດຽວນີ້ "\X" ຈະກົງກັບລຳດັບເຊິ່ງລວມມີຕົວອັກສອນ "ZWJ" ແລະ "ZWNJ".
· ດຽວນີ້ "\X" ຈະກົງກັບຢ່າງໜ້ອຍໜຶ່ງຕົວອັກສອນ, ລວມທັງເຄື່ອງໝາຍເບື້ອງຕົ້ນ. ເຄື່ອງຫມາຍ
ໂດຍທົ່ວໄປແລ້ວແມ່ນມາຈາກຕົວອັກສອນພື້ນຖານ, ແຕ່ມັນເປັນໄປໄດ້ໃນ Unicode ທີ່ຈະໃຫ້ພວກມັນເຂົ້າ
ການໂດດດ່ຽວ, ແລະ "\X" ຕອນນີ້ຈະຈັດການກັບກໍລະນີນັ້ນ, ຕົວຢ່າງໃນຕອນຕົ້ນຂອງແຖວ,
ຫຼືຫຼັງຈາກ "ZWSP". ແລະນີ້ແມ່ນສ່ວນທີ່ "\X" ບໍ່ກົງກັບສິ່ງທີ່ມັນ
ເຄີຍໃຊ້ມັນບໍ່ມີຄວາມຫມາຍ. ໃນເມື່ອກ່ອນ, ສໍາລັບການຍົກຕົວຢ່າງ, ທ່ານສາມາດມີ nonsensical ໄດ້
ກໍລະນີຂອງ LF ສໍານຽງ.
· ດຽວນີ້ "\X" ຈະກົງກັບລຳດັບພະຍາງ Hangul (ພາສາເກົາຫຼີ) ແລະ ໄທ ແລະ ລາວ.
ກໍລະນີຍົກເວັ້ນ.
ຖ້າບໍ່ດັ່ງນັ້ນ, ການປ່ຽນແປງນີ້ຄວນຈະມີຄວາມໂປ່ງໃສສໍາລັບພາສາທີ່ບໍ່ໄດ້ຮັບຜົນກະທົບ.
"\p{...}" ການຈັບຄູ່ໂດຍໃຊ້ຄຸນສົມບັດ Canonical_Combining_Class ຖືກແຍກອອກຢ່າງສົມບູນ
ການປ່ອຍຕົວທີ່ຜ່ານມາຂອງ Perl. ດຽວນີ້ພວກເຂົາຄວນເຮັດວຽກຢ່າງຖືກຕ້ອງ.
ກ່ອນ Perl 5.12, ຄຸນສົມບັດ Unicode "Decomposition_Type=Compat" ແລະສ່ວນຂະຫຍາຍ Perl
ມີຊື່ດຽວກັນ, ເຊິ່ງເຮັດໃຫ້ບໍ່ກົງກັບຄ່າທີ່ຖືກຕ້ອງທັງໝົດ (ມີຫຼາຍກວ່າ
100 ຄວາມຜິດພາດໃນຫນຶ່ງ, ແລະຫຼາຍພັນໃນອື່ນໆ). ການຂະຫຍາຍ Perl ໄດ້ໃນປັດຈຸບັນ
ປ່ຽນຊື່ເປັນ "Decomposition_Type=Noncanonical" (ສັ້ນ: "dt=noncanon"). ມັນມີຄືກັນ
ຄວາມ ໝາຍ ດັ່ງທີ່ມີຈຸດປະສົງໃນເມື່ອກ່ອນ, ຄືສະຫະພັນຂອງທຸກຄົນທີ່ບໍ່ແມ່ນ canonical
ປະເພດຂອງການຍ່ອຍສະຫຼາຍ, ດ້ວຍ Unicode "Compat" ແມ່ນພຽງແຕ່ຫນຶ່ງໃນນັ້ນ.
"\p{Decomposition_Type=Canonical}" ໃນປັດຈຸບັນປະກອບມີພະຍາງ Hangul.
"\p{ຕົວພິມໃຫຍ່}" ແລະ "\p{ຕົວພິມນ້ອຍ}" ດຽວນີ້ເຮັດວຽກໄດ້ຕາມມາດຕະຖານ Unicode ບອກວ່າຄວນ.
ນີ້ຫມາຍຄວາມວ່າພວກເຂົາແຕ່ລະກົງກັບຕົວອັກສອນຫຼາຍກວ່າທີ່ພວກເຂົາເຄີຍໃຊ້.
ດຽວນີ້ "\p{Cntrl}" ກົງກັບຕົວອັກສອນດຽວກັນກັບ "\p{Control}". ນີ້ຫມາຍຄວາມວ່າມັນຈະບໍ່ມີຕໍ່ໄປອີກແລ້ວ
ຈັບຄູ່ການນໍາໃຊ້ສ່ວນຕົວ (gc=co), ຕົວແທນ (gc=cs), ຫຼືຮູບແບບ (gc=cf) ຈຸດລະຫັດ. ຮູບແບບ
ຈຸດລະຫັດເປັນຕົວແທນຂອງບັນຫາທີ່ໃຫຍ່ທີ່ສຸດທີ່ເປັນໄປໄດ້. ທັງຫມົດແຕ່ 36 ຂອງເຂົາເຈົ້າແມ່ນທັງຫມົດ
ປະຕິເສດຢ່າງເປັນທາງການ ຫຼືຖືກທໍ້ຖອຍຢ່າງແຮງຈາກການນຳໃຊ້. ໃນຈໍານວນ 36 ຄົນນັ້ນ, ອາດຈະເປັນ
ຖືກນໍາໃຊ້ຢ່າງກວ້າງຂວາງທີ່ສຸດແມ່ນຍັບຍັ້ງອ່ອນ (U+00AD), ແລະ BOM, ZWSP, ZWNJ, WJ, ແລະຄ້າຍຄືກັນ.
ຕົວອັກສອນ, ບວກກັບການຄວບຄຸມ bidirectional.
ດຽວນີ້ "\p{Alpha}" ກົງກັບຕົວອັກສອນດຽວກັນກັບ "\p{Alphabetic}". ກ່ອນ 5.12, Perl's
ຄໍານິຍາມລວມເອົາບາງສິ່ງທີ່ບໍ່ແມ່ນອັນຟາ (ເຄື່ອງໝາຍທັງໝົດ) ໃນຂະນະທີ່ຍົກເລີກ
ຈໍານວນຫຼາຍທີ່ໄດ້. ຄໍານິຍາມຂອງ "\p{Alnum}" ແລະ "\p{Word}" ແມ່ນຂຶ້ນກັບຄໍານິຍາມຂອງ Alpha
ແລະໄດ້ມີການປ່ຽນແປງຕາມຄວາມເຫມາະສົມ.
"\p{Word}" ບໍ່ຖືກກົງກັບຕົວອັກສອນທີ່ບໍ່ແມ່ນຄໍາສັບເຊັ່ນ: ເສດສ່ວນ.
"\p{Print}" ບໍ່ກົງກັບຕົວອັກສອນຄວບຄຸມເສັ້ນ: Tab, LF, CR, FF, VT, ແລະ NEL.
ນີ້ເຮັດໃຫ້ສອດຄ່ອງກັບມາດຕະຖານແລະເອກະສານ.
ດຽວນີ້ "\p{XDigit}" ກົງກັບຕົວອັກສອນດຽວກັນກັບ "\p{Hex_Digit}". ນີ້ຫມາຍຄວາມວ່າໃນ
ນອກເຫນືອໄປຈາກຕົວອັກສອນທີ່ມັນກົງກັນໃນປັດຈຸບັນ, "[A-Fa-f0-9]", ມັນຍັງຈະກົງກັບ 22 ຕົວອັກສອນ.
ການທຽບເທົ່າເຕັມຄວາມກວ້າງ, ຕົວຢ່າງ U+FF10: FULLWIDTH DIGIT ZERO.
ຄຸນສົມບັດປະເພດຕົວເລກໄດ້ຖືກຂະຫຍາຍໃຫ້ປະກອບມີຕົວອັກສອນ Unihan.
ມີການຂະຫຍາຍ Perl ໃຫມ່, ຄຸນສົມບັດ 'Present_In', ຫຼືພຽງແຕ່ 'In', ຊັບສິນ. ນີ້ແມ່ນ
ສ່ວນຂະຫຍາຍຂອງຄຸນສົມບັດ Unicode Age, ແຕ່ "\p{In=5.0}" ກົງກັບຈຸດລະຫັດໃດໆກໍຕາມທີ່ມີການນຳໃຊ້
ໄດ້ຖືກກໍານົດ as of ເວີຊັ່ນ Unicode 5.0. "\p{Age=5.0}" ກົງກັບຈຸດລະຫັດເທົ່ານັ້ນ
ເພີ່ມເຂົ້າໃນ ຢ່າງຊັດເຈນ ສະບັບ 5.0.
ຄຸນສົມບັດຈຳນວນໜຶ່ງໃນປັດຈຸບັນມີຄ່າທີ່ຖືກຕ້ອງສຳລັບຈຸດລະຫັດທີ່ບໍ່ໄດ້ມອບໝາຍ. ໄດ້
ຄຸນສົມບັດທີ່ໄດ້ຮັບຜົນກະທົບແມ່ນ Bidi_Class, East_Asian_Width, Joining_Type, Decomposition_Type,
Hangul_Syllable_Type, Numeric_Type, ແລະ Line_Break.
ຄຸນສົມບັດ Default_Ignorable_Code_Point, ID_Continue, ແລະ ID_Start ຕອນນີ້ອັບເດດແລ້ວ.
ກັບຄໍານິຍາມ Unicode ໃນປັດຈຸບັນ.
ຮຸ່ນກ່ອນຫນ້າຂອງ Perl ໄດ້ເປີດເຜີຍຄຸນສົມບັດບາງຢ່າງທີ່ຄາດວ່າຈະເປັນ.
Unicode ພາຍໃນເທົ່ານັ້ນ. ການນໍາໃຊ້ເຫຼົ່ານີ້ໃນການສະແດງອອກປົກກະຕິໃນປັດຈຸບັນຈະສ້າງ, ຖ້າຫາກວ່າເປີດໃຊ້ງານ,
ຂໍ້ຄວາມເຕືອນການຍົກເລີກການປະຕິເສດ. ຄຸນສົມບັດແມ່ນ: Other_Alphabetic,
Other_Default_Ignorable_Code_Point, Other_Grapheme_Extend, Other_ID_Continue,
Other_ID_Start, Other_Lowercase, Other_Math, ແລະ Other_Uppercase.
ດຽວນີ້ມັນເປັນໄປໄດ້ທີ່ຈະປ່ຽນຄຸນສົມບັດຂອງ Unicode ທີ່ Perl ເຂົ້າໃຈໃນ per-
ພື້ນຖານການຕິດຕັ້ງ. ດັ່ງທີ່ໄດ້ກ່າວມາຂ້າງເທິງ, ຄຸນສົມບັດບາງຢ່າງຖືກປິດໄວ້ໂດຍຄ່າເລີ່ມຕົ້ນ.
ເຫຼົ່ານີ້ລວມມີຄຸນສົມບັດ Unihan ທັງຫມົດ (ເຊິ່ງຄວນຈະເຂົ້າເຖິງໄດ້ຜ່ານໂມດູນ CPAN
Unicode::Unihan) ແລະຊັບສິນພາຍໃນເທົ່ານັ້ນທີ່ຖືກປະຕິເສດຫຼື Unicode ທີ່ Perl ບໍ່ເຄີຍມີ
ຊູນ.
ໄຟລ໌ທີ່ສ້າງຂຶ້ນໃນໄດເລກະທໍລີ "lib/unicore/To" ປະຈຸບັນຖືກໝາຍຢ່າງຈະແຈ້ງກວ່າ
ຄວາມໝັ້ນຄົງ, ນຳໃຊ້ໂດຍກົງໂດຍແອັບພລິເຄຊັນ. ລາຍການ hash ໃຫມ່ໃນພວກມັນໃຫ້ຮູບແບບຂອງ
ລາຍການປົກກະຕິ, ເຊິ່ງຊ່ວຍໃຫ້ການແຍກເຄື່ອງຈັກງ່າຍຂຶ້ນ. Perl ສາມາດສ້າງໄຟລ໌ໃນນີ້
ໄດເລກະທໍລີສໍາລັບຊັບສິນໃດກໍ່ຕາມ, ເຖິງແມ່ນວ່າສ່ວນໃຫຍ່ແມ່ນຖືກສະກັດກັ້ນ. ທ່ານສາມາດຊອກຫາຄໍາແນະນໍາສໍາລັບ
ການປ່ຽນແປງທີ່ຖືກຂຽນໄວ້ໃນ perluniprops.
ໂມດູນ ແລະ ປາກເວົ້າ
ໃຫມ່ ໂມດູນ ແລະ ປາກເວົ້າ
"autodie"
"autodie" ເປັນທາງເລືອກທີ່ມີຂອບເຂດໃຫມ່ສໍາລັບໂມດູນ "Fatal". ມັດໄວ້
ເວີຊັ່ນແມ່ນ 2.06_01. ໃຫ້ສັງເກດວ່າໃນການປ່ອຍນີ້, ການນໍາໃຊ້ string evaal ໃນເວລາທີ່ "autodie" ແມ່ນ
ໃນຜົນກະທົບສາມາດເຮັດໃຫ້ພຶດຕິກໍາ autodie ຮົ່ວເຂົ້າໄປໃນຂອບເຂດອ້ອມຂ້າງ. ເບິ່ງ
"BUGS" ໃນ autodie ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ.
ເວີຊັ່ນ 2.06_01 ໄດ້ຖືກເພີ່ມໃສ່ Perl core ແລ້ວ.
"ບີບອັດ::Raw::Bzip2"
ເວີຊັນ 2.024 ໄດ້ຖືກເພີ່ມໃສ່ Perl core.
"ການໂຫຼດເກີນ"
"ການໂຫຼດເກີນ" ອະນຸຍາດໃຫ້ທ່ານສາມາດປິດການທໍາງານຂອງ lexically ຫຼືເຮັດໃຫ້ການໂຫຼດເກີນສໍາລັບບາງຫຼືທັງຫມົດ
ການປະຕິບັດງານ.
ເວີຊັນ 0.001 ໄດ້ຖືກເພີ່ມໃສ່ Perl core.
"ພໍ່ແມ່"
"ພໍ່ແມ່" ສ້າງຄວາມສໍາພັນ ISA ກັບຫ້ອງຮຽນພື້ນຖານໃນເວລາລວບລວມ. ມັນ
ສະຫນອງລັກສະນະທີ່ສໍາຄັນຂອງ "ພື້ນຖານ" ໂດຍບໍ່ມີການປະພຶດທີ່ບໍ່ຕ້ອງການຕື່ມອີກ.
ເວີຊັນ 0.223 ໄດ້ຖືກເພີ່ມໃສ່ Perl core.
"parse::CPAN::Meta"
ເວີຊັນ 1.40 ໄດ້ຖືກເພີ່ມໃສ່ Perl core.
"VMS::DCLsym"
ເວີຊັນ 1.03 ໄດ້ຖືກເພີ່ມໃສ່ Perl core.
"VMS::Stdio"
ເວີຊັນ 2.4 ໄດ້ຖືກເພີ່ມໃສ່ Perl core.
"XS::APItest::KeywordRPN"
ເວີຊັນ 0.003 ໄດ້ຖືກເພີ່ມໃສ່ Perl core.
ການປັບປຸງ ປາກເວົ້າ
"ພື້ນຖານ"
ອັບເກຣດຈາກເວີຊັ່ນ 2.13 ເປັນ 2.15.
"bignum"
ອັບເກຣດຈາກເວີຊັ່ນ 0.22 ເປັນ 0.23.
"ຊື່ສຽງ"
ໃນປັດຈຸບັນ "charnames" ມີ Unicode NameAliases.txt ໄຟລ໌ຖານຂໍ້ມູນ. ນີ້ມີ
ຜົນກະທົບຂອງການເພີ່ມບາງສ່ວນ "\N" ຊື່ຕົວອັກສອນທີ່ໃນເມື່ອກ່ອນຈະບໍ່ມີ
ຮັບຮູ້; ຕົວຢ່າງ, "\N{LATIN CAPITAL LETTER GHA}".
ອັບເກຣດຈາກເວີຊັ່ນ 1.06 ເປັນ 1.07.
"ຄົງທີ່"
ອັບເກຣດຈາກເວີຊັ່ນ 1.13 ເປັນ 1.20.
"ວິນິດໄສ"
ດຽວນີ້ "ວິນິໄສ" ຮອງຮັບ %0f ການຈັດຮູບແບບພາຍໃນ.
"ການວິນິດໄສ" ຈະບໍ່ສະກັດກັ້ນ "ການໃຊ້ຄ່າທີ່ບໍ່ໄດ້ເລີ່ມຕົ້ນໃນໄລຍະ (ຫຼື flip)" ອີກຕໍ່ໄປ.
ຄຳເຕືອນ. [perl #71204]
ອັບເກຣດຈາກເວີຊັ່ນ 1.17 ເປັນ 1.19.
"ຄຸນນະສົມບັດ"
ໃນ "ຄຸນສົມບັດ", ຄວາມໝາຍຂອງຊຸດຄຸນສົມບັດ ":5.10" ແລະ ":5.10.X" ໄດ້ປ່ຽນແປງ.
ເລັກນ້ອຍ. ອົງປະກອບສຸດທ້າຍ, ຖ້າມີ (ເຊັ່ນ "X") ແມ່ນຖືກລະເລີຍ. ນີ້ແມ່ນຄາດຄະເນ
ໂດຍສົມມຸດຕິຖານວ່າລັກສະນະໃຫມ່ຈະບໍ່, ໂດຍທົ່ວໄປ, ຈະຖືກເພີ່ມເຂົ້າໃນການບໍາລຸງຮັກສາ
ການປ່ອຍ. ດັ່ງນັ້ນ ":5.10" ແລະ ":5.10.X" ມີຜົນກະທົບຄືກັນ. ນີ້ແມ່ນການປ່ຽນແປງຂອງ
ພຶດຕິກໍາທີ່ບັນທຶກໄວ້ສໍາລັບ 5.10.0.
"ຄຸນສົມບັດ" ໃນປັດຈຸບັນປະກອບມີຄຸນສົມບັດ "unicode_strings":
ໃຊ້ຄຸນສົມບັດ "unicode_strings";
pragma ນີ້ເປີດໃຊ້ຄໍາສັບ Unicode ສໍາລັບການປະຕິບັດການປ່ຽນແປງກໍລະນີ ("uc", "lc",
"ucfirst", "lcfirst") ໃນສະຕຣິງທີ່ບໍ່ໄດ້ກໍານົດທຸງ UTF-8 ພາຍໃນ, ແຕ່ວ່າ.
ບັນຈຸຕົວອັກສອນດຽວລະຫວ່າງ 128 ແລະ 255.
ອັບເກຣດຈາກເວີຊັ່ນ 1.11 ເປັນ 1.16.
"ຫນ້ອຍ"
ໃນປັດຈຸບັນ "ຫນ້ອຍ" ປະກອບມີວິທີການ "stash_name" ເພື່ອອະນຸຍາດໃຫ້ຊັ້ນຍ່ອຍຂອງ "ຫນ້ອຍ" ເລືອກ
ບ່ອນທີ່ຢູ່ໃນ %^H ເພື່ອເກັບຮັກສາ stash ຂອງເຂົາເຈົ້າ.
ອັບເກຣດຈາກເວີຊັ່ນ 0.02 ເປັນ 0.03.
"lib"
ອັບເກຣດຈາກເວີຊັ່ນ 0.5565 ເປັນ 0.62.
"ທ່ານ"
ໃນປັດຈຸບັນ "mro" ຖືກປະຕິບັດເປັນສ່ວນຂະຫຍາຍ XS. ການໂຕ້ຕອບຂອງເອກະສານບໍ່ໄດ້ມີການປ່ຽນແປງ.
ລະຫັດອີງໃສ່ລາຍລະອຽດການປະຕິບັດທີ່ບາງວິທີການ "mro::" ເກີດຂຶ້ນ
ມີຢູ່ຕະຫຼອດເວລາໄດ້ຮັບການ "ຮັກສາທັງສອງຕ່ອນ".
ອັບເກຣດຈາກເວີຊັ່ນ 1.00 ເປັນ 1.02.
"ໂຫຼດເກີນ"
"overload" ໃນປັດຈຸບັນອະນຸຍາດໃຫ້ overloading ຂອງ 'qr'.
ອັບເກຣດຈາກເວີຊັ່ນ 1.06 ເປັນ 1.10.
"ກະທູ້"
ອັບເກຣດຈາກເວີຊັ່ນ 1.67 ເປັນ 1.75.
"ກະທູ້:: ແບ່ງປັນ"
ອັບເກຣດຈາກເວີຊັ່ນ 1.14 ເປັນ 1.32.
"ຮຸ່ນ"
ໃນປັດຈຸບັນ "ຮຸ່ນ" ມີການສະຫນັບສະຫນູນ "ຮູບແບບຈໍານວນຮຸ່ນ" ຕາມທີ່ໄດ້ອະທິບາຍໄວ້ກ່ອນຫນ້ານີ້ໃນເລື່ອງນີ້
ເອກະສານແລະໃນເອກະສານຂອງຕົນເອງ.
ອັບເກຣດຈາກເວີຊັ່ນ 0.74 ເປັນ 0.82.
"ຄໍາເຕືອນ"
"warnings" ມີຟັງຊັນ "warnings::fatal_enabled()" ໃໝ່. ມັນຍັງປະກອບມີໃຫມ່
ໝວດຄຳເຕືອນ "illegalproto". ເບິ່ງ "ການວິນິດໄສໃໝ່ ຫຼືການປ່ຽນແປງ" ສໍາລັບການນີ້
ປ່ຽນແປງ.
ອັບເກຣດຈາກເວີຊັ່ນ 1.06 ເປັນ 1.09.
ການປັບປຸງ ໂມດູນ
"ຮວບຮວມ:: ສະກັດ"
ອັບເກຣດຈາກເວີຊັ່ນ 0.24 ເປັນ 0.38.
"ຮວບຮວມ::tar"
ອັບເກຣດຈາກເວີຊັ່ນ 1.38 ເປັນ 1.54.
"ຄຸນລັກສະນະ::ຕົວຈັດການ"
ອັບເກຣດຈາກເວີຊັ່ນ 0.79 ເປັນ 0.87.
"ຕົວໂຫຼດອັດຕະໂນມັດ"
ອັບເກຣດຈາກເວີຊັ່ນ 5.63 ເປັນ 5.70.
"B:: ຫຍໍ້"
ອັບເກຣດຈາກເວີຊັ່ນ 0.74 ເປັນ 0.78.
"B::Debug"
ອັບເກຣດຈາກເວີຊັ່ນ 1.05 ເປັນ 1.12.
"B:: Depare"
ອັບເກຣດຈາກເວີຊັ່ນ 0.83 ເປັນ 0.96.
"B:: Lint"
ອັບເກຣດຈາກເວີຊັ່ນ 1.09 ເປັນ 1.11_01.
"CGI"
ອັບເກຣດຈາກເວີຊັ່ນ 3.29 ເປັນ 3.48.
"ຫ້ອງຮຽນ::ISA"
ອັບເກຣດຈາກເວີຊັ່ນ 0.33 ເປັນ 0.36.
ໝາຍເຫດ: "Class::ISA" ຖືກຄັດຄ້ານ ແລະອາດຈະຖືກລຶບອອກຈາກ Perl ເວີຊັນໃນອະນາຄົດ.
"ບີບອັດ::ດິບ::Zlib"
ອັບເກຣດຈາກເວີຊັ່ນ 2.008 ເປັນ 2.024.
"CPAN"
ອັບເກຣດຈາກເວີຊັ່ນ 1.9205 ເປັນ 1.94_56.
"CPANPLUS"
ອັບເກຣດຈາກເວີຊັ່ນ 0.84 ເປັນ 0.90.
"CPANPLUS::Dist::Build"
ອັບເກຣດຈາກເວີຊັ່ນ 0.06_02 ເປັນ 0.46.
"ຂໍ້ມູນ::Dumper"
ອັບເກຣດຈາກເວີຊັ່ນ 2.121_14 ເປັນ 2.125.
"DB_File"
ອັບເກຣດຈາກເວີຊັ່ນ 1.816_1 ເປັນ 1.820.
"ພັດທະນາ::PPPort"
ອັບເກຣດຈາກເວີຊັ່ນ 3.13 ເປັນ 3.19.
"ຍ່ອຍ"
ອັບເກຣດຈາກເວີຊັ່ນ 1.15 ເປັນ 1.16.
"ຍ່ອຍ::MD5"
ອັບເກຣດຈາກເວີຊັ່ນ 2.36_01 ເປັນ 2.39.
"ຍ່ອຍ::SHA"
ອັບເກຣດຈາກເວີຊັ່ນ 5.45 ເປັນ 5.47.
"ເຂົ້າລະຫັດ"
ອັບເກຣດຈາກເວີຊັ່ນ 2.23 ເປັນ 2.39.
"ຜູ້ສົ່ງອອກ"
ອັບເກຣດຈາກເວີຊັ່ນ 5.62 ເປັນ 5.64_01.
"ExtUtils::CBuilder"
ອັບເກຣດຈາກເວີຊັ່ນ 0.21 ເປັນ 0.27.
"ExtUtils:: ຄໍາສັ່ງ"
ອັບເກຣດຈາກເວີຊັ່ນ 1.13 ເປັນ 1.16.
"ExtUtils::ຄົງທີ່"
ອັບເກຣດຈາກເວີຊັ່ນ 0.2 ເປັນ 0.22.
"ExtUtils:: ຕິດຕັ້ງ"
ອັບເກຣດຈາກເວີຊັ່ນ 1.44 ເປັນ 1.55.
"ExtUtils:: MakeMaker"
ອັບເກຣດຈາກເວີຊັ່ນ 6.42 ເປັນ 6.56.
"ExtUtils::Manifest"
ອັບເກຣດຈາກເວີຊັ່ນ 1.51_01 ເປັນ 1.57.
"ExtUtils::ParseXS"
ອັບເກຣດຈາກເວີຊັ່ນ 2.18_02 ເປັນ 2.21.
"ໄຟລ໌:: Fetch"
ອັບເກຣດຈາກເວີຊັ່ນ 0.14 ເປັນ 0.24.
"ໄຟລ໌::ເສັ້ນທາງ"
ອັບເກຣດຈາກເວີຊັ່ນ 2.04 ເປັນ 2.08_01.
"ໄຟລ໌:: ອຸນຫະພູມ"
ອັບເກຣດຈາກເວີຊັ່ນ 0.18 ເປັນ 0.22.
"ການກັ່ນຕອງ:: ງ່າຍດາຍ"
ອັບເກຣດຈາກເວີຊັ່ນ 0.82 ເປັນ 0.84.
"ການກັ່ນຕອງ::Util::Call"
ອັບເກຣດຈາກເວີຊັ່ນ 1.07 ເປັນ 1.08.
"ຮັບ::ຍາວ"
ອັບເກຣດຈາກເວີຊັ່ນ 2.37 ເປັນ 2.38.
"IO"
ອັບເກຣດຈາກເວີຊັ່ນ 1.23_01 ເປັນ 1.25_02.
"IO::Zlib"
ອັບເກຣດຈາກເວີຊັ່ນ 1.07 ເປັນ 1.10.
"IPC:: Cmd"
ອັບເກຣດຈາກເວີຊັ່ນ 0.40_1 ເປັນ 0.54.
"IPC::SysV"
ອັບເກຣດຈາກເວີຊັ່ນ 1.05 ເປັນ 2.01.
"ທ້ອງຖິ່ນ:: Maketext"
ອັບເກຣດຈາກເວີຊັ່ນ 1.12 ເປັນ 1.14.
"ທ້ອງຖິ່ນ::ສ້າງຂໍ້ຄວາມ::ງ່າຍດາຍ"
ອັບເກຣດຈາກເວີຊັ່ນ 0.18 ເປັນ 0.21.
"ບັນທຶກ:: ຂໍ້ຄວາມ"
ອັບເກຣດຈາກເວີຊັ່ນ 0.01 ເປັນ 0.02.
"ບັນທຶກ::ຂໍ້ຄວາມ::ງ່າຍດາຍ"
ອັບເກຣດຈາກເວີຊັ່ນ 0.04 ເປັນ 0.06.
"ຄະນິດສາດ::BigInt"
ອັບເກຣດຈາກເວີຊັ່ນ 1.88 ເປັນ 1.89_01.
"ຄະນິດສາດ::BigInt::FastCalc"
ອັບເກຣດຈາກເວີຊັ່ນ 0.16 ເປັນ 0.19.
"ຄະນິດສາດ::BigRat"
ອັບເກຣດຈາກເວີຊັ່ນ 0.21 ເປັນ 0.24.
"ຄະນິດສາດ:: ຊັບຊ້ອນ"
ອັບເກຣດຈາກເວີຊັ່ນ 1.37 ເປັນ 1.56.
"ຈື່ໄວ້"
ອັບເກຣດຈາກເວີຊັ່ນ 1.01_02 ເປັນ 1.01_03.
"MIME::Base64"
ອັບເກຣດຈາກເວີຊັ່ນ 3.07_01 ເປັນ 3.08.
"ໂມດູນ::ສ້າງ"
ອັບເກຣດຈາກເວີຊັ່ນ 0.2808_01 ເປັນ 0.3603.
"ໂມດູນ::CoreList"
ອັບເກຣດຈາກເວີຊັ່ນ 2.12 ເປັນ 2.29.
"ໂມດູນ::ໂຫຼດ"
ອັບເກຣດຈາກເວີຊັ່ນ 0.12 ເປັນ 0.16.
"ໂມດູນ::ໂຫຼດ::ເງື່ອນໄຂ"
ອັບເກຣດຈາກເວີຊັ່ນ 0.22 ເປັນ 0.34.
"ໂມດູນ:: ໂຫລດ"
ອັບເກຣດຈາກເວີຊັ່ນ 0.01 ເປັນ 0.06.
"ໂມດູນ:: ສາມາດສຽບໄດ້"
ອັບເກຣດຈາກເວີຊັ່ນ 3.6 ເປັນ 3.9.
"ສຸດທິ:: ປິງ"
ອັບເກຣດຈາກເວີຊັ່ນ 2.33 ເປັນ 2.36.
"ຕໍ່ໄປ"
ອັບເກຣດຈາກເວີຊັ່ນ 0.60_01 ເປັນ 0.64.
"ວັດຖຸ::ຜູ້ເຂົ້າໃຊ້"
ອັບເກຣດຈາກເວີຊັ່ນ 0.32 ເປັນ 0.36.
"ຊຸດ::ຄົງທີ່"
ອັບເກຣດຈາກເວີຊັ່ນ 0.01 ເປັນ 0.02.
"PerlIO"
ອັບເກຣດຈາກເວີຊັ່ນ 1.04 ເປັນ 1.06.
"Pod::Parser"
ອັບເກຣດຈາກເວີຊັ່ນ 1.35 ເປັນ 1.37.
"Pod:: Perldoc"
ອັບເກຣດຈາກເວີຊັ່ນ 3.14_02 ເປັນ 3.15_02.
"Pod::Plainer"
ອັບເກຣດຈາກເວີຊັ່ນ 0.01 ເປັນ 1.02.
ໝາຍເຫດ: "Pod::Plainer" ຖືກຄັດຄ້ານ ແລະອາດຈະຖືກລຶບອອກຈາກ Perl ເວີຊັນໃນອະນາຄົດ.
"Pod:: ງ່າຍດາຍ"
ອັບເກຣດຈາກເວີຊັ່ນ 3.05 ເປັນ 3.13.
"ປອດໄພ"
ອັບເກຣດຈາກເວີຊັ່ນ 2.12 ເປັນ 2.22.
"ຕົວໂຫລດເອງ"
ອັບເກຣດຈາກເວີຊັ່ນ 1.11 ເປັນ 1.17.
"ເກັບຮັກສາໄດ້"
ອັບເກຣດຈາກເວີຊັ່ນ 2.18 ເປັນ 2.22.
"ສະຫຼັບ"
ອັບເກຣດຈາກເວີຊັ່ນ 2.13 ເປັນ 2.16.
ໝາຍເຫດ: "ສະວິດ" ຖືກຄັດຄ້ານ ແລະອາດຈະຖືກລຶບອອກຈາກ Perl ເວີຊັນໃນອະນາຄົດ.
"Sys::Syslog"
ອັບເກຣດຈາກເວີຊັ່ນ 0.22 ເປັນ 0.27.
"ໄລຍະເວລາ::ANSIColor"
ອັບເກຣດຈາກເວີຊັ່ນ 1.12 ເປັນ 2.02.
"ໄລຍະ::UI"
ອັບເກຣດຈາກເວີຊັ່ນ 0.18 ເປັນ 0.20.
"ທົດສອບ"
ອັບເກຣດຈາກເວີຊັ່ນ 1.25 ເປັນ 1.25_02.
"ທົດສອບ:: ສາຍຮັດ"
ອັບເກຣດຈາກເວີຊັ່ນ 2.64 ເປັນ 3.17.
"ການທົດສອບ:: ງ່າຍດາຍ"
ອັບເກຣດຈາກເວີຊັ່ນ 0.72 ເປັນ 0.94.
"ຂໍ້ຄວາມ::ສົມດູນ"
ອັບເກຣດຈາກເວີຊັ່ນ 2.0.0 ເປັນ 2.02.
"ຂໍ້ຄວາມ::ParseWords"
ອັບເກຣດຈາກເວີຊັ່ນ 3.26 ເປັນ 3.27.
"ຂໍ້ຄວາມ::Soundex"
ອັບເກຣດຈາກເວີຊັ່ນ 3.03 ເປັນ 3.03_01.
"ກະທູ້::ຄິວ"
ອັບເກຣດຈາກເວີຊັ່ນ 2.00 ເປັນ 2.11.
"ກະທູ້::Semaphore"
ອັບເກຣດຈາກເວີຊັ່ນ 2.01 ເປັນ 2.09.
"Tie::RefHash"
ອັບເກຣດຈາກເວີຊັ່ນ 1.37 ເປັນ 1.38.
"ເວລາ::HiRes"
ອັບເກຣດຈາກເວີຊັ່ນ 1.9711 ເປັນ 1.9719.
"ເວລາ:: ທ້ອງຖິ່ນ"
ອັບເກຣດຈາກເວີຊັ່ນ 1.18 ເປັນ 1.1901_01.
"ເວລາ:: ຊິ້ນ"
ອັບເກຣດຈາກເວີຊັ່ນ 1.12 ເປັນ 1.15.
"Unicode::Collate"
ອັບເກຣດຈາກເວີຊັ່ນ 0.52 ເປັນ 0.52_01.
"Unicode:: ປົກກະຕິ"
ອັບເກຣດຈາກເວີຊັ່ນ 1.02 ເປັນ 1.03.
"Win32"
ອັບເກຣດຈາກເວີຊັ່ນ 0.34 ເປັນ 0.39.
"Win32API:: ໄຟລ໌"
ອັບເກຣດຈາກເວີຊັ່ນ 0.1001_01 ເປັນ 0.1101.
"XSLoader"
ອັບເກຣດຈາກເວີຊັ່ນ 0.08 ເປັນ 0.10.
ລົບລ້າງ ໂມດູນ ແລະ ປາກເວົ້າ
"attrs"
ເອົາອອກຈາກແກນ Perl. ຮຸ່ນກ່ອນແມ່ນ 1.02.
"CPAN::API::HOWTO"
ເອົາອອກຈາກແກນ Perl. ຮຸ່ນກ່ອນແມ່ນ 'undef'.
"CPAN::DeferedCode"
ເອົາອອກຈາກແກນ Perl. ຮຸ່ນກ່ອນແມ່ນ 5.50.
"CPANPLUS::inc"
ເອົາອອກຈາກແກນ Perl. ຮຸ່ນກ່ອນແມ່ນ 'undef'.
"DCLsym"
ເອົາອອກຈາກແກນ Perl. ຮຸ່ນກ່ອນແມ່ນ 1.03.
"ExtUtils::MakeMaker::bytes"
ເອົາອອກຈາກແກນ Perl. ຮຸ່ນກ່ອນແມ່ນ 6.42.
"ExtUtils::MakeMaker::vmsish"
ເອົາອອກຈາກແກນ Perl. ຮຸ່ນກ່ອນແມ່ນ 6.42.
"ສະຕີໂອ"
ເອົາອອກຈາກແກນ Perl. ຮຸ່ນກ່ອນແມ່ນ 2.3.
"ທົດສອບ::Harness::ຢືນຢັນ"
ເອົາອອກຈາກແກນ Perl. ຮຸ່ນກ່ອນແມ່ນ 0.02.
"ທົດສອບ::Harness::Iterator"
ເອົາອອກຈາກແກນ Perl. ຮຸ່ນກ່ອນແມ່ນ 0.02.
"ທົດສອບ::ສາຍ::ຈຸດ"
ເອົາອອກຈາກແກນ Perl. ຮຸ່ນກ່ອນແມ່ນ 0.01.
"ການທົດສອບ:: ເຊືອກ:: ຜົນໄດ້ຮັບ"
ເອົາອອກຈາກແກນ Perl. ຮຸ່ນກ່ອນແມ່ນ 0.01.
"ທົດສອບ::ສາຍ::ສາຍ"
ເອົາອອກຈາກແກນ Perl. ລຸ້ນກ່ອນແມ່ນ 0.26_01.
"ທົດສອບ::ສາຍ::Util"
ເອົາອອກຈາກແກນ Perl. ຮຸ່ນກ່ອນແມ່ນ 0.01.
"XSSymSet"
ເອົາອອກຈາກແກນ Perl. ຮຸ່ນກ່ອນແມ່ນ 1.1.
Deprecated ໂມດູນ ແລະ ປາກເວົ້າ
ເບິ່ງ "ໂມດູນທີ່ຖືກປະຕິເສດ" ຂ້າງເທິງ.
ເອກະສານ
ໃຫມ່ ເອກະສານ
· perlhaiku ມີຄໍາແນະນໍາກ່ຽວກັບວິທີການສ້າງ perl ສໍາລັບເວທີ Haiku.
· perlmroapi ອະທິບາຍການໂຕ້ຕອບໃຫມ່ສໍາລັບ pluggable ວິທີການແກ້ໄຂຄໍາສັ່ງ.
· perlperf, ໂດຍ Richard Foley, ສະຫນອງການແນະນໍາການນໍາໃຊ້ການປະຕິບັດແລະ
ເຕັກນິກການເພີ່ມປະສິດທິພາບທີ່ສາມາດຖືກນໍາໃຊ້ກັບການອ້າງອີງໂດຍສະເພາະກັບໂປແກຼມ perl.
· perlrepository ອະທິບາຍວິທີການເຂົ້າເຖິງແຫຼ່ງ perl ໂດຍໃຊ້ ໄປ ການຄວບຄຸມເວີຊັນ
ລະບົບ.
· perlpolicy ຂະຫຍາຍ "ສັນຍາສັງຄົມກ່ຽວກັບໂມດູນທີ່ປະກອບສ່ວນ" ເຂົ້າໄປໃນຈຸດເລີ່ມຕົ້ນ
ຂອງເອກະສານກ່ຽວກັບນະໂຍບາຍ Perl porting.
ການປ່ຽນແປງ to ທີ່ມີຢູ່ແລ້ວ ເອກະສານ
· ຂະຫນາດໃຫຍ່ຕ່າງໆ ການປ່ຽນແປງ* ໄຟລ໌ (ທີ່ລະບຸໄວ້ທຸກການປ່ຽນແປງທີ່ເຮັດໃຫ້ perl ໃນໄລຍະສຸດທ້າຍ
18 ປີ) ໄດ້ຖືກໂຍກຍ້າຍ, ແລະທົດແທນໂດຍໄຟລ໌ຂະຫນາດນ້ອຍ, ເອີ້ນວ່າ ການປ່ຽນແປງ, ທີ່
ພຽງແຕ່ອະທິບາຍວ່າຂໍ້ມູນດຽວກັນນັ້ນອາດຈະຖືກສະກັດຈາກການຄວບຄຸມເວີຊັນ git
ລະບົບ.
· Porting/patching.pod ໄດ້ຖືກລຶບຖິ້ມ, ຍ້ອນວ່າມັນສ່ວນໃຫຍ່ແມ່ນອະທິບາຍການພົວພັນກັບສິ່ງເກົ່າ
ຄັງເກັບມ້ຽນທີ່ອີງໃສ່ການບັງຄັບໃຊ້, ເຊິ່ງດຽວນີ້ລ້າສະໄໝແລ້ວ. ຂໍ້ມູນທີ່ກ່ຽວຂ້ອງຍັງມີຢູ່
ຍ້າຍໄປ perlrepository.
· syntax "ເວັ້ນເສຍແຕ່ (EXPR) BLOCK else BLOCK" ປະຈຸບັນຖືກບັນທຶກເປັນທີ່ຖືກຕ້ອງ, ຄືກັບ
syntax "ເວັ້ນເສຍແຕ່ (EXPR) BLOCK elsif (EXPR) BLOCK ... else BLOCK", ເຖິງແມ່ນວ່າຕົວຈິງແລ້ວ
ການນໍາໃຊ້ອັນສຸດທ້າຍອາດຈະບໍ່ເປັນຄວາມຄິດທີ່ດີທີ່ສຸດສໍາລັບການອ່ານລະຫັດແຫຼ່ງຂອງທ່ານ.
· ເອກະສານ -X overloading.
· ເອກະສານວ່າ "ເມື່ອ()" ປະຕິບັດຕໍ່ບັນດາຕົວປະຕິບັດການ filetest ໂດຍສະເພາະ
· ເອກະສານ "ເມື່ອ" ເປັນຕົວແກ້ໄຂ syntax.
·ລົບລ້າງ "Old Perl threads tutorial", ເຊິ່ງອະທິບາຍ 5005 ກະທູ້.
pod/perlthrtut.pod ແມ່ນອຸປະກອນດຽວກັນ reworked ສໍາລັບ ithreads.
· ແກ້ໄຂເອກະສານທີ່ຜ່ານມາ: v-strings ບໍ່ໄດ້ຖືກຍົກເລີກ
ດ້ວຍວັດຖຸລຸ້ນ, ພວກເຮົາຕ້ອງການພວກມັນເພື່ອໃຊ້ໄວຍາກອນ MODULE VERSION. Patch ນີ້ເອົາອອກ
ແຈ້ງການຍົກເລີກ.
·ຂໍ້ມູນຕິດຕໍ່ຄວາມປອດໄພໃນປັດຈຸບັນເປັນສ່ວນຫນຶ່ງຂອງ perlsec.
· ພາກສ່ວນທີ່ສຳຄັນຂອງເອກະສານຫຼັກໄດ້ຖືກປັບປຸງເພື່ອຊີ້ແຈງ
ພຶດຕິກໍາການຈັດການ Unicode ຂອງ Perl.
ເອກະສານຫຼັກທີ່ຍັງເຫຼືອຫຼາຍແມ່ນໄດ້ຖືກທົບທວນ ແລະແກ້ໄຂເພື່ອໃຫ້ມີຄວາມຊັດເຈນ,
ການນໍາໃຊ້ພາສາທີ່ສອດຄ່ອງກັນ, ແລະແກ້ໄຂການສະກົດຄໍາຂອງຊື່ Tom Christiansen.
· ຂໍ້ມູນຈໍາເພາະຂອງ Pod (perlpodspec) ໄດ້ຖືກປັບປຸງເພື່ອນໍາເອົາຂໍ້ມູນຈໍາເພາະເຂົ້າມາ
ສອດຄ່ອງກັບການນໍາໃຊ້ທີ່ທັນສະໄຫມທີ່ສະຫນັບສະຫນູນໂດຍລະບົບ Pod ສ່ວນໃຫຍ່. ສະຕຣິງພາຣາມິເຕີອາດຈະ
ຕອນນີ້ປະຕິບັດຕາມຊື່ຮູບແບບໃນພາກພື້ນ "ເລີ່ມຕົ້ນ/ສິ້ນສຸດ". ເຊື່ອມຕໍ່ກັບ URI ທີ່ມີຂໍ້ຄວາມ
ຄໍາອະທິບາຍໄດ້ຖືກອະນຸຍາດໃນປັດຈຸບັນ. ການນຳໃຊ້ "L<"section">" ໄດ້ຖືກໝາຍເປັນ
ເຊົາໃຊ້ແລ້ວ.
· if.pm ໄດ້ຖືກບັນທຶກໄວ້ໃນ "ໃຊ້" ໃນ perlfunc ເປັນວິທີການໄດ້ຮັບການໂຫຼດຕາມເງື່ອນໄຂ
ຂອງໂມດູນເຖິງວ່າຈະມີ implicit BEGIN block ປະມານ "ໃຊ້".
· ເອກະສານສໍາລັບ $1 ໃນ perlvar.pod ໄດ້ຮັບການຊີ້ແຈງ.
· "\N{U+ລະຫັດ ຈຸດ}" ຕອນນີ້ຖືກບັນທຶກແລ້ວ.
ການຄັດເລືອກ ການປະຕິບັດ ການຍົກລະດັບ
· cache ພາຍໃນໃຫມ່ຫມາຍຄວາມວ່າ "isa()" ມັກຈະໄວຂຶ້ນ.
· ການປະຕິບັດຄໍາສັ່ງການແກ້ໄຂວິທີການ "C3" ໄດ້ຮັບການເພີ່ມປະສິດທິພາບ - linearisation
ສໍາລັບຫ້ອງຮຽນທີ່ມີມໍລະດົກດຽວແມ່ນໄວກວ່າ 40%. ປະສິດທິພາບຫຼາຍ
ມໍລະດົກບໍ່ປ່ຽນແປງ.
· ພາຍໃຕ້ "ການນໍາໃຊ້ທ້ອງຖິ່ນ", ຂໍ້ມູນທີ່ກ່ຽວຂ້ອງກັບທ້ອງຖິ່ນໃນປັດຈຸບັນຖືກເກັບໄວ້ໃນຄ່າທີ່ອ່ານເທົ່ານັ້ນ,
ເຊັ່ນ: ບັນຊີລາຍຊື່ທີ່ສົ່ງຄືນໂດຍ "keys %hash". ນີ້ເຮັດໃຫ້ການດໍາເນີນງານເຊັ່ນ "sort keys
%hash" ໃນຂອບເຂດຂອງ "ໃຊ້ທ້ອງຖິ່ນ" ໄວກວ່າ.
·ວິທີການ "DESTROY" ຫວ່າງເປົ່າບໍ່ໄດ້ຖືກເອີ້ນວ່າ.
· "Perl_sv_utf8_upgrade()" ດຽວນີ້ໄວຂຶ້ນ.
· "ກະແຈ" ໃນ hash ຫວ່າງເປົ່າແມ່ນໄວຂຶ້ນ.
· "ຖ້າ (%foo)" ໄດ້ຖືກປັບປຸງໃຫ້ໄວກວ່າ "if (keys %foo)".
· ໂຕປະຕິບັດການການຊໍ້າຄືນສະຕຣິງ ("$str x $num") ຕອນນີ້ໄວຂຶ້ນຫຼາຍເທົ່າເມື່ອ $str
ມີຄວາມຍາວໜຶ່ງ ຫຼື $num ໃຫຍ່.
· reversing array ກັບຕົວມັນເອງ (ໃນ "@a = reverse @a") ໃນ void context ໃນປັດຈຸບັນເກີດຂຶ້ນໃນ-
ສະຖານທີ່ແລະເປັນຄໍາສັ່ງຫຼາຍຂະຫນາດໄວກວ່າທີ່ເຄີຍເປັນ. ມັນຍັງຈະ
ຮັກສາອົງປະກອບທີ່ບໍ່ມີຢູ່ທຸກຄັ້ງທີ່ເປັນໄປໄດ້, ie ສໍາລັບ arrays ທີ່ບໍ່ແມ່ນ magical ຫຼື tied
arrays ດ້ວຍວິທີ "EXISTS" ແລະ "DELETE".
ການຕິດຕັ້ງ ແລະ ການຕັ້ງຄ່າ ການປັບປຸງ
· perlapi, perlintern, perlmodlib ແລະ perltoc ໃນປັດຈຸບັນທັງຫມົດແມ່ນສ້າງຂຶ້ນໃນເວລາສ້າງ,
ແທນທີ່ຈະຖືກຈັດສົ່ງເປັນສ່ວນຫນຶ່ງຂອງການປ່ອຍ.
· ຖ້າ "vendorlib" ແລະ "vendorarch" ແມ່ນອັນດຽວກັນ, ຫຼັງຈາກນັ້ນພວກມັນຈະຖືກເພີ່ມໃສ່ @INC ຄັ້ງດຽວເທົ່ານັ້ນ.
· $Config{usedevel} ແລະລະດັບ C "PERL_USE_DEVEL" ຕອນນີ້ຖືກກຳນົດຖ້າ perl ຖືກສ້າງຂຶ້ນ
ກັບ "-Dusedevel".
· ກໍາຫນົດຄ່າ ຈະຊ່ວຍໃຫ້ການນໍາໃຊ້ "-fstack-protector", ເພື່ອສະຫນອງການປ້ອງກັນ stack-
ການໂຈມຕີ smashing, ຖ້າ compiler ສະຫນັບສະຫນູນມັນ.
· ກໍາຫນົດຄ່າ ໃນປັດຈຸບັນຈະກໍານົດຕົວແບບທີ່ຖືກຕ້ອງສໍາລັບຫນ້າທີ່ re-entrant ແລະສໍາລັບ
"gconvert" ຖ້າທ່ານກໍາລັງໃຊ້ C++ compiler ແທນທີ່ຈະເປັນ C compiler.
· ໃນ Unix, ຖ້າທ່ານສ້າງຈາກຕົ້ນໄມ້ທີ່ມີ git repository, ການຕັ້ງຄ່າ
ຂະບວນການຈະສັງເກດຄໍາຫມັ້ນສັນຍາ hash ທີ່ທ່ານໄດ້ກວດສອບອອກ, ສໍາລັບການສະແດງຜົນຜະລິດຂອງ
"perl -v" ແລະ "perl -V". commits ທ້ອງຖິ່ນ Unpushed ຈະຖືກເພີ່ມໂດຍອັດຕະໂນມັດໃນບັນຊີລາຍຊື່ຂອງ
ແຜ່ນທ້ອງຖິ່ນສະແດງໂດຍ "perl -V".
· ຕອນນີ້ Perl ຮອງຮັບຊັ້ນຄວາມເຂົ້າກັນໄດ້ຂອງ SystemTap "dtrace" ແລະມີບັນຫາກັບການເຊື່ອມໂຍງ
"miniperl" ໄດ້ຖືກແກ້ໄຂໃນຂະບວນການ.
· perldoc ໃນປັດຈຸບັນໃຊ້ "ຫນ້ອຍ -R" ແທນທີ່ຈະ "ຫນ້ອຍ" ສໍາລັບການປັບປຸງພຶດຕິກໍາໃນໃບຫນ້າຂອງ
ການນໍາໃຊ້ໃຫມ່ຂອງ "groff" ຂອງລະຫັດຫນີ ANSI.
· "perl -V" ຕອນນີ້ລາຍງານການໃຊ້ຕົວເລືອກເວລາລວບລວມ "USE_PERL_ATOF" ແລະ
"USE_ATTRIBUTES_FOR_PERLIO".
·ເປັນສ່ວນຫນຶ່ງຂອງການ flattening ຂອງ ext, ການຂະຫຍາຍທັງຫມົດໃນທຸກເວທີແມ່ນສ້າງຂຶ້ນໂດຍ
make_ext.pl. ນີ້ແທນທີ່ Unix ສະເພາະ ext/util/make_ext, VMS ສະເພາະ
make_ext.com ແລະ Win32 ສະເພາະ win32/buildext.pl.
ພາຍໃນ ການປ່ຽນແປງ
ແຕ່ລະການປ່ອຍ Perl ເຫັນການປ່ຽນແປງພາຍໃນຈໍານວນຫລາຍທີ່ບໍ່ຄວນສົ່ງຜົນກະທົບຕໍ່ມື້ຕໍ່ວັນ
ການນໍາໃຊ້ແຕ່ອາດຈະຍັງສັງເກດເຫັນສໍາລັບນັກພັດທະນາທີ່ເຮັດວຽກກັບລະຫັດແຫຼ່ງຂອງ Perl.
· ຄໍາເວົ້າຂອງ JRR Tolkien ຢູ່ຫົວຂອງໄຟລ໌ແຫຼ່ງ C ໄດ້ຖືກກວດສອບ ແລະຖືກຕ້ອງແລ້ວ
ການອ້າງອີງເພີ່ມ, ຂໍຂອບໃຈກັບ patch ຈາກ Tom Christiansen.
·ໂຄງສ້າງພາຍໃນຂອງໂມດູນຊີວິດຄູ່ຕາມປະເພນີທີ່ພົບເຫັນຢູ່ໃນ lib / ແລະ
ext/ ໄດເລກະທໍລີໃນແຫຼ່ງ perl ມີການປ່ຽນແປງຢ່າງຫຼວງຫຼາຍ. ຖ້າເປັນໄປໄດ້, ສອງ-
ໂມດູນທີ່ມີຊີວິດໄດ້ຖືກສະກັດອອກຈາກ lib / ແລະ ext/.
ໂມດູນທີ່ມີຊີວິດຄູ່ທີ່ຮັກສາໄວ້ໂດຍນັກພັດທະນາຂອງ Perl ເປັນສ່ວນຫນຶ່ງຂອງ Perl core ໃນປັດຈຸບັນດໍາລົງຊີວິດ
in dist /. ໂມດູນທີ່ມີຊີວິດຄູ່ທີ່ຮັກສາໄວ້ຕົ້ນຕໍຢູ່ໃນ CPAN ໃນປັດຈຸບັນອາໄສຢູ່ cpan/ທີ່ຢູ່ ເມື່ອໃດ
ລາຍງານຂໍ້ຜິດພາດໃນໂມດູນທີ່ຢູ່ພາຍໃຕ້ cpan/, ກະລຸນາສົ່ງລາຍງານບັນຫາຂອງທ່ານໂດຍກົງ
ໄປຫາຕົວຕິດຕາມຂໍ້ຜິດພາດ ຫຼືຜູ້ຂຽນຂອງໂມດູນ, ແທນທີ່ຈະເປັນຕົວຕິດຕາມບັກຂອງ Perl.
· "\N{...}" ຕອນນີ້ລວບລວມໄດ້ດີກວ່າ, ບັງຄັບໃຫ້ UTF-8 ເປັນຕົວແທນພາຍໃນສະເໝີ
ຜູ້ພັດທະນາຂອງ Perl ໄດ້ແກ້ໄຂບັນຫາຫຼາຍຢ່າງກັບການຮັບຮູ້ "\N{...}"
ກໍ່ສ້າງ. ເປັນສ່ວນຫນຶ່ງຂອງການນີ້, perl ຈະເກັບຮັກສາ scalar ຫຼື regex ໃດໆທີ່ມີ
"\N{ຊື່}" ຫຼື "\N{U+ລະຫັດ ຈຸດ}" ໃນຄໍານິຍາມຂອງມັນໃນຮູບແບບ UTF-8. (ນີ້ແມ່ນຄວາມຈິງ
ກ່ອນຫນ້ານີ້ສໍາລັບການປະກົດຕົວທັງຫມົດຂອງ "\N{ຊື່}" ທີ່ບໍ່ໄດ້ໃຊ້ຕົວແປແບບກຳນົດເອງ, ແຕ່
ໃນປັດຈຸບັນມັນເປັນຄວາມຈິງສະເຫມີ.)
· Perl_magic_setmglob ດຽວນີ້ຮູ້ກ່ຽວກັບໂລກ, ການແກ້ໄຂ RT #71254.
· "SVt_RV" ບໍ່ມີແລ້ວ. ດຽວນີ້ RVs ຖືກເກັບໄວ້ໃນ IVs.
· "Perl_vcroak()" ໃນປັດຈຸບັນຍອມຮັບການໂຕ້ຖຽງທໍາອິດ null. ນອກຈາກນັ້ນ, ມີການກວດສອບຢ່າງເຕັມທີ່
ຂອງ "ບໍ່ແມ່ນ NULL" ຄໍາບັນຍາຍ compiler, ແລະສໍາລັບຫນ້າທີ່ພາຍໃນອື່ນໆຈໍານວນຫນຶ່ງ
ໄດ້ຖືກແກ້ໄຂ.
· ມາໂຄຣໃໝ່ "dSAVEDERRNO", "dSAVE_ERRNO", "SAVE_ERRNO", "RESTORE_ERRNO" ຖືກເພີ່ມເຂົ້າແລ້ວ
ເພື່ອເຮັດໃຫ້ການປະຫຍັດຊົ່ວຄາວຂອງຕົວແປ "errno" ຢ່າງເປັນທາງການ.
·ຟັງຊັນ "Perl_sv_insert_flags" ໄດ້ຖືກເພີ່ມເຂົ້າໃນການຂະຫຍາຍ "Perl_sv_insert".
·ຟັງຊັນ "Perl_newSV_type(type)" ໄດ້ຖືກເພີ່ມ, ເທົ່າກັບ "Perl_newSV()"
ຕິດຕາມດ້ວຍ "Perl_sv_upgrade(type)".
·ຟັງຊັນ "Perl_newSVpvn_flags()" ໄດ້ຖືກເພີ່ມ, ເທົ່າກັບ "Perl_newSVpvn()"
ແລະຫຼັງຈາກນັ້ນປະຕິບັດການປະຕິບັດທີ່ກ່ຽວຂ້ອງກັບທຸງຊາດ.
ປະຈຸບັນຮອງຮັບສອງທຸງທຸງ.
· "SVf_UTF8" ຈະໂທຫາ "SvUTF8_on()" ສໍາລັບທ່ານ. (ໃຫ້ສັງເກດວ່າອັນນີ້ບໍ່ໄດ້ປ່ຽນເປັນ
ລຳດັບ ISO 8859-1 ຕົວອັກສອນເປັນ UTF-8). A wrapper, "newSVpvn_utf8()" ແມ່ນ
ມີສໍາລັບການນີ້.
· "SVs_TEMP" ດຽວນີ້ເອີ້ນວ່າ "Perl_sv_2mortal()" ໃນ SV ໃໝ່.
ນອກນັ້ນຍັງມີ wrapper ທີ່ໃຊ້ສາຍຄົງທີ່, "newSVpvs_flags()".
·ຟັງຊັນ "Perl_croak_xs_usage" ໄດ້ຖືກເພີ່ມເປັນ wrapper ກັບ "Perl_croak".
· Perl ໃນປັດຈຸບັນສົ່ງອອກຫນ້າທີ່ "PerlIO_find_layer" ແລະ "PerlIO_list_alloc".
· "PL_na" ໄດ້ຖືກກໍາຈັດອອກຈາກລະຫັດຫຼັກ, ແທນທີ່ດ້ວຍ STRLEN ທ້ອງຖິ່ນ
ຊົ່ວຄາວ, ຫຼື "*_nolen()" ໂທ. ວິທີການທັງສອງແມ່ນໄວກວ່າ "PL_na", ເຊິ່ງແມ່ນ a
ຕົວຊີ້ dereference ເຂົ້າໄປໃນໂຄງສ້າງນາຍພາສາພາຍໃຕ້ ithreads, ແລະທົ່ວໂລກ
ມີການປ່ຽນແປງຖ້າບໍ່ດັ່ງນັ້ນ.
· "Perl_mg_free()" ໃຊ້ເພື່ອປ່ອຍຄວາມຊົງຈໍາທີ່ປ່ອຍໄວ້ສາມາດເຂົ້າເຖິງໄດ້ຜ່ານ "SvMAGIC()" ໃນຕາຕະລາງ.
ໃນປັດຈຸບັນມັນປັບປຸງບັນຊີລາຍຊື່ທີ່ເຊື່ອມຕໍ່ເພື່ອເອົາແຕ່ລະຊິ້ນຂອງ magic ຍ້ອນວ່າມັນຖືກປົດປ່ອຍ.
· ພາຍໃຕ້ ithreads, regex ໃນ "PL_reg_curpm" ຕອນນີ້ຖືກນັບອ້າງອີງແລ້ວ. ນີ້ກໍາຈັດ
ການແກ້ໄຂບັນຫາ hackish ຫຼາຍຢ່າງເພື່ອຮັບມືກັບມັນບໍ່ໄດ້ຖືກນັບອ້າງອີງ.
· "Perl_mg_magical()" ບາງຄັ້ງອາດຈະເປີດ "SvRMAGICAL()" ບໍ່ຖືກຕ້ອງ. ນີ້ໄດ້
ຄົງທີ່.
·ທ ສາທາລະນະ ທຸງ IV ແລະ NV ຕອນນີ້ບໍ່ໄດ້ຕັ້ງຖ້າຄ່າສະຕຣິງມີ "ຂີ້ເຫຍື້ອ".
ພຶດຕິກໍານີ້ແມ່ນສອດຄ່ອງກັບບໍ່ກໍານົດທຸງ IV ຫຼື NV ສາທາລະນະຖ້າຄ່າ
ຢູ່ນອກຂອບເຂດສໍາລັບປະເພດ.
· ການນໍາໃຊ້ "Nullav", "Nullcv", "Nullhv", "Nullop", "Nullsv" ແລະອື່ນໆໄດ້ຖືກທົດແທນໂດຍ
"NULL" ໃນລະຫັດຫຼັກ, ແລະໂມດູນທີ່ບໍ່ມີຊີວິດຄູ່, ຍ້ອນວ່າ "NULL" ແມ່ນຈະແຈ້ງກວ່າຕໍ່ກັບສິ່ງເຫຼົ່ານັ້ນ.
ບໍ່ຄຸ້ນເຄີຍກັບລະຫັດຫຼັກ.
· ມະຫາພາກ MUTABLE_PTR(p) ໄດ້ຖືກເພີ່ມ, ເຊິ່ງໃນ (ທີ່ບໍ່ແມ່ນ pedantic) gcc ຈະບໍ່ຖືກຂັບໄລ່ອອກໄປ.
"const", ສົ່ງຄືນ "void *". ມາໂຄຣ "MUTABLE_SV(av)", "MUTABLE_SV(cv)" ແລະ ອື່ນໆ
ນີ້, ການສົ່ງສັນຍານໄປຫາ "AV *" ແລະອື່ນໆໂດຍບໍ່ມີການໂຍນອອກ "const". ນີ້ອະນຸຍາດໃຫ້ລວບລວມຂໍ້ມູນທີ່ເຫມາະສົມ,
ການກວດສອບທີ່ໃຊ້ເວລາຂອງ "const" ຄວາມຖືກຕ້ອງໃນຫຼັກການ, ແລະຊ່ວຍເກັບເອົາເຖິງບາງຂໍ້ຜິດພາດ.
(ຕອນນີ້ແກ້ໄຂແລ້ວ).
· Macros "mPUSHs()" ແລະ "mXPUSHs()" ໄດ້ຖືກເພີ່ມ, ສໍາລັບການຊຸກຍູ້ SVs ໃນ stack ແລະ
ເຮັດໃຫ້ພວກເຂົາຕາຍ.
·ການນໍາໃຊ້ໂຄງສ້າງສ່ວນຕົວ "mro_meta" ມີການປ່ຽນແປງເລັກນ້ອຍ. ບໍ່ມີຫຍັງນອກຫຼັກ
ຢ່າງໃດກໍຕາມ, ຄວນຈະເຂົ້າເຖິງໂດຍກົງ.
· ເປັນເຄື່ອງມືໃຫມ່, Porting/expand-macro.pl ໄດ້ຮັບການເພີ່ມ, ທີ່ອະນຸຍາດໃຫ້ທ່ານເບິ່ງວິທີການ C
preprocessor macro ຈະຖືກຂະຫຍາຍໃນເວລາທີ່ລວບລວມ. ນີ້ແມ່ນເປັນປະໂຫຍດໃນເວລາທີ່ພະຍາຍາມ
ຖອດລະຫັດ macro hell ທີ່ເປັນ perl guts.
ການທົດສອບ
ການທົດສອບ ການປັບປຸງ
ການທົດສອບຂະຫນານ
ການແຜ່ກະຈາຍຫຼັກໃນປັດຈຸບັນສາມາດດໍາເນີນການທົດສອບການຖົດຖອຍຂອງຕົນໃນຂະຫນານທີ່ຄ້າຍຄື Unix
ເວທີ. ແທນທີ່ຈະດໍາເນີນການ "ເຮັດການທົດສອບ", ຕັ້ງ "TEST_JOBS" ໃນສະພາບແວດລ້ອມຂອງທ່ານເປັນ
ຈໍານວນຂອງການທົດສອບທີ່ຈະດໍາເນີນການຂະຫນານ, ແລະແລ່ນ "ເຮັດໃຫ້ test_harness". ໃນ Bourne ຄ້າຍຄື
shell, ນີ້ສາມາດເຮັດໄດ້ເປັນ
TEST_JOBS=3 ເຮັດ test_harness # ແລ່ນ 3 ການທົດສອບຂະຫນານ
ຕົວແປສະພາບແວດລ້ອມໄດ້ຖືກນໍາໃຊ້, ແທນທີ່ຈະຂະຫນານເຮັດໃຫ້ຕົວມັນເອງ, ເພາະວ່າ
TAP::Harness ຈໍາເປັນຕ້ອງສາມາດຈັດຕາຕະລາງການທົດສອບສ່ວນບຸກຄົນທີ່ບໍ່ມີການຂັດແຍ້ງ
ຕົວຂອງມັນເອງ, ແລະບໍ່ມີການໂຕ້ຕອບມາດຕະຖານທີ່ຈະ "ເຮັດ" ຜົນປະໂຫຍດເພື່ອພົວພັນກັບພວກເຂົາ
ຕາຕະລາງວຽກ.
ໃຫ້ສັງເກດວ່າໃນປັດຈຸບັນບາງສະຄິບທົດສອບອາດຈະລົ້ມເຫລວເມື່ອດໍາເນີນການຂະຫນານ (ໂດຍສະເພາະທີ່ສຸດ
"ext/IO/t/io_dir.t"). ຖ້າຈໍາເປັນດໍາເນີນການພຽງແຕ່ scripts ລົ້ມເຫລວອີກເທື່ອຫນຶ່ງຕາມລໍາດັບແລະ
ເບິ່ງວ່າຄວາມລົ້ມເຫລວຫາຍໄປ.
ທົດສອບຄວາມຍືດຫຍຸ່ນຂອງສາຍຮັດ
ດຽວນີ້ມັນເປັນໄປໄດ້ທີ່ຈະລົບລ້າງ "PERL5OPT" ແລະຫມູ່ເພື່ອນໃນ t / TEST
ທົດສອບເຝົ້າລະວັງ
ການທົດສອບຫຼາຍອັນທີ່ມີທ່າແຮງທີ່ຈະຫ້ອຍຕະຫຼອດໄປຖ້າພວກເຂົາລົ້ມເຫລວໃນປັດຈຸບັນລວມເອົາ a
ຟັງຊັນ "watchdog" ທີ່ຈະຂ້າພວກເຂົາຫຼັງຈາກຫມົດເວລາ, ເຊິ່ງຊ່ວຍໃຫ້ແນ່ໃຈວ່າ
"ເຮັດການທົດສອບ" ແລະ "ເຮັດ test_harness" ດໍາເນີນການເພື່ອສໍາເລັດອັດຕະໂນມັດ.
ໃຫມ່ ການທົດສອບ
ນັກພັດທະນາຂອງ Perl ໄດ້ເພີ່ມຈໍານວນການທົດສອບໃຫມ່ເຂົ້າໄປໃນຫຼັກ. ນອກຈາກລາຍການ
ລະບຸໄວ້ຂ້າງລຸ່ມນີ້, ຫຼາຍໂມດູນທີ່ປັບປຸງຈາກ CPAN ໄດ້ລວມເອົາການທົດສອບໃຫມ່.
· ການທໍາຄວາມສະອາດທີ່ສໍາຄັນກັບການທົດສອບຫຼັກການເພື່ອໃຫ້ແນ່ໃຈວ່າຄຸນນະສົມບັດພາສາແລະນາຍແປພາສາ
ບໍ່ໄດ້ໃຊ້ກ່ອນທີ່ຈະທົດສອບ.
· "ເຮັດ test_porting" ປະຈຸບັນດໍາເນີນການກວດສອບທີ່ສໍາຄັນຈໍານວນຫນຶ່ງທີ່ອາດຈະເປັນຂອງ
ໃຊ້ກັບທຸກຄົນທີ່ເຮັດວຽກຢູ່ໃນຫຼັກ Perl.
· t/porting/podcheck.t ອັດຕະໂນມັດກວດເບິ່ງຄວາມສົມບູນແບບຂອງ POD ທີ່ພົບເຫັນຢູ່ໃນທັງຫມົດ .pl,
ໄຟລ໌ .pm ແລະ .pod ໃນ MANIFEST, ນອກຈາກໃນໂມດູນສອງຊີວິດທີ່ມີ
ຮັກສາຕົ້ນຕໍຢູ່ນອກຫຼັກ Perl.
· t/porting/manifest.t ໃນປັດຈຸບັນທົດສອບວ່າໄຟລ໌ທັງຫມົດທີ່ລະບຸໄວ້ໃນ MANIFEST ມີຢູ່.
· t/op/while_readdir.t ທົດສອບວ່າ readdir ເປົ່າຢູ່ໃນໃນຂະນະທີ່ loop ຕັ້ງ $_.
· t/comp/retainedlines.t ກວດເບິ່ງວ່າດີບັກສາມາດຮັກສາສາຍແຫຼ່ງຈາກ "eval".
· t/io/perlio_fail.t ກວດເບິ່ງວ່າຊັ້ນທີ່ບໍ່ດີລົ້ມເຫລວ.
· t/io/perlio_leaks.t ກວດເບິ່ງວ່າຊັ້ນ PerlIO ບໍ່ຮົ່ວໄຫຼ.
· t/io/perlio_open.t ກວດເບິ່ງວ່າຮູບແບບພິເສດສະເພາະຂອງການເຮັດວຽກເປີດ.
· t/io/perlio.t ລວມມີການທົດສອບ PerlIO ທົ່ວໄປ.
· t/io/pvbm.t ກວດເບິ່ງວ່າບໍ່ມີການໂຕ້ຕອບທີ່ບໍ່ຄາດຄິດລະຫວ່າງປະເພດພາຍໃນ
"PVBM" ແລະ "PVGV".
· t/mro/package_aliases.t ກວດເບິ່ງວ່າ mro ເຮັດວຽກຢ່າງຖືກຕ້ອງຢູ່ໃນທີ່ປະທັບຂອງນາມແຝງ
packages
· t/op/dbm.t ການທົດສອບ "dbmopen" ແລະ "dbmclose".
· t/op/index_thr.t ທົດສອບການໂຕ້ຕອບຂອງ "ດັດຊະນີ" ແລະກະທູ້.
· t/op/pat_thr.t ທົດສອບການໂຕ້ຕອບຂອງຮູບແບບ esoteric ແລະກະທູ້.
· t/op/qr_gc.t ການທົດສອບວ່າ "qr" ບໍ່ຮົ່ວໄຫຼ.
· t/op/reg_email_thr.t ທົດສອບການໂຕ້ຕອບຂອງ regex recursion ແລະກະທູ້.
· t/op/regexp_qr_embed_thr.t ທົດສອບການໂຕ້ຕອບຂອງຮູບແບບທີ່ມີການຝັງ "qr//" ແລະ
ກະທູ້.
· t/op/regexp_unicode_prop.t ທົດສອບຄຸນສົມບັດຂອງ Unicode ໃນການສະແດງອອກປົກກະຕິ.
· t/op/regexp_unicode_prop_thr.t ທົດສອບການໂຕ້ຕອບຂອງຄຸນສົມບັດຂອງ Unicode ແລະ
ກະທູ້.
· t/op/reg_nc_tie.t ທົດສອບວິທີການຜູກມັດຂອງ "Tie::Hash::NameCapture".
· t/op/reg_posixcc.t ກວດເບິ່ງວ່າຄລາສຕົວອັກສອນ POSIX ມີພຶດຕິກຳສະເໝີ.
· t/op/re.t ກວດເບິ່ງວ່າສາມາດສົ່ງອອກໄດ້ "re" ເຮັດວຽກຢູ່ໃນ universal.c ເຮັດວຽກ.
· t/op/setpgrpstack.t ກວດເບິ່ງວ່າ "setpgrp" ເຮັດວຽກ.
· t/op/substr_thr.t ທົດສອບການໂຕ້ຕອບຂອງ "substr" ແລະກະທູ້.
· t/op/upgrade.t ກວດສອບວ່າການຍົກລະດັບແລະການມອບຫມາຍສະເກັດເຮັດວຽກ.
· t/uni/lex_utf8.t ກວດເບິ່ງວ່າ Unicode ໃນ lexer ເຮັດວຽກ.
· t/uni/tie.t ກວດເບິ່ງວ່າ Unicode ແລະ "tie" ເຮັດວຽກ.
· t/comp/final_line_num.t ທົດສອບວ່າຕົວເລກແຖວຖືກຕ້ອງຢູ່ EOF ຫຼືບໍ່
· t/comp/form_scope.t ການທົດສອບຂອບເຂດຮູບແບບ.
· t/comp/line_debug.t ທົດສອບວ່າ "@{"_<$file"}" ເຮັດວຽກຫຼືບໍ່.
· t/op/filetest_t.t ການທົດສອບຖ້າຫາກວ່າການທົດສອບໄຟລ໌ -t ເຮັດວຽກ.
· t/op/qr.t ການທົດສອບ "qr".
· t/op/utf8cache.t ທົດສອບການເຮັດວຽກຜິດປົກກະຕິຂອງ cache utf8.
· t/re/uniprops.t ທົດສອບ unicodes "\p{}" regex constructs.
· t/op/filehandle.t ທົດສອບບາງຕົວປະຕິບັດການ filetest ທີ່ເຫມາະສົມເພື່ອກວດເບິ່ງວ່າພວກເຂົາ
ເຮັດວຽກຕາມທີ່ຄາດໄວ້, ໂດຍສະເພາະໃນຄວາມສະຫວ່າງຂອງບາງການປ່ຽນແປງພາຍໃນທີ່ເຮັດໃນວິທີການ
filehandles ແມ່ນໄດ້ຮັບພອນ.
· t/op/time_loop.t ການທົດສອບທີ່ unix ຫຼາຍກ່ວາ "2**63", ເຊິ່ງໃນປັດຈຸບັນສາມາດຖືກມອບ
ກັບ "gmtime" ແລະ "localtime", ບໍ່ເຮັດໃຫ້ເກີດການໄຫລວຽນພາຍໃນຫຼືຍາວເກີນໄປ
ວົນ.
ໃຫມ່ or ມີການປ່ຽນແປງ ການວິນິດໄສ
ໃຫມ່ ການວິນິດໄສ
· ການຕິດຕາມການຈັດສັນ SV ໄດ້ຖືກເພີ່ມເຂົ້າໃນການວິນິດໄສທີ່ເປີດໃຊ້ໂດຍ "-Dm". ການຕິດຕາມ
ທາງເລືອກອື່ນສາມາດອອກໄດ້ຜ່ານກົນໄກ "PERL_MEM_LOG", ຖ້າມັນຖືກເປີດໃຊ້ເມື່ອໃດ
ໄດ້ perl binary ໄດ້ຖືກລວບລວມ.
·ການຕິດຕາມການແກ້ໄຂ Smartmatch ໄດ້ຖືກເພີ່ມເປັນການວິນິດໄສໃຫມ່. ໃຊ້ "-DM" ເພື່ອເປີດໃຊ້ງານ
ມັນ.
· ທຸງດີບັ໊ກໃໝ່ "-DB" ດຽວນີ້ຖິ້ມຄຳນິຍາມຍ່ອຍ, ປ່ອຍ "-Dx" ໄວ້ສຳລັບມັນ.
ຈຸດປະສົງຕົ້ນສະບັບຂອງການຖິ້ມຕົ້ນໄມ້ syntax.
· Perl 5.12 ສະຫນອງຈໍານວນຂໍ້ຄວາມວິນິດໄສໃຫມ່ເພື່ອຊ່ວຍໃຫ້ທ່ານຂຽນລະຫັດທີ່ດີກວ່າ.
ເບິ່ງ perldiag ສໍາລັບລາຍລະອຽດຂອງຂໍ້ຄວາມໃຫມ່ເຫຼົ່ານີ້.
· "ປລັກອິນທີ່ບໍ່ດີສົ່ງຜົນກະທົບຕໍ່ຄໍາຫລັກ '%s'"
· "gmtime(%.0f) ໃຫຍ່ເກີນໄປ"
· "ລະຫັດ Lexing ພະຍາຍາມເອົາຕົວອັກສອນທີ່ບໍ່ແມ່ນພາສາລາຕິນ 1 ເຂົ້າໃນການປ້ອນພາສາລາຕິນ 1"
· "ຄວາມຜິດພາດພາຍໃນລະຫັດ Lexing (%s)"
· "ເວລາທ້ອງຖິ່ນ(%.0f) ໃຫຍ່ເກີນໄປ"
· "ການອ້າງອິງຫຼາຍເກີນໄປບໍ່ໄດ້ສົ່ງຄືນການອ້າງອີງ"
· "qr ເກີນບໍ່ໄດ້ກັບຄືນ REGEXP"
· "Perl_pmflag() ຖືກຄັດຄ້ານ, ແລະຈະຖືກລຶບອອກຈາກ XS API"
· "ຄຸນສົມບັດ lvalue ຖືກລະເລີຍຫຼັງຈາກ subroutine ໄດ້ຖືກກໍານົດ"
ການເຕືອນໄພ ໃໝ່ ນີ້ຖືກອອກເມື່ອຜູ້ ໜຶ່ງ ພະຍາຍາມ ໝາຍ routine ຍ່ອຍເປັນ lvalue ຫຼັງຈາກ
ມັນໄດ້ຖືກກໍານົດ.
· ຕອນນີ້ Perl ເຕືອນທ່ານຖ້າ "++" ຫຼື "--" ບໍ່ສາມາດປ່ຽນຄ່າໄດ້ເພາະວ່າມັນເປັນ
ເກີນຂອບເຂດຈໍາກັດຂອງການເປັນຕົວແທນ.
ນີ້ໃຊ້ປະເພດຄໍາເຕືອນໃຫມ່: "ຄວາມບໍ່ແນ່ນອນ".
· "lc", "uc", "lcfirst", ແລະ "ucfirst" ເຕືອນເມື່ອຜ່ານ undef.
· "ສະແດງຄ່າຄົງທີ່ໃນ "ການໃຊ້ຄ່າຄົງທີ່ທີ່ບໍ່ມີປະໂຫຍດໃນບໍລິບົດທີ່ບໍ່ມີປະໂຫຍດ""
· "ຕົວແບບຫຼັງຈາກ '%s'"
· "ຕົກໃຈ: sv_chop %s"
ຄວາມຜິດພາດອັນຮ້າຍແຮງອັນໃໝ່ນີ້ເກີດຂຶ້ນເມື່ອ C routine "Perl_sv_chop()" ຖືກຜ່ານ
ຕຳແໜ່ງທີ່ບໍ່ຢູ່ໃນ string buffer ຂອງ scalar. ອັນນີ້ອາດເກີດຈາກ
ລະຫັດ buggy XS, ແລະໃນຈຸດນີ້ການຟື້ນຕົວແມ່ນເປັນໄປບໍ່ໄດ້.
· ຂໍ້ຜິດພາດທີ່ຮ້າຍແຮງ "UTF-8 ບໍ່ຖືກຕ້ອງທີ່ສົ່ງຄືນໂດຍ \N" ໄດ້ຖືກຜະລິດໃນປັດຈຸບັນຖ້າຫາກວ່າ
ຕົວຈັດການ "charnames" ສົ່ງຄືນ UTF-8 ທີ່ບໍ່ຖືກຕ້ອງ.
· ຖ້າພົບຕົວອັກສອນ ຫຼື ລຳດັບທີ່ບໍ່ໄດ້ຮັບການແກ້ໄຂເມື່ອລວບລວມ a
ຮູບແບບ regex ຫຼັງຈາກນັ້ນ, ຄວາມຜິດພາດທີ່ຮ້າຍແຮງ "\N{NAME} ຕ້ອງໄດ້ຮັບການແກ້ໄຂໂດຍ lexer" ແມ່ນໃນປັດຈຸບັນ
ຜະລິດ. ນີ້ສາມາດເກີດຂຶ້ນໄດ້, ສໍາລັບການຍົກຕົວຢ່າງ, ໃນເວລາທີ່ການນໍາໃຊ້ບໍລິບົດດຽວວົງຢືມເຊັ່ນ
"$re = '\N{SPACE}'; /$re/;". ເບິ່ງ perldiag ສໍາລັບຕົວຢ່າງເພີ່ມເຕີມຂອງວິທີການ lexer ສາມາດເຮັດໄດ້
ໄດ້ຮັບ bypass.
· "ເລກຖານສິບຫົກບໍ່ຖືກຕ້ອງໃນ \N{U+...}" ແມ່ນຄວາມຜິດພາດທີ່ຮ້າຍແຮງອັນໃໝ່ທີ່ເກີດຂື້ນເມື່ອ
ຕົວອັກສອນຄົງທີ່ທີ່ສະແດງໂດຍ "..." ບໍ່ແມ່ນຕົວເລກເລກຖານສິບຫົກທີ່ຖືກຕ້ອງ.
· ຄວາມໝາຍໃໝ່ຂອງ "\N" ເປັນ "[^\n]" ບໍ່ຖືກຕ້ອງໃນໝວດຕົວອັກສອນແບບວົງເລັບ,
ຄືກັນກັບ "." ໃນຫ້ອງຮຽນລັກສະນະສູນເສຍຄວາມຫມາຍພິເສດຂອງມັນ, ແລະຈະເຮັດໃຫ້ເກີດການ
ຂໍ້ຜິດພາດທີ່ຮ້າຍແຮງ "\N ໃນຫ້ອງຮຽນຕົວອັກສອນຕ້ອງເປັນຕົວອັກສອນທີ່ມີຊື່: \N{...}".
· ກົດລະບຽບກ່ຽວກັບສິ່ງທີ່ຖືກກົດໝາຍສຳລັບ "..." ໃນ "\N{...}" ໄດ້ຖືກຮັດແໜ້ນຂຶ້ນ
ເວັ້ນເສຍແຕ່ວ່າ "..." ເລີ່ມຕົ້ນດ້ວຍຕົວອັກສອນແລະສືບຕໍ່ດ້ວຍ a
ການປະສົມປະສານຂອງຕົວເລກ ແລະຕົວເລກ, ຂີດຕໍ່, ຍະຫວ່າງ, ວົງເລັບ ຫຼື ຈໍ້າສອງເມັດຫຼັງຈາກນັ້ນ
ຄຳເຕືອນ "ຕົວອັກສອນທີ່ບໍ່ໄດ້ນຳໃຊ້ໃນ \N{...} ເລີ່ມຕົ້ນທີ່ '%s'" ຕອນນີ້ອອກແລ້ວ.
· ຄຳເຕືອນ "ການໃຊ້ຕົວອັກສອນທຳອິດທີ່ສົ່ງຄືນໂດຍ \N{}" ຈະຖືກອອກຖ້າ
ຕົວຈັດການ "charnames" ສົ່ງຄືນລໍາດັບຂອງຕົວອັກສອນທີ່ເກີນຂອບເຂດຈໍາກັດ
ຂອງຈໍານວນຕົວອັກສອນທີ່ສາມາດນໍາໃຊ້ໄດ້. ຂໍ້ຄວາມຈະຊີ້ບອກວ່າອັນໃດ
ຕົວອັກສອນຖືກໃຊ້ແລະຖືກຍົກເລີກ.
ມີການປ່ຽນແປງ ການວິນິດໄສ
ຂໍ້ຄວາມວິນິໄສທີ່ມີຢູ່ແລ້ວຈຳນວນໜຶ່ງໄດ້ຖືກປັບປຸງ ຫຼືແກ້ໄຂແລ້ວ:
· ປະເພດການເຕືອນໄພໃໝ່ "illegalproto" ອະນຸຍາດໃຫ້ຄວບຄຸມຄຳເຕືອນທີ່ລະອຽດກວ່າ
prototypes ການທໍາງານ.
ສອງຄໍາເຕືອນ:
"ຕົວອັກສອນທີ່ຜິດກົດໝາຍໃນຕົ້ນແບບສຳລັບ %s : %s"
"ຕົວແບບຫຼັງຈາກ '%c' ສໍາລັບ %s : %s"
ໄດ້ຖືກຍ້າຍຈາກປະເພດຄໍາເຕືອນລະດັບສູງສຸດ "syntax" ເຂົ້າໄປໃນລະດັບທໍາອິດໃຫມ່
ໝວດໝູ່, "ຜິດກົດໝາຍ". ການເຕືອນໄພສອງຢ່າງນີ້ແມ່ນເປັນອັນດຽວທີ່ປ່ອຍອອກມາໃນປັດຈຸບັນ
ໃນລະຫວ່າງການວິເຄາະຂອງຕົ້ນແບບທີ່ບໍ່ຖືກຕ້ອງ / ຜິດກົດຫມາຍ, ດັ່ງນັ້ນດຽວນີ້ສາມາດນໍາໃຊ້
ບໍ່ມີຄໍາເຕືອນ 'ຜິດກົດຫມາຍ';
ເພື່ອສະກັດກັ້ນພຽງແຕ່ເຫຼົ່ານັ້ນ, ແຕ່ບໍ່ແມ່ນຄໍາເຕືອນທີ່ກ່ຽວຂ້ອງກັບ syntax ອື່ນໆ. ຄຳເຕືອນຢູ່ໃສ
prototypes ມີການປ່ຽນແປງ, ບໍ່ສົນໃຈ, ຫຼືບໍ່ພົບແມ່ນຍັງຢູ່ໃນປະເພດ "prototype" ເປັນ
ກ່ອນ.
· "ການເອີ້ນຄືນຢ່າງເລິກເຊິ່ງຢູ່ໃນລາຍການຍ່ອຍ "%s""
ໃນປັດຈຸບັນມັນເປັນໄປໄດ້ທີ່ຈະປ່ຽນຂອບເຂດຄວາມເລິກສໍາລັບການເຕືອນນີ້ຈາກຄ່າເລີ່ມຕົ້ນຂອງ
100, ໂດຍ recompiling the perl binary, ການຕັ້ງຄ່າ Macro pre-processor
"PERL_SUB_DEPTH_WARN" ໄປຫາຄ່າທີ່ຕ້ອງການ.
· ການເຕືອນໄພ "ລັກສະນະທີ່ຜິດກົດໝາຍໃນຕົ້ນແບບ" ແມ່ນມີຄວາມຊັດເຈນຫຼາຍຂຶ້ນເມື່ອລາຍງານຜິດກົດໝາຍ
ຕົວອັກສອນຫຼັງຈາກ _
· mro merging ຂໍ້ຄວາມຜິດພາດໃນປັດຈຸບັນແມ່ນຄ້າຍຄືກັນຫຼາຍທີ່ຜະລິດໂດຍ Algorithm::C3.
· ການປັບປ່ຽນຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດ "ຕົວອັກສອນທີ່ບໍ່ຮູ້ຈັກ %s ໃນຖັນ %d"
ປ່ຽນແປງຂໍ້ຄວາມຜິດພາດເປັນ "ຕົວອັກສອນທີ່ບໍ່ຮູ້ຈັກ %s; ຫມາຍໂດຍ <-- ທີ່ນີ້ ຫຼັງຈາກ
%s<-- ທີ່ນີ້ໃກ້ກັບຖັນ %d". ອັນນີ້ຄວນເຮັດໃຫ້ມັນງ່າຍກວ່າເລັກນ້ອຍໃນການສັງເກດ ແລະແກ້ໄຂ
ລັກສະນະທີ່ຫນ້າສົງໃສ.
· Perl ໃນປັດຈຸບັນຊີ້ໃຫ້ເຫັນຢ່າງຊັດເຈນເຖິງ $. ໃນເວລາທີ່ມັນເຮັດໃຫ້ເກີດການເຕືອນໄພ uninitialized ສໍາລັບຂອບເຂດໃນ
ສະພາບສະແກນ.
· ຕອນນີ້ "ແຍກ" ເຕືອນເມື່ອຖືກເອີ້ນໃນບໍລິບົດທີ່ເປັນໂມຄະ.
· ຟັງຊັນແບບ "printf" ເອີ້ນວ່າມີການໂຕ້ຖຽງໜ້ອຍເກີນໄປ ດຽວນີ້ຈະອອກຄຳເຕືອນ
"ບໍ່ມີການໂຕ້ຖຽງໃນ %s" [perl #71000]
· Perl ດຽວນີ້ສົ່ງຄືນຂໍ້ຜິດພາດ syntax ຢ່າງຖືກຕ້ອງແທນທີ່ຈະ segfaulting ຖ້າ "ແຕ່ລະ", "keys", ຫຼື
"ຄ່າ" ຖືກໃຊ້ໂດຍບໍ່ມີການໂຕ້ຖຽງ.
· "ບອກ()" ໃນປັດຈຸບັນລົ້ມເຫລວຢ່າງຖືກຕ້ອງຖ້າຫາກວ່າເອີ້ນວ່າໂດຍບໍ່ມີການໂຕ້ຖຽງແລະໃນເວລາທີ່ບໍ່ມີໄຟລ໌ທີ່ຜ່ານມາ
ໄດ້ອ່ານ.
"ບອກ()" ຕອນນີ້ສົ່ງຄືນ "-1", ແລະຕັ້ງ errno ເປັນ "EBADF", ດັ່ງນັ້ນຈຶ່ງຟື້ນຟູ 5.8.x.
ພຶດຕິ ກຳ.
· "ການໂຫຼດເກີນ" ບໍ່ໄດ້ກໍານົດການປະຕິເສດໂດຍ implicitly ຢູ່ໃນເສັ້ນ 'ໃຊ້ overload' ຊ້ໍາກັນ.
· POSIX::srftime() ດຽວນີ້ສາມາດຈັດການຕົວອັກສອນ Unicode ໃນຮູບແບບສະຕຣິງ.
· ໝວດ "ໄວຍະກອນ" ໄດ້ຖືກເອົາອອກຈາກ 5 ຄຳເຕືອນທີ່ຄວນຈະຢູ່ໃນ "ປະຕິເສດ".
· XNUMX ຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດ "pack"/"unpack" ທີ່ເປັນອັນຕະລາຍໄດ້ຖືກປັບໃຫ້ເປັນ "panic: %s" ປົກກະຕິ.
· "ຕົວອັກສອນ Unicode ແມ່ນຜິດກົດຫມາຍ" ໄດ້ຖືກ rephrased ເພື່ອໃຫ້ຖືກຕ້ອງກວ່າ
ດຽວນີ້ມັນອ່ານວ່າ "ຕົວອັກສອນທີ່ບໍ່ແມ່ນ Unicode ແມ່ນຜິດກົດ ໝາຍ ໃນການແລກປ່ຽນ" ແລະ perldiag
ເອກະສານໄດ້ຖືກຂະຫຍາຍອອກເລັກນ້ອຍ.
·ປະຈຸບັນ, ທັງຫມົດແຕ່ຄັ້ງທໍາອິດຂອງລັກສະນະຫຼາຍທີ່ "charnames" handler
ອາດຈະກັບຄືນມາຖືກຍົກເລີກເມື່ອໃຊ້ໃນຮູບແບບການສະແດງອອກປົກກະຕິຕົວອັກສອນທີ່ມີວົງເລັບ
ຫ້ອງຮຽນ. ຖ້າຫາກວ່ານີ້ເກີດຂຶ້ນຫຼັງຈາກນັ້ນຄໍາເຕືອນ "ການນໍາໃຊ້ພຽງແຕ່ລັກສະນະທໍາອິດທີ່ສົ່ງຄືນໂດຍ
\N{} ໃນຫ້ອງຮຽນຕົວອັກສອນ" ຈະອອກ.
· ຄຳເຕືອນວ່າ "ບໍ່ມີວົງເລັບຂວາຢູ່ \N{} ຫຼືວົງເລັບຊ້າຍທີ່ບໍ່ໄດ້ໜີຈາກ \N. ສົມມຸດວ່າ
ອັນສຸດທ້າຍ" ຈະຖືກອອກຖ້າ Perl ພົບກັບ "\N{" ແຕ່ບໍ່ພົບ "}".
ໃນກໍລະນີນີ້ Perl ບໍ່ຮູ້ວ່າມັນໄດ້ຖືກລະເວັ້ນໂດຍຜິດພາດ, ຫຼືຖ້າຫາກວ່າ "ການແຂ່ງຂັນບໍ່ແມ່ນເສັ້ນໃຫມ່"
ຕາມດ້ວຍ "ຈັບຄູ່ "{"" ທີ່ຕ້ອງການ. ມັນສົມມຸດວ່າອັນສຸດທ້າຍເພາະວ່ານັ້ນແມ່ນຕົວຈິງແລ້ວ
ການຕີຄວາມທີ່ຖືກຕ້ອງຕາມທີ່ຂຽນ, ບໍ່ຄືກັບກໍລະນີອື່ນໆ. ຖ້າເຈົ້າຫມາຍເຖິງອະດີດ,
ທ່ານ ຈຳ ເປັນຕ້ອງເພີ່ມແຖບຂວາທີ່ກົງກັນ. ຖ້າເຈົ້າໝາຍເຖິງອັນສຸດທ້າຍ, ເຈົ້າສາມາດມິດງຽບໄດ້
ການເຕືອນນີ້ໂດຍການຂຽນແທນ "\N\{".
· "gmtime" ແລະ "localtime" ເອີ້ນດ້ວຍຕົວເລກທີ່ນ້ອຍກວ່າທີ່ພວກເຂົາສາມາດຈັດການໄດ້
ໃນປັດຈຸບັນຈະອອກຄໍາເຕືອນ "gmtime(%.0f) ນ້ອຍເກີນໄປ" ແລະ "localtime(%.0f) ນ້ອຍເກີນໄປ".
ຂໍ້ຄວາມວິນິໄສຕໍ່ໄປນີ້ໄດ້ຖືກເອົາອອກແລ້ວ:
· "ຮູບແບບ Runaway"
· "ບໍ່ສາມາດຊອກຫາແພັກເກດ %s ສໍາລັບພໍ່ແມ່ຂອງ %s ໄດ້"
ໂດຍທົ່ວໄປການເຕືອນໄພນີ້ມັນພຽງແຕ່ໄດ້ຮັບການຜະລິດຮ່ວມກັບການເຕືອນໄພອື່ນໆ, ແລະ
ການເອົາມັນອອກອະນຸຍາດໃຫ້ເພີ່ມການເພີ່ມປະສິດທິພາບການຊອກຫາ ISA.
· "v-string ໃນການນໍາໃຊ້ / ຕ້ອງການແມ່ນບໍ່ແມ່ນ Portable"
ຜົນປະໂຫຍດ ການປ່ຽນແປງ
· h2ph ຕອນນີ້ເບິ່ງຢູ່ໃນ "include-fixed" ເກີນໄປ, ເຊິ່ງເປັນການເພີ່ມໃຫມ່ໃນການຄົ້ນຫາຂອງ gcc
ເສັ້ນທາງ
· h2xs ບໍ່ປະຕິບັດຕໍ່ຄ່າ enum ທີ່ບໍ່ຖືກຕ້ອງເຊັ່ນ macro ອີກຕໍ່ໄປ. ໃນປັດຈຸບັນມັນຍັງຈັດການກັບ C ++
ຄຳເຫັນສະໄຕລ໌ ("//") ຢ່າງຖືກຕ້ອງໃນ enums.
· perl5db.pl ຕອນນີ້ຮອງຮັບການເຮັດປະຈຳຍ່ອຍ "LVALUE". ນອກຈາກນັ້ນ, debugger ໃນປັດຈຸບັນ
ປະຕິບັດໜ້າທີ່ຍ່ອຍຄົງທີ່ຂອງພຣັອກຊີໄດ້ຢ່າງຖືກຕ້ອງ, ແລະ stubs ປະຈຳການຍ່ອຍ.
· perlbug ຕອນນີ້ໃຊ້ %Module::CoreList::bug_tracker ເພື່ອພິມຕົວຕິດຕາມ bug upstream ອອກ
URLs. ຖ້າຜູ້ໃຊ້ກໍານົດໂມດູນສະເພາະໃດຫນຶ່ງເປັນຫົວຂໍ້ຂອງບົດລາຍງານ bug ຂອງເຂົາເຈົ້າແລະ
ພວກເຮົາສາມາດອັນສູງສົ່ງ URL ສໍາລັບການຕິດຕາມບັກຕົ້ນຕໍຂອງຕົນ, perlbug ໃນປັດຈຸບັນສະຫນອງໃຫ້ເປັນ
ຂໍ້ຄວາມໃຫ້ຜູ້ໃຊ້ອະທິບາຍວ່າຫຼັກສໍາເນົາສະບັບ CPAN ໂດຍກົງ, ແລະ
ສະໜອງ URL ສຳລັບການລາຍງານຂໍ້ຜິດພາດໂດຍກົງຫາຜູ້ຂຽນເທິງນ້ຳ.
perlbug ບໍ່ໄດ້ລາຍງານ "ຂໍ້ຄວາມທີ່ສົ່ງ" ອີກຕໍ່ໄປເມື່ອມັນບໍ່ໄດ້ສົ່ງຂໍ້ຄວາມຕົວຈິງ
· ຂອບໃຈ ເປັນຜົນປະໂຫຍດໃຫມ່ສໍາລັບການສົ່ງບົດລາຍງານທີ່ບໍ່ມີແມງໄມ້ໄປຫາຜູ້ຂຽນແລະຜູ້ຮັກສາ
ຂອງ Perl. ການໄດ້ຮັບບໍ່ມີຫຍັງນອກຈາກການລາຍງານ bug ສາມາດກາຍເປັນ demoralising ເລັກນ້ອຍ. ຖ້າ Perl 5.12
ເຮັດວຽກໄດ້ດີສໍາລັບທ່ານ, ກະລຸນາລອງອອກ ຂອບໃຈ. ມັນຈະເຮັດໃຫ້ນັກພັດທະນາຍິ້ມ.
·ຜູ້ພັດທະນາຂອງ Perl ໄດ້ແກ້ໄຂຂໍ້ບົກພ່ອງໃນ a2p ຕ້ອງເຮັດກັບຕົວປະຕິບັດການ "match()" ໃນ
ບັນຊີລາຍການ. ນອກຈາກນັ້ນ, a2p ບໍ່ສ້າງລະຫັດທີ່ໃຊ້ຕົວແປ $[ ອີກຕໍ່ໄປ.
ການຄັດເລືອກ bow ແກ້ໄຂ
· U+0FFFF ດຽວນີ້ເປັນລັກສະນະທາງກົດໝາຍໃນສຳນວນປົກກະຕິ.
· pp_qr ຕອນນີ້ສົ່ງຄືນ regexp SV ໃໝ່ສະເໝີ. ແກ້ໄຂ RT #69852.
ແທນທີ່ຈະສົ່ງຄືນການອ້າງອິງ (ອື່ນ) ກັບ regexp (ກ່ອນການລວບລວມ) ໃນ optree,
ການນໍາໃຊ້ reg_temp_copy() ເພື່ອສ້າງສໍາເນົາຂອງມັນ, ແລະສົ່ງຄືນການອ້າງອີງເຖິງສິ່ງນັ້ນ. ນີ້
ແກ້ໄຂບັນຫາກ່ຽວກັບ Regexp::DESTROY ບໍ່ໄດ້ຖືກເອີ້ນໃຫ້ທັນເວລາ (the
ແມງໄມ້ຕົ້ນສະບັບຕິດຕາມໂດຍ RT #69852), ເຊັ່ນດຽວກັນກັບແມງໄມ້ທີ່ກ່ຽວຂ້ອງກັບພອນ regexps, ແລະ
ຂອງການມອບຫມາຍໃຫ້ regexps, ດັ່ງທີ່ອະທິບາຍໄວ້ໃນຈົດຫມາຍທີ່ເພີ່ມໃສ່ປີ້.
ມັນ transpires ວ່າພວກເຮົາຍັງຈໍາເປັນຕ້ອງໄດ້ຍົກເລີກການ SvPVX() ແບ່ງປັນເມື່ອ ithreads cloning a
Regexp SV, ເນື່ອງຈາກວ່າ mother_re ຖືກກໍານົດເປັນ NULL, ແທນທີ່ຈະເປັນສໍາເນົາ cloned ຂອງ
ແມ່_re. ການປ່ຽນແປງນີ້ອາດຈະແກ້ໄຂຂໍ້ຜິດພາດກັບ regexps ແລະກະທູ້ໃນບາງຢ່າງອື່ນໆ
ສະຖານະການ, ແຕ່ວ່າຍັງບໍ່ທັນມີການທົດສອບຫຼືບົດລາຍງານ bug ໄດ້ຊີ້ບອກບັນຫາໃດຫນຶ່ງ, ສະນັ້ນ
ໃນຄວາມເປັນຈິງ, ມັນອາດຈະບໍ່ເປັນກໍລະນີທີ່ມັນເປັນໄປໄດ້.
·ຄວາມຜິດພາດການລວບລວມຫຼາຍແລະ segfaults ເມື່ອ perl ຖືກສ້າງຂຶ້ນດ້ວຍ "-Dmad" ໄດ້ຖືກແກ້ໄຂ.
· ການແກ້ໄຂສໍາລັບການປ່ຽນແປງ lexer API ໃນ 5.11.2 ທີ່ທໍາລາຍທາງເລືອກ savesrc ຂອງ NYTP.
· "-t" ຄວນສົ່ງຄືນພຽງແຕ່ TRUE ສໍາລັບຕົວຈັບໄຟລ໌ທີ່ເຊື່ອມຕໍ່ກັບ TTY
ລຸ້ນ Microsoft C ຂອງ "isatty()" ກັບຄືນ TRUE ສໍາລັບອຸປະກອນຮູບແບບຕົວອັກສອນທັງໝົດ,
ລວມທັງການ / dev / null-style "nul" ອຸປະກອນແລະເຄື່ອງພິມເຊັ່ນ "lpt1".
· ແກ້ໄຂການຖົດຖອຍທີ່ເກີດຈາກ fafafbaf commit ທີ່ເຮັດໃຫ້ເກີດ panic ໃນລະຫວ່າງພາລາມິເຕີ
ຜ່ານ [perl #70171]
· ໃນລະບົບທີ່ຢູ່ໃນສະຖານທີ່ແກ້ໄຂໂດຍບໍ່ມີໄຟລ໌ສໍາຮອງຂໍ້ມູນ, -i'*' ໃນປັດຈຸບັນເຮັດວຽກເປັນ
ເອກະສານບອກວ່າມັນເຮັດ [perl #70802]
· ການປະຢັດແລະການຟື້ນຟູທຸງ magic ບໍ່ໄດ້ສູນເສຍທຸງ readonly.
· syntax ທີ່ບໍ່ຖືກຕ້ອງ "grep EXPR LIST" (ສັງເກດເຄື່ອງໝາຍຈຸດທີ່ຂາດຫາຍໄປ) ຈະບໍ່ເຮັດໃຫ້ເກີດຄວາມກະທັນຫັນອີກຕໍ່ໄປ.
ແລະຄວາມລົ້ມເຫຼວທັງຫມົດ.
· ການສະແດງອອກປົກກະຕິທີ່ລວບລວມດ້ວຍຕົວຫນັງສື "qr{}" ຢ່າງຖືກຕ້ອງຕັ້ງ "$'" ເມື່ອກົງກັນ.
ອີກເທື່ອຫນຶ່ງ.
· ການນໍາໃຊ້ subroutines ທີ່ມີຊື່ກັບ "ຄັດ" ບໍ່ຄວນຈະນໍາໄປສູ່ການຜິດພາດລົດເມອີກຕໍ່ໄປ [perl #71076]
· ການແກ້ໄຂຂໍ້ບົກພ່ອງຈໍານວນຫລາຍຈັບບັນຫານ້ອຍໆທີ່ເກີດຈາກ Lexer API ທີ່ເພີ່ມມາບໍ່ດົນມານີ້.
· ການຈັບຄູ່ທີ່ສະຫຼາດຕໍ່ກັບ @_ ບາງຄັ້ງກໍໃຫ້ຂໍ້ລົບທີ່ບໍ່ຖືກຕ້ອງ. [perl #71078]
· $@ ໃນປັດຈຸບັນອາດຈະຖືກມອບຫມາຍເປັນຄ່າອ່ານເທົ່ານັ້ນ (ໂດຍບໍ່ມີຂໍ້ຜິດພາດຫຼືຂັດຂວາງ stack).
· "ຄັດ" ເອີ້ນວ່າ recursively ຈາກພາຍໃນ subroutine ການປຽບທຽບທີ່ຫ້າວຫັນທີ່ບໍ່ມີສາເຫດຕໍ່ໄປອີກແລ້ວ
ລົດເມຜິດພາດຖ້າແລ່ນຫຼາຍຄັ້ງ. [perl #71076]
· Tie::Hash::NamedCapture::* ຈະບໍ່ເອົາລູກອອກຖ້າຫາກວ່າຜ່ານການປ້ອນຂໍ້ມູນທີ່ບໍ່ດີ (RT #71828)
· @_ ແລະ $_ ບໍ່ຮົ່ວໄຫຼພາຍໃຕ້ກະທູ້ (RT #34342 ແລະ #41138, ຍັງ #70602, #70974)
· "-I" ໃນເສັ້ນ shebang ຕອນນີ້ເພີ່ມໄດເລກະທໍລີຢູ່ທາງຫນ້າຂອງ @INC ເປັນເອກະສານ, ແລະເຊັ່ນດຽວກັນ
"-I" ເມື່ອລະບຸໄວ້ໃນເສັ້ນຄໍາສັ່ງ.
· ດຽວນີ້ "ຂ້າ" ແມ່ນຕາຍເມື່ອເອີ້ນວ່າຕົວລະບຸຂະບວນການທີ່ບໍ່ແມ່ນຕົວເລກ. ກ່ອນຫນ້ານີ້, ກ
ຕົວລະບຸຂະບວນການ "undef" ຈະຖືກຕີຄວາມໝາຍເປັນການຮ້ອງຂໍໃຫ້ຂ້າຂະບວນການ 0, ເຊິ່ງ
ຈະຢຸດກຸ່ມຂະບວນການປະຈຸບັນໃນລະບົບ POSIX. ນັບຕັ້ງແຕ່ຕົວກໍານົດຂະບວນການ
ເປັນຈຳນວນເຕັມສະເໝີ, ການຂ້າຂະບວນການທີ່ບໍ່ແມ່ນຕົວເລກແມ່ນຕາຍແລ້ວ.
· 5.10.0 ປິດການເພີ່ມປະສິດທິພາບໂດຍບໍ່ໄດ້ຕັ້ງໃຈ, ເຊິ່ງກໍ່ໃຫ້ເກີດປະສິດທິພາບທີ່ວັດແທກໄດ້.
drop in list assignment, ເຊັ່ນ: ມັກຈະຖືກນໍາໃຊ້ເພື່ອກໍານົດຕົວກໍານົດການທໍາງານຈາກ @_.
ການເພີ່ມປະສິດທິພາບໄດ້ຖືກສະແດງຄືນໃຫມ່, ແລະການຖົດຖອຍຂອງການປະຕິບັດໄດ້ຖືກແກ້ໄຂ. (ການແກ້ໄຂນີ້
ຍັງມີຢູ່ໃນ 5.10.1)
· ແກ້ໄຂຄວາມຊົງຈໍາຮົ່ວໄຫຼໃນ "ໃນຂະນະທີ່ (1) { ແຜນທີ່ 1, 1 }" [RT #53038].
·ບາງ coredumps ທີ່ມີທ່າແຮງໃນ PerlIO ຄົງ [RT #57322,54828].
· ຕອນນີ້ຕົວດີບັກເຮັດວຽກກັບລະບົບຍ່ອຍ lvalue.
· ຄໍາສັ່ງ "m" ຂອງ debugger ຖືກແຍກຢູ່ໃນໂມດູນທີ່ກໍານົດຄ່າຄົງທີ່ [RT #61222].
· "crypt" ແລະ string complement ສາມາດສົ່ງຄືນຄ່າ tainted ສໍາລັບການໂຕ້ຖຽງ untainted [RT
#59998].
· "-i".suffix command-line switch ໃນປັດຈຸບັນສ້າງໄຟລ໌ໃຫມ່ໂດຍໃຊ້ restricted
ການອະນຸຍາດ, ກ່ອນທີ່ຈະປ່ຽນຮູບແບບຂອງມັນເພື່ອໃຫ້ກົງກັບໄຟລ໌ຕົ້ນສະບັບ. ນີ້ລົບລ້າງ a
ສະພາບການແຂ່ງຂັນທີ່ມີທ່າແຮງ [RT #60904].
· ໃນບາງລະບົບ Unix, ມູນຄ່າໃນ $? ຈະບໍ່ມີການຕັ້ງຄ່າບິດເທິງ ("$? & 128") ເຖິງແມ່ນວ່າ
ຖ້າເດັກຖືກຖິ້ມ.
· ພາຍໃຕ້ບາງສະຖານະການ, $^R ອາດຈະບໍ່ຖືກຕ້ອງ [RT #57042].
· ໃນ XS API, ຟັງຊັນ hash ຕ່າງໆ, ເມື່ອຜ່ານ hash ທີ່ຖືກຄິດໄລ່ໄວ້ລ່ວງໜ້າ, ບ່ອນທີ່ປຸ່ມ
ແມ່ນ UTF-8, ອາດຈະເຮັດໃຫ້ການຊອກຫາບໍ່ຖືກຕ້ອງ.
· ລະຫັດ XS ລວມທັງ XSUB.h ກ່ອນທີ່ຈະ perl.h ໃຫ້ຄວາມຜິດພາດເວລາລວບລວມ [RT #57176].
· "$object->isa('Foo')" ຈະລາຍງານບໍ່ຖືກຕ້ອງຖ້າຊຸດ "Foo" ບໍ່ມີ, ເຖິງແມ່ນວ່າ
@ISA ຂອງວັດຖຸມີ "Foo".
· ຂໍ້ບົກຜ່ອງຕ່າງໆໃນລະຫັດ mro 5.10.0 ໃໝ່, ຖືກກະຕຸ້ນໂດຍການຈັດການ @ISA,
ພົບເຫັນແລະແກ້ໄຂ.
· ການດຳເນີນການແບບບິດເບືອນການອ້າງອີງອາດເຮັດໃຫ້ຜູ້ແປພາສາຂັດຂ້ອງ, ເຊັ່ນ "$x=\$y; $x |=
"foo" [RT #54956].
· ຮູບແບບຕ່າງໆລວມທັງການສະຫຼັບອາດຈະມີຄວາມອ່ອນໄຫວຕໍ່ກັບ UTF-8 ພາຍໃນ
ການເປັນຕົວແທນ, eg
$byte ຂອງຂ້ອຍ = ທ(192)
$utf8 ຂອງຂ້ອຍ = ທ(192); utf8::upgrade($utf8);
$utf8 =~ /$byte|X}/i; # ລົ້ມເຫລວໃນ 5.10.0
· ພາຍໃນໄຟລ໌ແຫຼ່ງ Perl ທີ່ເຂົ້າລະຫັດ UTF8 (ເຊັ່ນບ່ອນທີ່ "ໃຊ້ utf8" ມີຜົນບັງຄັບໃຊ້), double-
ສະຕຣິງຕົວໜັງສືທີ່ອ້າງອີງສາມາດເສຍຫາຍໄດ້ບ່ອນທີ່ "\xNN", "\0NNN" ຫຼື "\N{}" ແມ່ນ
ຕິດຕາມດ້ວຍຕົວໜັງສືທີ່ມີມູນຄ່າຕາມລຳດັບຫຼາຍກວ່າ 255 [RT #59908].
· "B::Deparse" ລົ້ມເຫລວໃນການແຍກໂຄງສ້າງຕ່າງໆຢ່າງຖືກຕ້ອງ: "readpipe STRING" [RT
#62428], "CORE::require(STRING)" [RT #62488], "sub foo(_)" [RT #62484].
· ການນໍາໃຊ້ "setpgrp" ໂດຍທີ່ບໍ່ມີການໂຕ້ຖຽງສາມາດເຮັດໃຫ້ການເສຍຫາຍ perl stack ໄດ້.
· ຮູບແບບບລັອກຂອງ "eval" ໃນປັດຈຸບັນສາມາດຈັບໄດ້ໂດຍສະເພາະ "ປອດໄພ" ແລະ "ops". ກ່ອນໜ້ານີ້
ມັນໄດ້ຖືກປະຕິບັດຢ່າງຜິດພາດເຊັ່ນ: "eval".
· ໃນ 5.10.0, ສອງຕົວອັກສອນ "[~" ບາງຄັ້ງຖືກແຍກເປັນຕົວປະຕິບັດການຈັບຄູ່ທີ່ສະຫຼາດ.
("~~") [RT #63854].
· ໃນ 5.10.0, ບາງຄັ້ງ "*" quantifier in patterns are treated as "{0,32767}" [RT
#60034, #60464]. ຕົວຢ່າງ, ການແຂ່ງຂັນນີ້ຈະລົ້ມເຫລວ:
("ab" x 32768) =~ /^(ab)*$/
· "shmget" ຖືກຈໍາກັດໃຫ້ຂະຫນາດ 32 ບິດໃນ 64 ບິດ OS [RT #63924].
· ການໃຊ້ "ຕໍ່ໄປ" ຫຼື "ສຸດທ້າຍ" ເພື່ອອອກຈາກບລັອກ "ໃຫ້" ຈະບໍ່ເຮັດໃຫ້ເກີດການເຕືອນໄພອັນຕະລາຍອີກຕໍ່ໄປ
ດັ່ງຕໍ່ໄປນີ້:
ການອອກໃຫ້ຜ່ານທາງສຸດທ້າຍຢູ່ foo.pl line 123
· ການກຳນົດຮູບແບບໃຫ້ກັບໂລກສາມາດທຳລາຍຮູບແບບ; ຕົວຢ່າງ:
*bar=*foo{FORMAT}; # ຮູບແບບ foo ຕອນນີ້ບໍ່ດີ
· ຄວາມພະຍາຍາມທີ່ຈະບີບບັງຄັບ typeglob ໄປຫາສາຍ ຫຼືຕົວເລກສາມາດເຮັດໃຫ້ເກີດການຢືນຢັນໄດ້
ຄວາມລົ້ມເຫຼວ. ຂໍ້ຄວາມຜິດພາດທີ່ຖືກຕ້ອງຖືກສ້າງຂຶ້ນໃນປັດຈຸບັນ, "ບໍ່ສາມາດບັງຄັບ GLOB ກັບ $type".
· ພາຍໃຕ້ "use filetest 'access'", "-x" ກໍາລັງໃຊ້ໂຫມດການເຂົ້າເຖິງທີ່ບໍ່ຖືກຕ້ອງ. ນີ້ໄດ້
ຄົງທີ່ [RT #49003].
· "ຄວາມຍາວ" ໃນຕາຕະລາງທີ່ຜູກມັດທີ່ສົ່ງຄືນຄ່າ Unicode ຈະບໍ່ຖືກກັບຕົວທໍາອິດ
ເວລາ. ນີ້ໄດ້ຖືກແກ້ໄຂແລ້ວ.
· ການໃຊ້ array "tie" ພາຍໃນໃນ array "tie" ສາມາດ SEGV. ນີ້ໄດ້ຖືກແກ້ໄຂແລ້ວ. [RT
#51636]
· ສະພາບການແຂ່ງຂັນພາຍໃນ "PerlIOStdio_close()" ໄດ້ຖືກກຳນົດ ແລະແກ້ໄຂແລ້ວ. ອັນນີ້ໃຊ້
ເຮັດໃຫ້ເກີດບັນຫາກະທູ້ຕ່າງໆ, ລວມທັງ SEGVs.
· ໃນ "unpack", ການນໍາໃຊ້ຂອງ "()" ກຸ່ມໃນສະພາບການສະເກັດເງິນແມ່ນພາຍໃນການວາງລາຍການກ່ຽວກັບການ
stack ຂອງນາຍພາສາ, ເຊິ່ງ manifested ໃນວິທີການຕ່າງໆ, ລວມທັງ SEGVs. ນີ້ແມ່ນ
ຕອນນີ້ແກ້ໄຂແລ້ວ [RT #50256].
· Magic ຖືກເອີ້ນສອງຄັ້ງໃນ "substr", "\&$x", "tie $x, $m" ແລະ "chop". ເຫຼົ່ານີ້ມີທັງຫມົດ
ໄດ້ຮັບການແກ້ໄຂ.
· ການເພີ່ມປະສິດທິພາບ 5.10.0 ເພື່ອລຶບລ້າງ stack ຊົ່ວຄາວພາຍໃນ loop implicit ຂອງ
"s///ge" ໄດ້ຖືກກັບຄືນ, ຍ້ອນວ່າມັນກາຍເປັນສາເຫດຂອງແມງໄມ້ທີ່ບໍ່ຊັດເຈນໃນ.
ເບິ່ງຄືວ່າພາກສ່ວນທີ່ບໍ່ກ່ຽວຂ້ອງຂອງນາຍພາສາ [commit ef0d4e17921ee3de].
· ຕົວເລກແຖວສຳລັບການເຕືອນພາຍໃນ "elsif" ແມ່ນຖືກຕ້ອງແລ້ວ.
· ຕອນນີ້ຕົວປະຕິບັດການ ".." ເຮັດວຽກຢ່າງຖືກຕ້ອງກັບຊ່ວງທີ່ຈຸດສິ້ນສຸດຢູ່ ຫຼືໃກ້ກັບ
ຄ່າຂອງຈຳນວນເຕັມນ້ອຍທີ່ສຸດ ແລະໃຫຍ່ທີ່ສຸດ.
· "binmode STDIN, ':raw'" ສາມາດນໍາໄປສູ່ຄວາມຜິດຂອງການແບ່ງສ່ວນໃນບາງເວທີ. ນີ້ມີ
ໄດ້ຮັບການແກ້ໄຂ [RT #54828].
· ຄວາມຜິດພາດ off-by-one ຫມາຍຄວາມວ່າ "index $str, ... " ຖືກປະຕິບັດປະສິດທິຜົນເປັນ
"index "$str\0", ... ". ອັນນີ້ຖືກແກ້ໄຂແລ້ວ [RT #53746].
· ການຮົ່ວໄຫຼຕ່າງໆທີ່ກ່ຽວຂ້ອງກັບການຈັບຊື່ໃນ regexes ໄດ້ຖືກແກ້ໄຂແລ້ວ [RT #57024].
· ການອ້າງອີງທີ່ອ່ອນແອຕໍ່ກັບ hash ຈະຮົ່ວໄຫຼ. ນີ້ແມ່ນຜົນກະທົບຕໍ່ "DBI" [RT #56908].
· ການນໍາໃຊ້ (?|) ໃນ regex ສາມາດເຮັດໃຫ້ເກີດ segfault [RT #59734].
· ການໃຊ້ UTF-8 "tr//" ພາຍໃນປິດສາມາດເຮັດໃຫ້ເກີດຄວາມຜິດໄດ້ [RT #61520].
· ການໂທຫາ "Perl_sv_chop()" ຫຼືຖ້າບໍ່ດັ່ງນັ້ນການຍົກລະດັບ SV ສາມາດເຮັດໃຫ້ເກີດຄວາມບໍ່ສອດຄ່ອງ
ການເຂົ້າເຖິງ 64-bit ໃນສະຖາປັດຕະຍະກໍາ SPARC [RT #60574].
· ໃນການປ່ອຍ 5.10.0, "inc_version_list" ຈະເຮັດລາຍການ "5.10.*" ທີ່ບໍ່ຖືກຕ້ອງຫຼັງຈາກ
"5.8.*"; ນີ້ສົ່ງຜົນກະທົບຕໍ່ຄໍາສັ່ງຄົ້ນຫາ @INC [RT #67628].
· ໃນ 5.10.0, "pack "a*", $tainted_value" ສົ່ງຄືນຄ່າທີ່ບໍ່ມີຮອຍເປື້ອນ [RT #52552].
· ໃນ 5.10.0, "printf" ແລະ "sprintf" ສາມາດຜະລິດຄວາມຜິດພາດຮ້າຍແຮງ "panic:
utf8_mg_pos_cache_update" ເມື່ອພິມ UTF-8 strings [RT #62666].
· ໃນລຸ້ນ 5.10.0, ວິທີການ "AUTOLOAD" ທີ່ສ້າງຂຶ້ນແບບເຄື່ອນໄຫວອາດຈະພາດໄປ (ວິທີການ
ບັນຫາ cache) [RT #60220,60232].
·ໃນການປ່ອຍ 5.10.0, ການປະສົມປະສານຂອງ "ຄຸນສົມບັດການນໍາໃຊ້" ແລະ "//ee" ສາມາດເຮັດໃຫ້ເກີດຄວາມຊົງຈໍາ.
ຮົ່ວ [RT #63110].
· "-C" ຢູ່ໃນເສັ້ນ shebang ("#!") ໄດ້ຖືກອະນຸຍາດອີກເທື່ອຫນຶ່ງຖ້າມັນຖືກລະບຸໄວ້ໃນ
ເສັ້ນຄໍາສັ່ງ. "-C" ໃນເສັ້ນ shebang ເຄີຍເປັນ no-op ງຽບ if ມັນບໍ່ໄດ້ຢູ່ໃນ
ເສັ້ນຄໍາສັ່ງ, ດັ່ງນັ້ນ perl 5.10.0 ບໍ່ອະນຸຍາດໃຫ້ມັນ, ເຊິ່ງທໍາລາຍບາງ scripts. ໃນປັດຈຸບັນ perl
ກວດເບິ່ງວ່າມັນຢູ່ໃນເສັ້ນຄໍາສັ່ງຫຼືບໍ່ແລະພຽງແຕ່ຕາຍຖ້າມັນບໍ່ແມ່ນ [RT #67880].
· ໃນ 5.10.0, ບາງປະເພດຂອງ re-entrant ເປັນປົກກະຕິການສະແດງອອກສາມາດຂັດ, ຫຼືເຮັດໃຫ້ເກີດ
ຕໍ່ໄປນີ້ການຢືນຢັນລົ້ມເຫລວ [RT #60508]:
ການຢືນຢັນ rx->sublen >= (s - rx->subbeg) + i ລົ້ມເຫລວ
· Perl ໃນປັດຈຸບັນປະກອບມີໄຟລ໌ທີ່ຂາດຫາຍໄປໃນເມື່ອກ່ອນຈາກຖານຂໍ້ມູນຕົວອັກສອນ Unicode.
· Perl ໃນປັດຈຸບັນໃຫ້ກຽດ "TMPDIR" ເມື່ອເປີດໄຟລ໌ຊົ່ວຄາວທີ່ບໍ່ເປີດເຜີຍຊື່.
ເວທີ Specific ການປ່ຽນແປງ
Perl ແມ່ນ Portable incredibly. ໂດຍທົ່ວໄປ, ຖ້າເວທີມີ C compiler, ຜູ້ໃດຜູ້ຫນຶ່ງມີ
ported Perl ກັບມັນ (ຫຼືຈະໃນໄວໆນີ້). ພວກເຮົາຍິນດີທີ່ຈະປະກາດວ່າ Perl 5.12 ປະກອບມີການສະຫນັບສະຫນູນ
ສໍາລັບເວທີໃຫມ່ຈໍານວນຫນຶ່ງ. ໃນເວລາດຽວກັນ, ມັນເປັນເວລາທີ່ຈະອໍາລາບາງ (ຫຼາຍ) ເກົ່າ
ຫມູ່ເພື່ອນ.
ໃຫມ່ ເວທີ
ເມືອງ Haiku
ນັກພັດທະນາຂອງ Perl ໄດ້ລວມເອົາ patches ຈາກຜູ້ຮັກສາຂອງ Haiku. Perl ໃນປັດຈຸບັນຄວນຈະສ້າງ
ໃນ Haiku.
MirOS BSD
ໃນປັດຈຸບັນ Perl ຄວນສ້າງຢູ່ໃນ MirOS BSD.
ຢຸດເຊົາ ເວທີ
ໂດເມນ/OS
ມິນທີ
Tenon MachTen
ການປັບປຸງ ເວທີ
Aix
· ເອົາອອກ libbsd ສໍາລັບ AIX 5L ແລະ 6.1. ພຽງແຕ່ "flock()" ຖືກນໍາໃຊ້ຈາກ libbsd.
· ເອົາອອກ libgdbm ສໍາລັບ AIX 5L ແລະ 6.1 if libgdbm < 1.8.3-5 ຖືກຕິດຕັ້ງ. ໄດ້ libgdbm
ຖືກຈັດສົ່ງເປັນຊຸດທາງເລືອກທີ່ມີ AIX Toolbox. ແຕ່ຫນ້າເສຍດາຍ
ຮຸ່ນຂ້າງລຸ່ມນີ້ 1.8.3-5 ຖືກທໍາລາຍ.
· ການປ່ຽນແປງຄໍາແນະນໍາຫມາຍຄວາມວ່າ AIX 4.2 ຄວນເຮັດວຽກອີກເທື່ອຫນຶ່ງ.
Cygwin
· Perl ໃນປັດຈຸບັນສະຫນັບສະຫນູນ IPv6 ໃນ Cygwin 1.7 ແລະໃຫມ່ກວ່າ.
· ໃນ Cygwin ໃນປັດຈຸບັນພວກເຮົາຖອດຕົວເລກສຸດທ້າຍອອກຈາກ DLL. ນີ້ແມ່ນພຶດຕິກໍາ
ໃນ cygwin.com ກໍ່ສ້າງສໍາລັບປີ. ໄຟລ໌ຄໍາແນະນໍາໄດ້ຖືກປັບປຸງ.
ດາວິນ (Mac OS X)
· ຂ້າມການທົດສອບ be_BY.CP1131 locale ໃນ Darwin 10 (Mac OS X 10.6), ເນື່ອງຈາກວ່າມັນຍັງຢູ່.
ບັກ.
· ແກ້ໄຂຄວາມບໍ່ສົມບູນໃນ regexp ທີ່ໃຊ້ເພື່ອລະບຸທ້ອງຖິ່ນ buggy ໃນ Darwin 8 ແລະ
9 (Mac OS X 10.4 ແລະ 10.5, ຕາມລໍາດັບ).
DragonFly BSD
· ແກ້ໄຂການເລືອກຫ້ອງສະໝຸດກະທູ້ [perl #69686]
FreeBSD
·ໄຟລ໌ຄໍາແນະນໍາໃນປັດຈຸບັນກໍານົດຫ້ອງສະຫມຸດກະທູ້ທີ່ຖືກຕ້ອງໃນ FreeBSD 7 ແລະ
ຕໍ່ມາ.
ໄອຣິສ
· ດຽວນີ້ພວກເຮົາເຮັດວຽກກ່ຽວກັບຂໍ້ບົກພ່ອງຂອງໂປຣເຊສເຊີທີ່ແປກປະຫຼາດໃນຄອມພີເລີ Irix 6.5: "cc -E -"
ໂຊກບໍ່ດີເຂົ້າໄປໃນໂໝດ K&R, ແຕ່ "cc -E file.c" ບໍ່ໄດ້.
NetBSD
· ຄຳແນະນຳຕອນນີ້ຮອງຮັບເວີຊັນ 5.*.
OpenVMS
· "-UDEBUGGING" ດຽວນີ້ເປັນຄ່າເລີ່ມຕົ້ນໃນ VMS.
ເຊັ່ນດຽວກັນກັບມັນເຄີຍຢູ່ທົ່ວທຸກແຫ່ງສໍາລັບອາຍຸແລະອາຍຸ. ຍັງເຮັດເສັ້ນຄໍາສັ່ງ
ການຄັດເລືອກຂອງ -UDEBUGGING ແລະ -DDEBUGGING ເຮັດວຽກຢູ່ໃນ configure.com; ກ່ອນທີ່ພຽງແຕ່
ວິທີການປິດມັນໂດຍການເວົ້າວ່າບໍ່ຢູ່ໃນຄໍາຕອບຂອງຄໍາຖາມແບບໂຕ້ຕອບ.
· ຂະໜາດ buffer pipe ເລີ່ມຕົ້ນໃນ VMS ໄດ້ຖືກອັບເດດເປັນ 8192 ໃນລະບົບ 64-bit.
·ອ່ານຈາກໄຟລ໌ຊົ່ວຄາວໃນຫນ່ວຍຄວາມຈໍາຂອງ "PerlIO:: scalar" ໃຊ້ເພື່ອລົ້ມເຫລວຖ້າຫາກວ່າ $/
ຖືກຕັ້ງເປັນການອ້າງອີງຕົວເລກ (ເພື່ອຊີ້ບອກການອ່ານແບບບັນທຶກ). ນີ້ແມ່ນດຽວນີ້
ຄົງທີ່.
· VMS ປະຈຸບັນສະຫນັບສະຫນູນ "getgrgid".
· ການປັບປຸງແລະການທໍາຄວາມສະອາດຈໍານວນຫຼາຍໄດ້ຮັບການເຮັດໃຫ້ການຈັດການຊື່ໄຟລ໌ VMS ແລະ
ລະຫັດການແປງ.
· ການເປີດໃຊ້ຊື່ "PERL_VMS_POSIX_EXIT" ດຽວນີ້ເຂົ້າລະຫັດສະຖານະທາງອອກ POSIX ໃນ
ຄ່າເງື່ອນໄຂ VMS ສໍາລັບການໂຕ້ຕອບທີ່ດີກວ່າກັບ GNV's bash shell ແລະອື່ນໆ
ຜົນປະໂຫຍດທີ່ຂຶ້ນກັບຄ່າທາງອອກ POSIX. ເບິ່ງ "$?" ໃນ perlvms ສໍາລັບລາຍລະອຽດ.
· ຕອນນີ້ "File::Copy" ກວດພົບໂໝດຄວາມເຂົ້າກັນໄດ້ຂອງ Unix ໃນ VMS.
Stratus VOS
·ການປ່ຽນແປງຕ່າງໆຈາກ Stratus ໄດ້ຖືກລວມເຂົ້າກັນ.
Symbian
· ຕອນນີ້ຮອງຮັບ Symbian S60 3.2 SDK ແລະ S60 5.0 SDK.
Windows
· Perl 5.12 ຮອງຮັບ Windows 2000 ແລະຕໍ່ມາ. ລະຫັດສະຫນັບສະຫນູນສໍາລັບການສະບັບເກົ່າ
ຂອງ Windows ແມ່ນຍັງລວມຢູ່, ແຕ່ຈະຖືກໂຍກຍ້າຍອອກໃນລະຫວ່າງການພັດທະນາຕໍ່ໄປ
ວົງຈອນ
· ການຊ່ວຍເຫຼືອເບື້ອງຕົ້ນສຳລັບການກໍ່ສ້າງ Perl ດ້ວຍ MinGW-w64 ແມ່ນມີໃຫ້ແລ້ວ.
· perl.exe ໃນປັດຈຸບັນປະກອບມີຊັບພະຍາກອນ manifest ເພື່ອລະບຸການຕັ້ງຄ່າ "trustInfo" ສໍາລັບ
Windows Vista ແລະຕໍ່ມາ. ຖ້າບໍ່ມີການຕັ້ງຄ່ານີ້ Windows ຈະປິ່ນປົວ perl.exe ເປັນຫນຶ່ງ
ຄໍາຮ້ອງສະຫມັກ legacy ແລະນໍາໃຊ້ heuristics ຕ່າງໆເຊັ່ນ: redirecting ການເຂົ້າເຖິງ
ພື້ນທີ່ລະບົບໄຟລ໌ທີ່ຖືກປ້ອງກັນ (ເຊັ່ນ: ໂຟນເດີ "Program Files") ໃຫ້ກັບຜູ້ໃຊ້
"VirtualStore" ແທນທີ່ຈະສ້າງ "ການອະນຸຍາດຖືກປະຕິເສດ" ຜິດພາດ.
ຊັບພະຍາກອນ manifest ຍັງຮ້ອງຂໍ Microsoft Common-Controls ເວີຊັນ 6.0
(ການຄວບຄຸມຫົວຂໍ້ນໍາສະເຫນີໃນ Windows XP). ກວດເບິ່ງ Win32::VisualStyles
ໂມດູນໃນ CPAN ເພື່ອປ່ຽນກັບໄປໃຊ້ການຄວບຄຸມແບບເກົ່າທີ່ບໍ່ມີຮູບແບບສໍາລັບແບບເກົ່າ
ຄໍາຮ້ອງສະຫມັກ.
· ຕອນນີ້ຕົວປະຕິບັດການ filetest "-t" ກັບຄືນມາເປັນຈິງເທົ່ານັ້ນຖ້າ filehandle ເຊື່ອມຕໍ່ກັບ
ປ່ອງຢ້ຽມ console. ໃນສະບັບທີ່ຜ່ານມາຂອງ Perl ມັນຈະກັບຄືນມາເປັນຄວາມຈິງສໍາລັບທຸກຄົນ
ອຸປະກອນຮູບແບບຕົວອັກສອນ, ລວມທັງ null ແລະ LPT1.
· "-p" filetest operator ໃນປັດຈຸບັນເຮັດວຽກຢ່າງຖືກຕ້ອງ, ແລະ Fcntl::S_IFIFO ຄົງທີ່ແມ່ນ
ກໍານົດເວລາທີ່ Perl ຖືກລວບລວມກັບ Microsoft Visual C. ໃນຮຸ່ນ Perl ທີ່ຜ່ານມາ
"-p" ສົ່ງຄ່າທີ່ບໍ່ຖືກຕ້ອງສະເໝີ, ແລະຄ່າຄົງທີ່ Fcntl::S_IFIFO ບໍ່ແມ່ນ.
ກໍານົດ.
ບັກນີ້ແມ່ນສະເພາະກັບ Microsoft Visual C ແລະບໍ່ເຄີຍໄດ້ຮັບຜົນກະທົບ Perl binaries ທີ່ສ້າງຂຶ້ນ
ກັບ MinGW.
· ລະຫັດຄວາມຜິດພາດຂອງເຕົ້າຮັບແມ່ນໄດ້ຮັບການສະຫນັບສະຫນູນຢ່າງກວ້າງຂວາງໃນປັດຈຸບັນ: ໂມດູນ POSIX ຈະ
ກໍານົດຊື່ສັນຍາລັກ, ເຊັ່ນ POSIX::EWOULDBLOCK, ແລະການປັບຕົວຂອງເຕົ້າຮັບ
ລະຫັດຂໍ້ຜິດພາດໃນ $! ເຮັດວຽກເຊັ່ນດຽວກັນໃນປັດຈຸບັນ;
C:\>perl -MPOSIX -E "$!=POSIX::EWOULDBLOCK; ເວົ້າ $!"
ການເຮັດວຽກຂອງເຕົ້າຮັບທີ່ບໍ່ມີການປິດກັ້ນບໍ່ສາມາດສໍາເລັດໃນທັນທີ.
· ຝູງ() ຕອນນີ້ຈະຕັ້ງລະຫັດຄວາມຜິດພາດທີ່ເຂົ້າໃຈໄດ້ໃນ $!. ສຳເນົາເວີຊັນ Perl ທີ່ຜ່ານມາ
ຄ່າຂອງ $^E ເປັນ $!, ເຊິ່ງກໍ່ໃຫ້ເກີດຄວາມສັບສົນຫຼາຍ.
· ເລືອກ() ໃນປັດຈຸບັນສະຫນັບສະຫນູນ "fd_set" ຫວ່າງເປົ່າທັງຫມົດຢ່າງຖືກຕ້ອງກວ່າ.
· '.\foo' ແລະ '..\foo' ຖືກປະຕິບັດແຕກຕ່າງຈາກ './foo' ແລະ '../foo' ໂດຍ "do"
ແລະ "ຕ້ອງການ" [RT #63492].
· ການປັບປຸງການຈັດການປ່ອງຢ້ຽມຂໍ້ຄວາມຫມາຍຄວາມວ່າ "ປຸກ" ແລະ "ຂ້າ" ຂໍ້ຄວາມຈະບໍ່ມີ
ຕໍ່ໄປອີກແລ້ວຈະຖືກຫຼຸດລົງພາຍໃຕ້ເງື່ອນໄຂການແຂ່ງຂັນ.
· ໂຄງສ້າງພື້ນຖານກໍ່ສ້າງຂອງ Perl ຫຼາຍໆອັນແມ່ນບໍ່ໄດ້ປ່ຽນເປັນສາຍ win32 ອີກຕໍ່ໄປ
ສິ້ນສຸດໃນເວລາປ່ອຍ. ຖ້າອັນນີ້ເຮັດໃຫ້ເຈົ້າເຈັບປວດ, ກະລຸນາລາຍງານບັນຫາກັບ ບ
ໂຄງການ perlbug ປະກອບມີ perl.
ເປັນທີ່ຮູ້ຈັກ ບັນຫາ
ນີ້ແມ່ນບັນຊີລາຍຊື່ຂອງບາງຂໍ້ບົກພ່ອງທີ່ບໍ່ໄດ້ແກ້ໄຂທີ່ສໍາຄັນ, ເຊິ່ງເປັນການຖົດຖອຍຈາກ 5.10.x.
ຫຼື 5.8.x.
·ບາງການທົດສອບ CPANPLUS ອາດຈະລົ້ມເຫລວຖ້າມີໄຟລ໌ທີ່ເຮັດວຽກ ../../cpanp-run-perl
ຢູ່ນອກລະບົບສ້າງຂອງທ່ານ. ຄວາມລົ້ມເຫຼວບໍ່ຄວນຫມາຍຄວາມວ່າມີບັນຫາກັບ
ຊອບແວທີ່ເປັນປະໂຫຍດຕົວຈິງ. ບັກຖືກແກ້ໄຂແລ້ວໃນ [RT #74188] ແລະຖືກກຳນົດເວລາ
ສໍາລັບການລວມຢູ່ໃນ perl-v5.12.1.
· "List::Util::first" behaves misbehaves ໃນທີ່ປະທັບຂອງ lexical $_ (ແນະນໍາໂດຍປົກກະຕິ.
ໂດຍ "$_ ຂອງຂ້ອຍ" ຫຼື implicitly ໂດຍ "ມອບໃຫ້"). ຕົວແປທີ່ຖືກກໍານົດໄວ້ສໍາລັບການເຮັດຊ້ໍາແຕ່ລະຄັ້ງ
ແມ່ນຕົວແປແພັກເກັດ $_, ບໍ່ແມ່ນ lexical $_ [RT #67694].
ບັນຫາທີ່ຄ້າຍຄືກັນອາດຈະເກີດຂື້ນໃນໂມດູນອື່ນໆທີ່ສະຫນອງຫນ້າທີ່ໃຊ້ບລັອກ
ເປັນການໂຕ້ຖຽງທໍາອິດຂອງພວກເຂົາ, ຄື
foo { ... $_ ...} ບັນຊີລາຍຊື່
· ບາງ regexes ອາດຈະແລ່ນຊ້າກວ່າຫຼາຍເມື່ອແລ່ນຢູ່ໃນກະທູ້ເດັກທຽບກັບ
thread ຮູບແບບໄດ້ຖືກລວບລວມເຂົ້າໄປໃນ [RT #55600].
· ສິ່ງຕ່າງໆເຊັ່ນ ""\N{LATIN SMALL LIGATURE FF}" =~ /\N{LATIN SMALL LETTER F}+/" ຈະປາກົດຂຶ້ນ
ເພື່ອວາງສາຍໃນຂະນະທີ່ພວກເຂົາເຂົ້າໄປໃນວົງວຽນຍາວຫຼາຍ [RT #72998].
· ພະນັກງານຫຼາຍຄົນໄດ້ລາຍງານອຸປະຕິເຫດທີ່ລຶກລັບເມື່ອຊຸດທົດສອບທັງໝົດຂອງ Perl ຖືກແລ່ນ
ຫຼັງຈາກການກໍ່ສ້າງໃນບາງລະບົບ Windows 2000. ເມື່ອດໍາເນີນການດ້ວຍມື, ການທົດສອບສ່ວນບຸກຄົນ
ລາຍງານວ່າເຮັດວຽກໄດ້ດີ.
ອີຣານຕາ
·ອັນນີ້ແມ່ນຕົວຈິງແລ້ວການປ່ຽນແປງທີ່ນໍາສະເຫນີໃນ 5.10.0, ແຕ່ມັນພາດໂອກາດນີ້
perldelta ຂອງການປ່ອຍ, ສະນັ້ນມັນຖືກກ່າວເຖິງຢູ່ທີ່ນີ້ແທນ.
ການແກ້ໄຂຂໍ້ບົກພ່ອງທີ່ກ່ຽວຂ້ອງກັບການຈັດການຕົວແກ້ໄຂ "/m" ແລະ "qr" ເຮັດໃຫ້ເກີດການປ່ຽນແປງ.
ພຶດຕິກໍາລະຫວ່າງ 5.8.x ແລະ 5.10.0:
# ກົງກັນໃນ 5.8.x, ບໍ່ກົງກັນໃນ 5.10.0
$re = qr/^bar/; "foo\nbar" =~ /$re/m;
ຂອບໃຈ
Perl 5.12.0 ເປັນຕົວແທນປະມານສອງປີຂອງການພັດທະນານັບຕັ້ງແຕ່ Perl 5.10.0 ແລະ
ມີຫຼາຍກວ່າ 750,000 ເສັ້ນຂອງການປ່ຽນແປງໃນທົ່ວຫຼາຍກວ່າ 3,000 ໄຟລ໌ຈາກຫຼາຍກວ່າ 200 ຜູ້ຂຽນແລະ
committers.
Perl ສືບຕໍ່ຈະເລີນຮຸ່ງເຮືອງໃນທົດສະວັດທີສາມຂອງຕົນຍ້ອນຊຸມຊົນຂອງຜູ້ໃຊ້ທີ່ມີຊີວິດຊີວາ
ແລະຜູ້ພັດທະນາ. ປະຊາຊົນດັ່ງຕໍ່ໄປນີ້ແມ່ນເປັນທີ່ຮູ້ຈັກໄດ້ປະກອບສ່ວນການປັບປຸງທີ່
ກາຍເປັນ Perl 5.12.0:
Aaron Crane, Abe Timmerman, Abhijit Menon-Sen, Abigail, Adam Russell, Adriano Ferreira,
AEvar Arnfjoer` Bjarmason, Alan Grover, Alexandr Ciornii, Alex Davies, Alex Vandiver,
Andreas Koenig, Andrew Rodland, [email protected], Andy Armstrong, Andy Dougherty, Jose
AUGUSTE-ETIENNE, Benjamin Smith, Ben Morrow, bharanee rathna, Bo Borgerson, Bo Lindbergh,
Brad Gilbert, Bram, Brendan O'Dea, brian d foy, Charles Bailey, Chip Salzenberg, Chris
'BinGOs' Williams, Christoph Lamprecht, Chris Williams, chromatic, Claes Jakobsson, Craig
A. Berry, Dan Dascalescu, Daniel Frederick Crisman, Daniel M. Quinlan, Dan Jacobson, Dan
Kogai, Dave Mitchell, Dave Rolsky, David Cantrell, David Dick, David Golden, David
Mitchell, David M. Syzdek, David Nicol, David Wheeler, Dennis Kaarsemaker, Dintelmann,
Peter, Dominic Dunlop, Dr.Ruud, Duke Leto, Enrico Sorcinelli, Eric Brine, ພໍ່
Chrysostomos, Florian Ragwitz, Frank Wiegand, Gabor Szabo, Gene Sullivan, Geoffrey T.
Dairiki, George Greer, Gerard Goossen, Gisle Aas, Goro Fuji, Graham Barr, Green, Paul,
Hans Dieter Pearcey, Harmen, H. Merijn Brand, Hugo van der Sanden, Ian Goodacre, Igor
Sutton, Ingo Weinhold, James Bence, James Mastros, Jan Dubois, Jari Aalto, Jarkko
Hietaniemi, Jay Hannah, Jerry Hedden, Jesse Vincent, Jim Cromie, Jody Belka, John E.
Malmberg, John Malmberg, John Peacock, John Peacock ຜ່ານ RT, John P. Linderman, John
Wright, Josh ben Jore, Jos I. Boumans, Karl Williamson, Kenichi Ishigaki, Ken Williams,
Kevin Brintnall, Kevin Ryde, Kurt Starsinic, Leon Brocard, Lubomir Rintel, Luke Ross,
Marcel Gruenauer, Marcus Holland-Moritz, Mark Jason Dominus, Marko Asplund, Martin Hasch,
Mashrab Kuvatov, Matt Kraai, Matt S Trout, Max Maischein, Michael Breen, Michael Cartmell,
Michael G Schwern, Michael Witten, Mike Giroux, Milosz Tanski, Moritz Lenz, Nicholas
ຄລາກ, Nick Cleaton, Niko Tyni, ສະເຫນີ Kaye, Osvaldo Villalon, Paul Fenwick, Paul Gaborit,
Paul Green, Paul Johnson, Paul Marques, Philip Hazel, Philippe Bruhat, Rafael Garcia-
Suarez, Rainer Tammer, Rajesh Mandalemula, Reini Urban, Renee Baecker, Ricardo Signes,
Ricardo SIGNES, Richard Foley, Rich Rauenzahn, Rick Delaney, Risto Kankkunen, Robert May,
Roberto C. Sanchez, Robin Barker, SADAHIRO Tomoyuki, Salvador Ortiz Garcia, Sam Vilain,
Scott Lanning, Sebastien Aperghis-Tramoni, Sergio Durigan Junior, ປາ Shlomi, Simon
'corecode' Schubert, Sisyphus, Slaven Rezic, Smylers, Steffen Mueller, Steffen Ullrich,
Stepan Kasal, Steve Hay, Steven Schubiger, Steve Peters, Tels, The Doctor, Tim Bunce, Tim
Jenness, Todd Rinaldo, Tom Christiansen, Tom Hukins, Tom Wyant, Tony Cook, Torsten
Schoenfeld, Tye McQueen, Vadim Konovalov, Vincent Pit, Hio YAMASHINA, Yasuhiro Matsumoto,
Yitzchak Scott-Thoennes, Yuval Kogman, Yves Orton, Zefram, Zsban Ambrus
ອັນນີ້ບໍ່ສົມບູນແບບຢ່າງໜັກໜ່ວງ ເພາະມັນຖືກສ້າງໂດຍອັດຕະໂນມັດຈາກປະຫວັດການຄວບຄຸມເວີຊັນ.
ໂດຍສະເພາະ, ມັນບໍ່ໄດ້ລວມເອົາຊື່ຂອງຜູ້ປະກອບສ່ວນ (ຂອບໃຈຫຼາຍ).
ຜູ້ທີ່ລາຍງານບັນຫາໃນສະບັບທີ່ຜ່ານມາຂອງ Perl ທີ່ຊ່ວຍເຮັດໃຫ້ Perl 5.12.0 ດີຂຶ້ນ. ສໍາລັບ
ບັນຊີລາຍຊື່ຄົບຖ້ວນກວ່າຂອງຜູ້ປະກອບສ່ວນປະຫວັດສາດຂອງ Perl, ກະລຸນາເບິ່ງ "AUTHORS"
ໄຟລ໌ໃນການແຈກຢາຍ Perl 5.12.0.
ປັ໊ມ "ບໍານານ" ຂອງພວກເຮົາ Nicholas Clark ແລະ Rafael Garcia-Suarez ຄວນຂໍຂອບໃຈເປັນພິເສດສໍາລັບ
ການປະກອບສ່ວນອັນໃຫຍ່ຫຼວງ ແລະອັນໃຫຍ່ຫຼວງຂອງເຂົາເຈົ້າຢ່າງຕໍ່ເນື່ອງ. Nicholas ສ່ວນບຸກຄົນຂຽນຫຼາຍກວ່າ
30% ຂອງ patches ນັບຕັ້ງແຕ່ 5.10.0. Rafael ມາຢູ່ໃນອັນດັບສອງໃນ patch authorship ກັບ 11%, ແຕ່
ເປັນຄັ້ງທໍາອິດໂດຍການສັກຢາຍາວໃນ committing patches authored by others, pushing 44% ຂອງ
commits ນັບຕັ້ງແຕ່ 5.10.0 ໃນຫມວດນີ້, ເລື້ອຍໆຫຼັງຈາກການສະຫນອງການເປັນຄູຝຶກສອນຢ່າງຫຼວງຫຼາຍກັບ
ຜູ້ຂຽນ patch. ສະຖິຕິເຫຼົ່ານີ້ບໍ່ປະກອບດ້ວຍການປະກອບສ່ວນຂອງເຂົາເຈົ້າທັງຫມົດ, ແຕ່ສະແດງອອກ
ໂດຍຫຍໍ້ວ່າພວກເຮົາບໍ່ສາມາດເຮັດໄດ້ໂດຍບໍ່ມີພວກມັນ.
ການປ່ຽນແປງຫຼາຍຢ່າງລວມຢູ່ໃນສະບັບນີ້ແມ່ນມາຈາກໂມດູນ CPAN ລວມຢູ່ໃນ
ຫຼັກ Perl. ພວກເຮົາຂໍຂອບໃຈກັບຊຸມຊົນ CPAN ທັງຫມົດສໍາລັບການຊ່ວຍໃຫ້ Perl ຈະເລີນຮຸ່ງເຮືອງ.
ການລາຍງານ ແມງໄມ້
ຖ້າເຈົ້າພົບສິ່ງທີ່ເຈົ້າຄິດວ່າເປັນຂໍ້ບົກພ່ອງ, ເຈົ້າອາດຈະກວດເບິ່ງບົດຄວາມທີ່ໂພສເມື່ອບໍ່ດົນມານີ້
ກຸ່ມຂ່າວ comp.lang.perl.misc ແລະຖານຂໍ້ມູນ perl bug ຢູ່http://rt.perl.org/perlbug/>.
ອາດຈະມີຂໍ້ມູນຢູ່ທີ່http://www.perl.org/>, ຫນ້າທໍາອິດ Perl.
ຖ້າທ່ານເຊື່ອວ່າທ່ານມີຂໍ້ບົກພ່ອງທີ່ບໍ່ໄດ້ລາຍງານ, ກະລຸນາດໍາເນີນການ perlbug ໂຄງການລວມກັບ
ການປ່ອຍຕົວຂອງເຈົ້າ. ໃຫ້ແນ່ໃຈວ່າຈະຕັດ bug ຂອງທ່ານລົງເປັນກໍລະນີທົດສອບຂະຫນາດນ້ອຍແຕ່ພຽງພໍ. ບັກຂອງເຈົ້າ
ບົດລາຍງານ, ພ້ອມກັບຜົນຜະລິດຂອງ "perl -V", ຈະຖືກສົ່ງໄປຫາ [email protected] ຈະ
ວິເຄາະໂດຍທີມງານ Porting Perl.
ຖ້າຂໍ້ບົກພ່ອງທີ່ທ່ານກໍາລັງລາຍງານມີຜົນກະທົບດ້ານຄວາມປອດໄພ, ເຊິ່ງເຮັດໃຫ້ມັນບໍ່ເຫມາະສົມ
ສົ່ງໄປຫາບັນຊີລາຍຊື່ທາງໄປສະນີທີ່ເກັບໄວ້ສາທາລະນະ, ຫຼັງຈາກນັ້ນກະລຸນາສົ່ງໄປທີ່
[email protected]. ນີ້ຊີ້ໃຫ້ເຫັນເຖິງການສັ່ງຈອງທີ່ປິດການສົ່ງຈົດໝາຍທີ່ບໍ່ໄດ້ເກັບໄວ້
ບັນຊີລາຍຊື່, ເຊິ່ງປະກອບມີຄະນະກໍາມະຫຼັກທັງຫມົດ, ຜູ້ທີ່ຈະສາມາດຊ່ວຍປະເມີນຜົນກະທົບ
ຂອງບັນຫາ, ຊອກຫາການແກ້ໄຂ, ແລະການຊ່ວຍເຫຼືອປະສານງານການປ່ອຍການແກ້ໄຂເພື່ອ
ຫຼຸດຜ່ອນຫຼືແກ້ໄຂບັນຫາໃນທົ່ວທຸກເວທີທີ່ Perl ໄດ້ຮັບການສະຫນັບສະຫນູນ. ກະລຸນາເທົ່ານັ້ນ
ໃຊ້ທີ່ຢູ່ນີ້ສໍາລັບບັນຫາຄວາມປອດໄພໃນຫຼັກ Perl, ບໍ່ແມ່ນສໍາລັບໂມດູນທີ່ເປັນເອກະລາດ
ແຈກຢາຍຢູ່ໃນ CPAN.
ໃຊ້ perl5120delta ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net