Amazon Best VPN GoSearch

Favicon OnWorks

perl58delta - Dalam Talian di Awan

Jalankan perl58delta dalam penyedia pengehosan percuma OnWorks melalui Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS

Ini ialah arahan perl58delta yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.

JADUAL:

NAMA


perl58delta - apa yang baharu untuk perl v5.8.0

DESCRIPTION


Dokumen ini menerangkan perbezaan antara keluaran 5.6.0 dan keluaran 5.8.0.

Banyak pembetulan pepijat dalam 5.8.0 telah dilihat dalam keluaran penyelenggaraan 5.6.1 sejak
kedua-dua keluaran disimpan rapat (sementara 5.8.0 masih dipanggil
5.7.sesuatu).

Perubahan yang telah disepadukan ke dalam keluaran 5.6.1 ditandakan "[561]". Banyak ini
perubahan telah dibangunkan lagi sejak 5.6.1 dikeluarkan, yang ditandakan "[561+]".

Anda boleh melihat senarai perubahan dalam keluaran 5.6.1 (kedua-duanya daripada keluaran 5.005_03 dan
keluaran 5.6.0) dengan membaca perl561delta.

Info Terkini In 5.8.0


· Sokongan Unicode yang lebih baik

· Pelaksanaan IO Baharu

· Pelaksanaan Benang Baharu

· Ketepatan Numerik yang Lebih Baik

· Isyarat Selamat

· Banyak Modul Baharu

· Ujian Regresi yang Lebih Luas

Tidak serasi Perubahan


Perduaan Ketidaksesuaian
Perl 5.8 is tidak perduaan serasi bersama awal siaran of Perl.

anda mempunyai kepada mengumpul semula Matlamat XS modul.

(Modul Perl tulen harus terus berfungsi.)

Sebab utama ketidaksinambungan adalah seni bina IO baharu yang dipanggil PerlIO. PerlIO
ialah konfigurasi lalai kerana tanpanya banyak ciri baharu Perl 5.8 tidak boleh
digunakan. Dalam erti kata lain: anda hanya perlu menyusun semula modul anda yang mengandungi kod XS, maaf
tentang itu.

Dalam keluaran masa hadapan Perl, modul XS bukan PerlIO sedar mungkin menjadi tidak disokong sepenuhnya.
Ini seharusnya tidak terlalu sukar untuk pengarang modul, walau bagaimanapun: PerlIO telah direka bentuk sebagai a
penggantian drop-in (pada tahap kod sumber) untuk antara muka stdio.

Bergantung pada platform anda, terdapat juga sebab lain mengapa kami memutuskan untuk memecahkan binari
keserasian, sila baca.

64-bit platform and malloc
Jika penunjuk anda adalah 64 bit lebar, Perl malloc tidak lagi digunakan kerana ia berfungsi
tidak berfungsi dengan baik dengan penunjuk 8-bait. Juga, biasanya sistem mallocs pada platform tersebut
adalah lebih baik dioptimumkan untuk model memori yang besar daripada Perl malloc. Sedikit ingatan-
aplikasi Perl yang lapar seperti PDL tidak berfungsi dengan baik dengan malloc Perl. Akhirnya, lain-lain
aplikasi daripada Perl (seperti mod_perl) cenderung lebih suka sistem malloc. begitu
platform termasuk Alpha dan 64-bit HPPA, MIPS, PPC dan Sparc.

AIX Pemuatan dinaikkan
Pemuatan dinaik AIX kini menggunakan dalam AIX mengeluarkan 4.3 dan lebih baharu antara muka dlopen asli bagi
AIX bukannya antara muka yang dicontohi lama. Perubahan ini mungkin akan pecah ke belakang
keserasian dengan modul yang disusun. Perubahan itu dibuat untuk menjadikan Perl lebih patuh
aplikasi lain seperti mod_perl yang menggunakan antara muka asli AIX.

Atribut khususnya "saya" pembolehubah kini ditangani at masa larian
Sintaks "EXPR saya : ATTRS" kini menggunakan atribut pembolehubah pada masa jalan. (Subrutin dan
pembolehubah "kami" masih mendapat atribut digunakan pada masa penyusunan.) Lihat atribut untuk
maklumat tambahan. Walau bagaimanapun, khususnya, ini membolehkan atribut pembolehubah berguna
untuk antara muka "ikat", yang merupakan kekurangan daripada keluaran terdahulu. Perhatikan bahawa yang baru
semantik tidak berfungsi dengan modul Attribute::Handlers (pada versi 0.76).

Soket Lanjutan Dinamik in VMS
Sambungan Soket kini dimuatkan secara dinamik dan bukannya dibina secara statik. Ini
mungkin atau mungkin bukan masalah dengan susunan TCP/IP purba VMS: kami tidak tahu sejak kami
tidak dapat menguji Perl dalam konfigurasi sedemikian.

format IEEE Terapung Titik Lalai on OpenVMS Alfa
Perl kini menggunakan format IEEE (T_FLOAT) sebagai format titik terapung dalaman lalai
OpenVMS Alpha, berpotensi memecahkan keserasian binari dengan perpustakaan luaran atau
data sedia ada. G_FLOAT masih tersedia sebagai pilihan konfigurasi. Lalai pada VAX
(D_FLOAT) tidak berubah.

Baru Unicode Semantik (no lebih "gunakan utf8", hampir)
Sebelum ini dalam Perl 5.6 untuk menggunakan Unicode seseorang akan mengatakan "gunakan utf8" dan kemudian operasi
(seperti penggabungan rentetan) sedar Unicode dalam skop leksikal itu.

Ini didapati sebagai antara muka yang menyusahkan, dan dalam Perl 5.8 model Unicode mempunyai
berubah sepenuhnya: kini "Unicodeness" terikat pada data itu sendiri, dan untuk kebanyakan
masa "use utf8" tidak diperlukan sama sekali. Satu-satunya penggunaan "use utf8" yang tinggal ialah apabila
Skrip Perl sendiri telah ditulis dalam pengekodan UTF-8 Unicode. (UTF-8 belum
dijadikan lalai kerana terdapat banyak skrip Perl di luar sana yang menggunakan pelbagai
set aksara lapan bit kebangsaan, yang akan menyalahi undang-undang dalam UTF-8.)

Lihat perluniintro untuk penjelasan model semasa, dan utf8 untuk kegunaan semasa
pragma utf8.

Baru Unicode Hartanah
Unicode skrip kini disokong. Skrip adalah serupa dengan (dan lebih baik daripada) Unicode
blok. Perbezaan antara skrip dan blok ialah skrip ialah glif yang digunakan oleh a
bahasa atau kumpulan bahasa, manakala blok adalah kumpulan yang lebih tiruan daripada
(kebanyakannya) 256 aksara berdasarkan penomboran Unicode.

Secara umum, skrip lebih inklusif, tetapi tidak secara universal. Sebagai contoh, manakala
skrip "Latin" merangkumi semua aksara Latin dan pelbagai diakritiknya yang dihiasi
versi, ia tidak termasuk pelbagai tanda baca atau digit (kerana ia bukan semata-mata
"Latin").

Beberapa sifat lain kini disokong, termasuk "\p{L&}", "\p{Any}"
"\p{Ditugaskan}", "\p{Tidak Ditugaskan}", "\p{Kosong}" [561] dan "\p{SpacePerl}" [561] (bersama-sama dengan
versi "\P{...}" mereka, sudah tentu). Lihat perlunicode untuk butiran dan lebih banyak tambahan.

Awalan "In" atau "Is" pada nama yang digunakan dengan "\p{...}" dan "\P{...}" kini hampir
sentiasa pilihan. Satu-satunya pengecualian ialah awalan "In" diperlukan untuk menandakan Unicode
blok apabila nama blok bercanggah dengan nama skrip. Contohnya, "\p{Tibet}" merujuk kepada
skrip, manakala "\p{InTibetan}" merujuk kepada blok. Apabila tiada konflik nama, anda
boleh menghilangkan "In" daripada nama blok (cth. "\p{BraillePatterns}"), tetapi untuk selamat, ia
mungkin terbaik untuk sentiasa menggunakan "Dalam").

RUJUK(...) Sebaliknya Of SKALAR(...)
Rujukan kepada rujukan kini ditetapkan sebagai "REF(0x81485ec)" bukannya
"SKALAR(0x81485ec)" supaya lebih konsisten dengan nilai pulangan ref().

mengemas / membongkar D/F dikitar semula
Huruf templat D/F pek tidak didokumenkan/buka bungkus telah dikitar semula untuk kegunaan yang lebih baik: sekarang
mereka berdiri untuk dua kali ganda (jika disokong oleh platform) dan NV (Perl terapung dalaman
jenis titik). (Ia pernah menjadi alias untuk d/f, tetapi anda tidak pernah tahu itu.)

bola () kini pulangan nama fail in abjad bagi
Senarai nama fail daripada bola () (atau ) kini secara lalai diisih mengikut abjad menjadi
csh-compliant (iaitu yang berlaku sebelum ini dalam kebanyakan platform Unix). (bsd_glob() tidak
masih mengisih platform secara asli, ASCII atau EBCDIC, melainkan GLOB_ALPHASORT ditentukan.) [561]

Penghentian
· Semantik berkat(REF, REF) tidak jelas dan sehingga seseorang membuktikannya untuk membuat beberapa
rasa, haram.

· Pustaka chat2 usang yang sepatutnya tidak dibenarkan untuk melarikan diri daripada
makmal telah ditamatkan perkhidmatannya.

· Menggunakan chdir("") atau chdir(undef) dan bukannya eksplisit chdir() adalah diragui. Suatu kegagalan
(fikir chdir(some_function()) boleh membawa kepada yang tidak diingini chdir() ke direktori rumah,
oleh itu tingkah laku ini tidak digunakan lagi.

· Yang terbina pembuangan() fungsi mungkin telah hidup lebih lama daripada kebanyakan kegunaannya. Teras-
kefungsian lambakan akan kekal tersedia pada masa hadapan sebagai panggilan eksplisit kepada
"CORE::dump()", tetapi pada masa hadapan mengeluarkan gelagat panggilan "dump()" yang tidak layak
mungkin berubah.

· Contoh yang sangat berdebu dalam direktori cth/ telah dialih keluar. Cadangan untuk yang baru
contoh berkilat dialu-alukan tetapi isu utama ialah contoh perlu didokumenkan,
diuji dan (paling penting) dikekalkan.

· Urutan pelarian (palsu) \8 dan \9 kini memberikan amaran pilihan ("Tidak dikenali
melarikan diri melalui"). Tidak perlu \-melarikan sebarang aksara "\w".

· *glob{FILEHANDLE} telah ditamatkan, gunakan *glob{IO} sebaliknya.

· "Pakej;" sintaks ("pakej" tanpa hujah) telah ditamatkan. Ianya
semantik tidak pernah begitu jelas dan pelaksanaannya lebih kurang. Jika anda telah menggunakan
ciri itu untuk tidak membenarkan semua kecuali pembolehubah yang layak sepenuhnya, "gunakan ketat;" sebaliknya.

· Ciri regex POSIX yang tidak dilaksanakan [[.cc.]] dan [[=c=]] masih dikenali tetapi
kini menyebabkan kesilapan yang membawa maut. Tingkah laku sebelumnya mengabaikan mereka secara lalai dan
amaran jika diminta adalah tidak boleh diterima kerana ia, dalam satu cara, secara palsu berjanji bahawa
ciri boleh digunakan.

· Dalam keluaran akan datang, modul XS yang tidak sedar PerlIO mungkin menjadi tidak disokong sepenuhnya.
Oleh kerana PerlIO ialah pengganti drop-in untuk stdio pada tahap kod sumber, ini
tidak sepatutnya perubahan yang drastik.

· Versi perl sebelumnya dan beberapa bacaan beberapa bahagian Camel III menyiratkan bahawa
":raw" "disiplin" ialah songsang bagi ":crlf". Mematikan "clrfness" adalah tidak
cukup lama untuk menjadikan aliran benar-benar binari. Jadi lapisan PerlIO ":raw" (atau
"disiplin", untuk menggunakan istilah lama buku Unta) kini secara rasmi ditakrifkan sebagai
bersamaan dengan binmode(FH) - yang seterusnya ditakrifkan sebagai melakukan apa sahaja
perlu untuk lulus setiap bait apa adanya tanpa sebarang terjemahan. Khususnya binmode(FH)
- dan oleh itu ":raw" - kini akan mematikan kedua-dua terjemahan CRLF dan UTF-8 dan mengalih keluar
lapisan lain (cth. :pengekodan()) yang akan mengubah suai aliran bait.

· Pelaksanaan pseudo-hashes yang boleh dilihat oleh pengguna semasa (penggunaan pelik yang pertama
elemen tatasusunan) ditamatkan bermula dari Perl 5.8.0 dan akan dialih keluar dalam Perl
5.10.0, dan ciri ini akan dilaksanakan secara berbeza. Bukan sahaja arus
antara muka agak hodoh, tetapi pelaksanaan semasa memperlahankan tatasusunan dan cincang biasa
guna agak ketara. Antara muka pragma "medan" akan kekal tersedia. The
terhad Hash antara muka dijangka menjadi antara muka gantian (lihat
Hash::Util). Jika program sedia ada anda bergantung pada pelaksanaan asas,
pertimbangkan untuk menggunakan Class::PseudoHash daripada CPAN.

· Sintaks "@a->[...]" dan "%h->{...}" kini telah ditamatkan.

· Selepas bertahun-tahun mencuba, suidperl dianggap terlalu rumit untuk dipertimbangkan
benar-benar selamat. Kefungsian suidperl mungkin akan dialih keluar dalam keluaran akan datang.

· Model 5.005 utas (modul "Benang") ditamatkan dan dijangka akan dialih keluar dalam
Perl 5.10. Kod berbilang benang harus dipindahkan ke model ithread baharu (lihat
benang, benang::dikongsi dan perlthrtut).

· Alias ​​huruf besar yang telah lama ditamatkan untuk pengendali perbandingan rentetan (EQ, NE, LT,
LE, GE, GT) kini telah dialih keluar.

· Ciri tr///C dan tr///U telah dialih keluar dan tidak akan kembali; antara muka
adalah satu kesilapan. Maaf tentang itu. Untuk kefungsian yang serupa, lihat pek('U0', ...) dan
pek('C0', ...). [561]

· Terdahulu Perls menganggap "sub foo (@bar)" sebagai bersamaan dengan "sub foo (@)". Prototaip
kini disemak dengan lebih baik pada masa penyusunan untuk sintaks tidak sah. Amaran pilihan ialah
dihasilkan ("Watak haram dalam prototaip...") tetapi ini mungkin dinaik taraf kepada kematian
ralat dalam keluaran akan datang.

· Operasi "SENARAI eksekutif" dan "SENARAI sistem" kini menghasilkan amaran pada data yang tercemar dan
dalam beberapa keluaran akan datang mereka akan menghasilkan ralat yang membawa maut.

· Tingkah laku sedia ada apabila menyetempatkan tatasusunan terikat dan cincang adalah salah, dan akan menjadi
diubah dalam keluaran akan datang, jadi jangan bergantung pada gelagat sedia ada. Lihat "Menyetempatkan
Susunan Terikat dan Hash Telah Patah".

Teras tambahan


Unicode Membaik pulih
Unicode secara amnya kini sepatutnya lebih boleh digunakan berbanding dalam Perl 5.6.0 (atau pun dalam 5.6.1).
Unicode boleh digunakan dalam kekunci cincang, Unicode dalam ungkapan biasa seharusnya berfungsi sekarang, Unicode
dalam tr/// seharusnya berfungsi sekarang, Unicode dalam I/O seharusnya berfungsi sekarang. Lihat perluniintro untuk
pengenalan dan perlunicode untuk butiran.

· Pangkalan Data Aksara Unikod yang disertakan dengan Perl telah dinaik taraf kepada Unicode 3.2.0.
Untuk maklumat lanjut, lihat http://www.unicode.org/ . [561+] (5.6.1 mempunyai UCD 3.0.1.)

· Untuk pembangun yang berminat untuk meningkatkan keupayaan Unicode Perl: hampir semua UCD
fail disertakan dengan pengedaran Perl dalam lib/unicore subdirektori. The
peninggalan yang paling ketara, untuk pertimbangan ruang, ialah pangkalan data Unihan.

· Sifat \p{Blank} dan \p{SpacePerl} telah ditambah. "Kosong" adalah seperti C
isblank(), iaitu, ia mengandungi hanya "ruang putih mendatar" (watak ruang ialah,
baris baharu bukan), dan "SpacePerl" ialah Unikod bersamaan dengan "\s" (\p{Space}
bukan, kerana itu termasuk aksara penjadual menegak, manakala "\s" tidak.)

Lihat "Sifat Unicode Baharu" lebih awal dalam dokumen ini untuk mendapatkan maklumat tambahan tentang
perubahan dengan sifat Unicode.

PerlIO is Sekarang . Lalai
· IO kini secara lalai dilakukan melalui PerlIO dan bukannya "stdio" sistem. PerlIO membenarkan
"lapisan" untuk "ditolak" pada pemegang fail untuk mengubah tingkah laku pemegang. Lapisan
boleh ditentukan pada waktu terbuka melalui bentuk 3-arg open:

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

atau pada pemegang yang telah dibuka melalui "binmode" lanjutan:

binmode($fh,':encoding(iso-8859-7)');

Lapisan terbina dalam ialah: unix (baca/tulis tahap rendah), stdio (seperti dalam Perls sebelumnya),
perlio (pelaksanaan semula penimbalan stdio dalam cara mudah alih), crlf (adakah CRLF
Terjemahan "\n" seperti pada Win32, tetapi tersedia pada mana-mana platform). Lapisan mmap mungkin
tersedia jika platform menyokongnya (kebanyakannya Unix).

Lapisan yang akan digunakan secara lalai boleh ditentukan melalui pragma 'terbuka'.

Lihat "Pemasangan dan Penambahbaikan Konfigurasi" untuk kesan PerlIO pada anda
nama seni bina.

· Jika platform anda menyokong garpu (), anda boleh menggunakan borang senarai "terbuka" untuk paip. Untuk
contoh:

buka KID_PS, "-|", "ps", "aux" atau die $!;

garpu ps(1) perintah (tanpa melahirkan cangkerang, kerana terdapat lebih daripada tiga
hujah untuk buka()), dan membaca output standardnya melalui pemegang fail "KID_PS". Lihat
perlipc.

· Pemegang fail boleh ditandakan sebagai menerima pengekodan dalaman Perl bagi Unicode (UTF-8 atau
UTF-EBCDIC bergantung pada platform) oleh lapisan pseudo ":utf8" :

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

Nota untuk pengguna EBCDIC: lapisan pseudo ":utf8" tersilap dinamakan untuk anda sejak
ia bukan UTF-8 yang anda akan dapat tetapi sebaliknya UTF-EBCDIC. Lihat perlunicode,
utf8, dan http://www.unicode.org/unicode/reports/tr16/ untuk maklumat lanjut. Dalam
keluaran masa hadapan penamaan ini mungkin berubah. Lihat perluniintro untuk maklumat lanjut tentang
UTF-8.

· Jika pembolehubah persekitaran anda (LC_ALL, LC_CTYPE, LANG) kelihatan seperti anda ingin menggunakan UTF-8
(mana-mana pembolehubah sepadan dengan "/utf-?8/i"), pemegang STDIN, STDOUT, STDERR anda dan
lapisan terbuka lalai (lihat terbuka) ditandakan sebagai UTF-8. (Ciri ini, seperti baharu yang lain
ciri yang menggabungkan Unicode dan I/O, berfungsi hanya jika anda menggunakan PerlIO, tetapi itulah
lalai.)

Ambil perhatian bahawa selepas ini Perl benar-benar menganggap bahawa semuanya adalah UTF-8: contohnya jika
beberapa pemegang input tidak, Perl mungkin akan mengadu tentang data input tidak lama lagi
seperti ini "UTF-8 cacat ..." kerana mana-mana data lapan bit lama bukan UTF-8 yang sah.

Nota untuk pengarang kod: jika anda ingin membolehkan pengguna anda menggunakan UTF-8 sebagai lalai mereka
pengekodan tetapi dalam kod anda masih mempunyai strim I/O lapan bit (seperti imej atau zip
fail), anda perlu secara eksplisit buka() or binmode() dengan ":bait" (lihat "terbuka" dalam
perlfunc dan "binmode" dalam perlfunc), atau anda boleh menggunakan "binmode(FH)" (bagus untuk
pra-5.8.0 keserasian ke belakang).

· Pemegang fail boleh menterjemah pengekodan aksara daripada/ke borang Unikod dalaman Perl pada
baca/tulis melalui ":pengekodan()"lapisan.

· Pemegang fail boleh dibuka kepada fail "dalam memori" yang dipegang dalam skalar Perl melalui:

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

· Fail sementara tanpa nama tersedia tanpa perlu 'menggunakan FileHandle' atau lain-lain
modul melalui

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

Itu adalah undef literal, bukan nilai yang tidak ditentukan.

ithreads
Benang penterjemah baharu (pendek kata "benang") pelaksanaan berbilang benang, oleh
Arthur Bergman, menggantikan pelaksanaan "5.005 utas" lama. Dalam model ithreads
sebarang perkongsian data antara benang mestilah eksplisit, berbanding model di mana data
perkongsian adalah tersirat. Lihat urutan dan urutan::shared, dan perlthrtut.

Sebagai sebahagian daripada pelaksanaan ithreads, Perl juga akan menggunakan mana-mana yang diperlukan dan boleh dikesan
antara muka libc reentrant.

Terhad Labuh
Cincang terhad dihadkan kepada set kunci tertentu, tiada kunci di luar set boleh
tambah. Juga kunci individu boleh dihadkan supaya kunci tidak boleh dipadamkan dan
nilai tidak boleh diubah. Tiada sintaks baharu terlibat: modul Hash::Util ialah
antara muka pengguna.

Selamat Isyarat
Perl pernah rapuh kerana isyarat yang tiba pada saat yang tidak sesuai boleh merosakkan
Keadaan dalaman Perl. Kini Perl menangguhkan pengendalian isyarat sehingga selamat (antara
opcodes).

Perubahan ini mungkin mempunyai kesan sampingan yang mengejutkan kerana isyarat tidak lagi mengganggu Perl
serta merta. Perl kini terlebih dahulu akan menyelesaikan apa sahaja yang dilakukannya, seperti menyelesaikan dalaman
operasi (seperti urutkan ()) atau operasi luaran (seperti operasi I/O), dan hanya selepas itu
lihat sebarang isyarat tiba (dan sebelum memulakan operasi seterusnya). Tiada lagi rasuah
keadaan dalaman kerana operasi semasa sentiasa selesai dahulu, tetapi isyarat mungkin
mengambil lebih banyak masa untuk didengari. Ambil perhatian bahawa keluar daripada operasi yang berpotensi menyekat
sepatutnya masih berfungsi, walaupun.

persefahaman of nombor
Secara umumnya banyak penetapan telah berlaku dalam bidang pemahaman Perl tentang nombor,
kedua-dua integer dan titik terapung. Oleh kerana dalam banyak sistem penghuraian nombor standard
fungsi seperti "strtoul()" dan "atof()" nampaknya mempunyai pepijat, Perl cuba mengatasinya
kekurangan. Ini diharapkan menghasilkan angka yang lebih tepat.

Perl kini cuba secara dalaman untuk menggunakan nilai integer dalam penukaran berangka dan asas
aritmetik (+ - * /) jika argumen adalah integer, dan cuba juga untuk mengekalkan hasilnya
disimpan secara dalaman sebagai integer. Perubahan ini membawa kepada selalunya lebih cepat sedikit dan sentiasa kurang
aritmetik rugi. (Sebelum ini Perl sentiasa memilih nombor titik terapung dalam matematiknya.)

Arrays kini sentiasa interpolasi ke dalam dipetik dua kali tali [561]
Dalam rentetan petikan dua kali, tatasusunan kini interpolasi, tidak kira apa. Perangai dalam tadi
versi perl 5 ialah tatasusunan akan interpolasi ke dalam rentetan jika tatasusunan telah
disebut sebelum rentetan disusun, dan jika tidak Perl akan menimbulkan penyusunan maut-
kesilapan masa. Dalam versi 5.000 hingga 5.003, ralatnya ialah

Literal @example kini memerlukan garis miring ke belakang

Dalam versi 5.004_01 hingga 5.6.0, ralatnya ialah

Dalam rentetan, @example sekarang mesti ditulis sebagai \@example

Idea di sini adalah untuk membiasakan orang ramai menulis "fred\@example.com" apabila mereka
mahukan tanda "@" literal, sama seperti mereka selalu menulis "Berikan saya kembali \$5" saya apabila
mereka mahukan tanda "$" literal.

Bermula dengan 5.6.1, apabila Perl kini melihat tanda "@" dalam rentetan petikan dua kali, ia sentiasa
percubaan untuk menginterpolasi tatasusunan, tanpa mengira sama ada tatasusunan itu telah digunakan atau tidak
diisytiharkan sudah. Ralat maut telah diturunkan taraf kepada amaran pilihan:

Kemungkinan interpolasi @example yang tidak disengajakan dalam rentetan

Ini memberi amaran kepada anda bahawa "[e-mel dilindungi]" akan bertukar menjadi "fred.com" jika anda tidak
serik ke belakang "@". Lihat http://perl.plover.com/at-error.html untuk maklumat lanjut tentang
sejarah di sini.

Lain-lain Perubahan
· AUTOLOAD kini bernilai, bermakna anda boleh menambah atribut :lvalue pada AUTOLOAD
subrutin dan anda boleh menetapkan nilai pulangan AUTOLOAD.

· $Config{byteorder} (dan BYTEORDER yang sepadan dalam config.h) sebelum ini salah
dalam platform jika sizeof(long) ialah 4, tetapi sizeof(IV) ialah 8. Byteorder hanya
sizeof(long) bait panjang (1234 atau 4321), tetapi kini ia betul sizeof(IV) bait panjang,
(12345678 atau 87654321). (Masalah ini tidak menjejaskan platform Windows.)

Selain itu, $Config{byteorder} kini dikira secara dinamik--ini lebih teguh dengan "fat
binari" di mana imej boleh laku mengandungi binari untuk lebih daripada satu binari
platform, dan apabila menyusun silang.

· "perl -d:Module=arg,arg,arg" kini berfungsi (sebelum ini seseorang tidak dapat lulus dalam berbilang
hujah.)

· "buat" diikuti dengan kata kosong kini memastikan bahawa kata laluan ini bukan kata kunci (untuk mengelakkan
pepijat di mana "do q(foo.pl)" cuba memanggil subrutin yang dipanggil "q"). Ini bermakna bahawa untuk
contoh bukannya "do format()" anda mesti tulis "do &format()".

· Yang terbina pembuangan() kini memberikan amaran pilihan "dump() lebih baik ditulis sebagai
CORE::dump()", bermakna secara lalai "dump(...)" diselesaikan sebagai builtin pembuangan()
yang membuang teras dan membatalkan, bukan sebagai (mungkin) "sub dump" yang ditentukan pengguna. Untuk memanggil
yang terakhir, layakkan panggilan sebagai "&dump(...)". (Keseluruhan pembuangan() ciri adalah untuk dipertimbangkan
ditamatkan, dan mungkin dialih keluar/diubah dalam keluaran akan datang.)

· chomp() and potong () kini boleh diatasi. Walau bagaimanapun, ambil perhatian bahawa prototaip mereka (seperti yang diberikan
oleh "prototaip("CORE::chomp")" tidak ditentukan, kerana ia tidak boleh dinyatakan dan
oleh itu seseorang tidak boleh benar-benar menulis pengganti untuk mengatasi binaan ini.

· Blok END kini dijalankan walaupun anda keluar/mati dalam blok BEGIN. Secara dalaman,
pelaksanaan blok END kini dikawal oleh PL_exit_flags & PERL_EXIT_DESTRUCT_END.
Ini membolehkan gelagat baharu untuk pembenam Perl. Ini akan lalai dalam 5.10. Lihat
perlembem.

· Format kini menyokong medan perpuluhan berlapik sifar.

· Walaupun "anda tidak sepatutnya berbuat demikian", adalah mungkin untuk menulis kod yang bergantung pada Perl
tertib kunci cincang (Data:: Dumper melakukan ini). Algoritma baharu "One-at-a-Time" menghasilkan
susunan kunci cincang yang berbeza. Butiran lanjut terdapat dalam "Peningkatan Prestasi".

· lstat(FILEHANDLE) kini memberi amaran kerana operasi itu tidak masuk akal. Pada masa akan datang
mengeluarkan ini mungkin menjadi ralat yang membawa maut.

· Ralat sintaks palsu dijana dalam situasi tertentu, apabila bola () disebabkan Fail::Glob
untuk dimuatkan buat kali pertama, telah ditetapkan. [561]

· Subrutin Lvalue kini boleh mengembalikan "undef" dalam konteks senarai. Walau bagaimanapun, nilai l
ciri subrutin masih kekal sebagai eksperimen. [561+]

· Amaran yang hilang "Tidak dapat mengisytiharkan ... dereference dalam saya" telah dipulihkan (Perl mempunyainya
lebih awal tetapi ia hilang dalam keluaran kemudian.)

· Pembolehubah ungkapan biasa khas baharu telah diperkenalkan: $^N, yang mengandungi
kumpulan yang paling baru ditutup (subpadanan).

· "tiada Modul;" tidak menghasilkan ralat walaupun Modul tidak mempunyai nyahimport()
kaedah. Ini selari dengan tingkah laku "penggunaan" berbanding "import". [561]

· Operator perbandingan berangka mengembalikan "undef" jika salah satu operan ialah NaN.
Sebelum ini tingkah laku itu tidak ditentukan.

· "kami" kini boleh mempunyai atribut pilihan percubaan "unik" yang mempengaruhi cara global
pembolehubah dikongsi antara berbilang jurubahasa, lihat "kami" dalam perlfunc.

· Fungsi terbina berikut kini boleh dibatalkan: setiap (), kunci (), pop (), tolak (),
shift(), sambatan (), unshift(). [561]

· "pack() / unpack()" kini boleh mengumpulkan huruf templat dengan "()" dan kemudian memohon
pengubahsuai pengulangan/bilangan pada kumpulan.

· "pack() / unpack()" kini boleh memproses jenis angka dalaman Perl: IVs, UVs, NVs--
dan juga beregu panjang, jika disokong oleh platform. Huruf templat ialah "j",
"J", "F", dan "D".

· "pack('U0a*', ...)" kini boleh digunakan untuk memaksa rentetan ke UTF-8.

· __PACKAGE__ $obj saya kini berfungsi. [561]

· POSIX::sleep() kini mengembalikan bilangan tidak tidur saat (seperti yang dikatakan standard POSIX),
berbanding dengan TERAS::tidur() yang mengembalikan bilangan saat tidur.

· printf() and pecut () kini menyokong penyusunan semula parameter menggunakan "%\d+\$" dan
Sintaks "*\d+\$". Sebagai contoh

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

akan mencetak "bar foo\n". Ciri ini membantu dalam menulis perisian antarabangsa, dan
secara umum apabila susunan parameter boleh berbeza-beza.

· Prototaip (\&) kini berfungsi dengan betul. [561]

· prototaip(\[$@%&]) kini tersedia untuk membuat rujukan secara tersirat (berguna untuk
contoh jika anda ingin mencontohi tali leher() antara muka).

· Pilihan baris arahan baharu, "-t" tersedia. Ia adalah adik kepada "-T":
bukannya mati akibat pelanggaran noda, amaran leksikal diberikan. ini is hanyalah bermakna
as a sementara penyahpepijatan bantuan manakala mendapatkan yang kod of lama legasi permohonan. ini
is tidak a pengganti khususnya -T.

· Dalam berita cemar lain, "SENARAI eksekutif" dan "SENARAI sistem" kini telah dipertimbangkan juga
berisiko (fikir "exec @ARGV": ia boleh memulakan sebarang program dengan sebarang hujah), dan kini
borang tersebut menyebabkan amaran di bawah amaran leksikal. Anda hendaklah mencuci dengan teliti
hujah untuk menjamin kesahihannya. Dalam keluaran masa hadapan Perl borang akan
menjadi kesilapan yang membawa maut jadi pertimbangkan untuk memulakan pencucian pakaian sekarang.

· Antara muka cincang terikat kini diperlukan untuk mempunyai kaedah EXISTS dan DELETE (sama ada
dimiliki atau diwarisi).

· Jika tr/// hanya mengira aksara, ia tidak cuba mengubah suai sasarannya.

· buka ikatan() kini akan memanggil an UNTIE() cangkuk jika wujud. Lihat perltie untuk butiran. [561]

· "utime" dalam perlfunc kini menyokong "utime undef, undef, @files" untuk menukar fail
cap masa kepada masa semasa.

· Peraturan untuk membenarkan garis bawah (bar bawah) dalam pemalar berangka telah dilonggarkan
dan dipermudahkan: kini anda boleh mempunyai garis bawah dengan mudah antara digit.

· Daripada bergantung pada argv[0] C (yang mungkin tidak mengandungi nama laluan penuh) di mana
mungkin $^X kini ditetapkan dengan meminta sistem pengendalian. (cth dengan membaca /proc/self/exe
pada Linux, /proc/curproc/file di FreeBSD)

· Pembolehubah baharu, "${^TAINT}", menunjukkan sama ada mod taint didayakan.

· Anda kini boleh mengatasi readline() builtin, dan ini juga mengatasi
operator kurungan sudut.

· Pilihan baris arahan -s dan -F kini dikenali pada baris shebang (#!).

· Penggunaan pengubah suai padanan "/c" tanpa pengubah suai "/g" yang disertakan menimbulkan
amaran: "Penggunaan pengubah /c tidak bermakna tanpa /g".

Penggunaan "/c" dalam penggantian, walaupun dengan "/g", menimbulkan "Penggunaan pengubah suai /c ialah
tidak bermakna dalam s///".

Penggunaan "/g" dengan "split" menimbulkan "Penggunaan pengubah suai /g tidak bermakna dalam split".

· Sokongan untuk subrutin khas "CLONE" telah ditambah. Dengan ithreads, apabila baru
benang dibuat, semua data Perl diklon, namun data bukan Perl tidak boleh diklon
secara automatik. Dalam "CLONE" anda boleh melakukan apa sahaja yang anda perlu lakukan, seperti sebagai contoh pemegang
pengklonan data bukan Perl, jika perlu. "KLONE" akan dilaksanakan sekali untuk setiap
pakej yang telah ditentukan atau diwarisi. Ia akan dipanggil dalam konteks yang baru
benang, jadi semua pengubahsuaian dibuat di kawasan baharu.

Lihat perlmod

Modul and Pragmatik


Baru Modul and Pragmatik
· "Attribute::Handlers", asalnya oleh Damian Conway dan kini diselenggara oleh Arthur
Bergman, membenarkan kelas untuk menentukan pengendali atribut.

pakej MyPack;
gunakan Atribut::Pengendali;
sub Serigala :ATTR(SCALAR) { cetak "lolong!\n" }

# kemudian, dalam beberapa pakej menggunakan atau mewarisi daripada MyPack...

MyPack $Fluffy saya : Serigala; # pengendali atribut Wolf akan dipanggil

Kedua-dua pembolehubah dan rutin boleh mempunyai pengendali atribut. Pengendali boleh khusus untuk
jenis (SCALAR, ARRAY, HASH, atau CODE), atau khusus untuk fasa kompilasi yang tepat
(MULAI, SEMAK, MULAI, atau TAMAT). Lihat Atribut::Pengendali.

· "B::Concise", oleh Stephen McCamant, ialah bahagian belakang pengkompil baharu untuk berjalan di Perl
pokok sintaks, mencetak maklumat ringkas tentang ops. Outputnya sangat boleh disesuaikan. Lihat
B::Ringkas. [561+]

· Bignum, bigint, dan bigrat pragmas baharu, oleh Tels, melaksanakan bignum telus
sokongan (menggunakan bahagian belakang Math::BigInt, Math::BigFloat, dan Math::BigRat).

· "Class::ISA", oleh Sean Burke, ialah modul untuk melaporkan laluan carian untuk kelas
pokok ISA. Lihat Kelas::ISA.

· "Cwd" kini mempunyai personaliti berpecah: jika boleh, sambungan XS digunakan, (ini akan
semoga menjadi lebih pantas, lebih selamat, dan lebih mantap) tetapi jika tidak mungkin, yang biasa
Pelaksanaan Perl digunakan.

· "Devel::PPPort", asalnya oleh Kenneth Albanowski dan kini diselenggara oleh Paul Marquess,
telah ditambah. Ia digunakan terutamanya oleh "h2xs" untuk meningkatkan kemudahalihan modul XS
antara versi Perl yang berbeza. Lihat Devel::PPPort.

· "Digest", modul frontend untuk mengira digest (checksum), daripada Gisle Aas, mempunyai
telah ditambah. Lihat Digest.

· "Digest::MD5" untuk mengira digest MD5 (checksums) seperti yang ditakrifkan dalam RFC 1321, daripada
Gisle Aas, telah ditambah. Lihat Digest::MD5.

gunakan Digest::MD5 'md5_hex';

$digest = md5_hex("Unta Kehausan");

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

NOTA: modul keserasian ke belakang "MD5" sengaja tidak disertakan sejak ia
penggunaan selanjutnya adalah tidak digalakkan.

Lihat juga PerlIO::via::QuotedPrint.

· "Encode", asalnya oleh Nick Ing-Simmons dan kini diselenggara oleh Dan Kogai, menyediakan a
mekanisme untuk menterjemah antara pengekodan aksara yang berbeza. Sokongan untuk Unicode,
ISO-8859-1, dan ASCII disusun ke dalam modul. Beberapa pengekodan lain (seperti
selebihnya ISO-8859, CP*/Win*, Mac, KOI8-R, tiga varian EBCDIC, Cina,
Pengekodan Jepun dan Korea) disertakan dan boleh dimuatkan pada masa jalanan. (Untuk ruang
pertimbangan, pengekodan Cina terbesar telah diasingkan ke dalam CPAN mereka sendiri
modul, Encode::HanExtra, yang Encode akan digunakan jika tersedia). Lihat Pengekodan.

Sebarang pengekodan yang disokong oleh modul Encode juga tersedia untuk ":pengekodan()"lapisan
jika PerlIO digunakan.

· "Hash::Util" ialah antara muka kepada yang baharu terhad Hash ciri. (Dilaksanakan oleh
Jeffrey Friedl, Nick Ing-Simmons, dan Michael Schwern.) Lihat Hash::Util.

· "I18N::Langinfo" boleh digunakan untuk menanyakan maklumat tempat. Lihat I18N::Langinfo.

· "I18N::LangTags", oleh Sean Burke, mempunyai fungsi untuk menangani bahasa gaya RFC3066
tag. Lihat I18N::LangTags.

· "ExtUtils::Constant", oleh Nicholas Clark, ialah alat baharu untuk penulis sambungan
menjana kod XS untuk mengimport pemalar pengepala C. Lihat ExtUtils::Constant.

· "Penapis::Mudah", oleh Damian Conway, ialah bahagian hadapan yang mudah digunakan untuk Penapis::Util::Panggilan.
Lihat Penapis::Mudah.

# dalam Penapis Saya.pm:

pakej MyFilter;

gunakan Penapis::Sub ringkas {
manakala (saya ($daripada, $kepada) = sambung @_, 0, 2) {
s/$dari/$kepada/g;
}
};

1;

# dalam kod pengguna:

gunakan MyFilter qr/red/ => 'hijau';

cetak "merah\n"; # kod ini ditapis, akan mencetak "hijau\n"
cetak "bosan\n"; # kod ini ditapis, akan mencetak "bogreen\n"

tiada Penapis Saya;

cetak "merah\n"; # kod ini tidak ditapis, akan mencetak "merah\n"

· "Fail::Temp", oleh Tim Jenness, membenarkan seseorang mencipta fail sementara dan direktori masuk
cara yang mudah, mudah alih dan selamat. Lihat Fail::Temp. [561+]

· "Filter::Util::Call", oleh Paul Marquess, memberikan anda rangka kerja untuk menulis
sumber Penapis dalam Perl. Untuk kebanyakan kegunaan, Penapis bahagian hadapan::Mudah adalah untuk menjadi
diutamakan. Lihat Penapis::Util::Panggilan.

· "jika", oleh Ilya Zakharevich, adalah pragma baru untuk kemasukan bersyarat modul.

· libnet, oleh Graham Barr, ialah koleksi modul perl5 yang berkaitan dengan rangkaian
pengaturcaraan. Lihat Net::FTP, Net::NNTP, Net::Ping (bukan sebahagian daripada libnet, tetapi berkaitan),
Net::POP3, Net::SMTP, dan Net::Time.

Pemasangan Perl meninggalkan libnet tidak dikonfigurasikan; guna libnetcfg untuk mengkonfigurasinya.

· "List::Util", oleh Graham Barr, ialah pilihan subrutin senarai utiliti umum, seperti
as jumlah(), min(), pertama (), dan kocok(). Lihat Senarai::Util.

· "Locale::Constants", "Locale::Country", "Locale:: Currency" "Locale::Language", dan
Locale::Script, oleh Neil Bowers, telah ditambah. Mereka menyediakan kod untuk pelbagai
standard tempatan, seperti "fr" untuk Perancis, "usd" untuk Dolar AS dan "ja" untuk Jepun.

gunakan Locale::Country;

$country = code2country('jp'); # $country mendapat 'Jepun'
$code = country2code('Norway'); # $code mendapat 'tidak'

Lihat Locale::Constants, Locale::Country, Locale::Currency, dan Locale::Language.

· "Locale::Maketext", oleh Sean Burke, ialah rangka kerja penyetempatan. Lihat Tempatan::Maketext,
dan Locale::Maketext::TPJ13. Yang terakhir ialah artikel tentang penyetempatan perisian,
pada asalnya diterbitkan dalam The Perl Journal #13, dan diterbitkan semula di sini dengan baik
kebenaran.

· "Math::BigRat" untuk nombor rasional yang besar, untuk mengiringi Math::BigInt dan Math::BigFloat,
daripada Tels. Lihat Matematik::BigRat.

· "Memoize" boleh menjadikan fungsi anda lebih pantas dengan berdagang ruang untuk masa, daripada Mark-Jason
Dominus. Lihat Memoize.

· "MIME::Base64", oleh Gisle Aas, membolehkan anda mengekod data dalam base64, seperti yang ditakrifkan dalam RFC
2045 - MIME (Pelbagai guna Internet mail Sambungan).

gunakan MIME::Base64;

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

print $encoded, "\n"; # "QWxhZGRpbjpvcGVuIHNlc2FtZQ=="

Lihat MIME::Base64.

· "MIME::QuotedPrint", oleh Gisle Aas, membolehkan anda mengekod data dalam quoted-printable
pengekodan, seperti yang ditakrifkan dalam RFC 2045 - MIME (Pelbagai guna Internet mail Sambungan).

gunakan MIME::QuotedPrint;

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

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

Lihat juga PerlIO::via::QuotedPrint.

· "SETERUSNYA", oleh Damian Conway, ialah kelas pseudo untuk kaedah penghantaran semula. Lihat SETERUSNYA.

· "terbuka" ialah pragma baharu untuk menetapkan lapisan I/O lalai untuk buka().

· "PerlIO::scalar", oleh Nick Ing-Simmons, menyediakan pelaksanaan IO kepada "in
memori" Perl skalar seperti yang dibincangkan di atas. Ia juga berfungsi sebagai contoh yang boleh dimuatkan
Lapisan PerlIO. Kemungkinan masa depan yang lain termasuk PerlIO::Array dan PerlIO::Code. Lihat
PerlIO:: skalar.

· "PerlIO::via", oleh Nick Ing-Simmons, bertindak sebagai lapisan PerlIO dan membalut lapisan PerlIO
kefungsian yang disediakan oleh kelas (biasanya dilaksanakan dalam kod Perl).

· "PerlIO::via::QuotedPrint", oleh Elizabeth Mattijsen, ialah contoh "PerlIO::via"
kelas:

gunakan PerlIO::via::QuotedPrint;
open($fh,">:via(QuotedPrint)",$path);

Ini secara automatik akan menukar semua output kepada $fh kepada Quoted-Printable. Lihat
PerlIO::via dan PerlIO::via::QuotedPrint.

· "Pod::ParseLink", oleh Russ Allbery, telah ditambahkan, untuk menghuraikan pautan L<> dalam pod sebagai
diterangkan dalam perlpodspec baharu.

· "Pod::Teks::Overstrike", oleh Joe Smith, telah ditambah. Ia menukar data POD kepada
teks overstrike yang diformatkan. Lihat Pod::Teks::Overstrike. [561+]

· "Scalar::Util" ialah pilihan subrutin skalar utiliti umum, seperti
diberkati(), reftype(), dan tercemar(). Lihat Skalar::Util.

· "sort" ialah pragma baharu untuk mengawal tingkah laku urutkan ().

· "Boleh Disimpan" memberikan kegigihan kepada struktur data Perl dengan membenarkan storan dan
mendapatkan semula data Perl ke dan dari fail dalam format binari yang cepat dan padat. Kerana
dalam kesan Storable melakukan pensirilan struktur data Perl, dengannya anda juga boleh
mengklon struktur data hierarki yang mendalam. Storable pada asalnya dicipta oleh Raphael
Manfredi, tetapi ia kini diselenggara oleh Abhijit Menon-Sen. Boleh disimpan telah dipertingkatkan
untuk memahami dua ciri cincang baharu, kunci Unicode dan cincang terhad. Lihat
Boleh disimpan.

· "Tukar", oleh Damian Conway, telah ditambah. Hanya dengan berkata

gunakan Suis;

anda mempunyai "suis" dan "kes" tersedia dalam Perl.

gunakan Suis;

suis ($val) {

kes 1 { cetak "nombor 1" }
kes "a" { cetak "rentetan a" }
kes [1..10,42] { cetak "nombor dalam senarai" }
kes (@array) { cetak "nombor dalam senarai" }
kes /\w+/ { cetak "corak" }
sarung qr/\w+/ { cetak "corak" }
case (%hash) { print "entry in hash" }
kes (\%hash) { cetak "masuk dalam hash" }
case (\&sub) { print "arg to subroutine" }
else { cetak "kes sebelumnya tidak benar" }
}

Lihat Suis.

· "Ujian::Lagi", oleh Michael Schwern, merupakan satu lagi rangka kerja untuk menulis skrip ujian,
lebih luas daripada Ujian::Mudah. Lihat Ujian::Lagi.

· "Ujian::Mudah", oleh Michael Schwern, mempunyai kemudahan asas untuk menulis ujian. Lihat
Ujian::Mudah.

· "Teks::Seimbang", oleh Damian Conway, telah ditambah, untuk mengekstrak teks yang dibataskan
urutan daripada rentetan.

gunakan Text::Balanced 'extract_delimited';

($a, $b) = extract_delimited("'never say never', dia tidak pernah berkata", "'", '');

$a akan menjadi "'never say never'", $b akan menjadi ', dia tidak pernah berkata'.

Di samping extract_delimited(), terdapat juga extract_bracketed(),
extract_quotelike(), extract_codeblock(), extract_variable(), extract_tagged(),
extract_multiple(), gen_delimited_pat(), dan gen_extract_tagged(). Dengan ini, anda
boleh melaksanakan algoritma penghuraian yang agak maju. Lihat Teks::Seimbang.

· "benang", oleh Arthur Bergman, ialah antara muka kepada benang penterjemah. Jurubahasa
threads (ithreads) ialah model thread baharu yang diperkenalkan dalam Perl 5.6 tetapi hanya tersedia
sebagai antara muka dalaman untuk penulis sambungan (dan untuk Win32 Perl untuk "fork()"
emulasi). Lihat urutan, utas::shared dan perlthrtut.

· "benang::dikongsi", oleh Arthur Bergman, membenarkan perkongsian data untuk urutan penterjemah.
Lihat urutan::shared.

· "Tie::File", oleh Mark-Jason Dominus, mengaitkan tatasusunan Perl dengan baris fail.
Lihat Tie::File.

· "Tie::Memoize", oleh Ilya Zakharevich, menyediakan cincangan yang dimuatkan atas permintaan. Lihat
Tali leher::Hafal.

· "Tie::RefHash::Nestable", oleh Edward Avis, membenarkan menyimpan rujukan hash (tidak seperti
Tie standard::RefHash) Modul ini terkandung dalam Tie::RefHash. Lihat
Tali leher::RefHash.

· "Masa::HiRes", oleh Douglas E. Wegscheid, menyediakan pemasaan resolusi tinggi (ualarm,
usleep, dan gettimeofday). Lihat Masa::HiRes.

· "Unicode::UCD" menawarkan antara muka pertanyaan kepada Pangkalan Data Aksara Unikod. Lihat
Unikod::UCD.

· "Unicode::Collate", oleh SADAHHIRO Tomoyuki, melaksanakan UCA (Unicode Collation
Algoritma) untuk menyusun rentetan Unicode. Lihat Unicode::Collate.

· "Unicode::Normalize", oleh SADAHHIRO Tomoyuki, melaksanakan pelbagai Unicode
bentuk normalisasi. Lihat Unicode::Normalize.

· "XS::APItest", oleh Tim Jenness, ialah sambungan ujian yang menggunakan API XS. Pada masa ini
hanya "printf()" diuji: bagaimana untuk mengeluarkan pelbagai jenis data asas daripada XS.

· "XS::Typemap", oleh Tim Jenness, ialah sambungan ujian yang menggunakan peta taip XS.
Tiada apa-apa yang dipasang, tetapi kod itu patut dipelajari untuk penulis sambungan.

dikemaskini dan Peningkatan Modul and Pragmatik
· Modul yang disokong secara bebas berikut telah dikemas kini kepada versi terbaharu
daripada CPAN: CGI, CPAN, DB_File, Fail::Spec, Fail::Temp, Getopt::Long, Math::BigFloat,
Matematik::BigInt, kumpulan podlator (Pod::Man, Pod::Text), Pod::LaTeX [561+],
Pod::Parser, Boleh Stor, Istilah::ANSIColor, Test, Text-Tabs+Wrap.

· atribut::reftype() kini berfungsi pada hujah yang terikat.

· AutoLoader kini boleh dilumpuhkan dengan "tiada AutoLoader;".

· B::Deparse telah dipertingkatkan dengan ketara oleh Robin Houston. Ia kini boleh berlepas
hampir semua suite ujian standard (supaya ujian masih berjaya). Ada
buat sasaran "test.deparse" untuk mencuba ini.

· Carp kini mempunyai dokumentasi antara muka yang lebih baik, dan antara muka @CARP_NOT telah
ditambah untuk mendapatkan kawalan pilihan ke atas tempat ralat dilaporkan secara bebas daripada @ISA, oleh
Ben Tilly.

· Kelas::Struct kini boleh mentakrifkan kelas dalam masa penyusunan.

· Kelas::Struct kini memperuntukkan elemen tatasusunan/cincang jika pengakses dipanggil dengan
elemen tatasusunan/cincang sebagai tunggal hujah.

· Nilai pulangan bagi Cwd::fastcwd() kini tercemar.

· Data::Dumper kini mempunyai pilihan untuk mengisih cincang.

· Data::Dumper kini mempunyai pilihan untuk membuang rujukan kod menggunakan B::Deparse.

· DB_File kini menyokong versi Berkeley DB yang lebih baharu, antara penambahbaikan lain.

· Devel::Peek kini mempunyai antara muka untuk statistik memori Perl (ini hanya berfungsi jika
anda menggunakan malloc perl, dan jika anda telah menyusun dengan penyahpepijatan).

· Modul Bahasa Inggeris kini boleh digunakan tanpa prestasi yang terkenal dengan sebutan

gunakan bahasa Inggeris '-no_match_vars';

(Dengan mengandaikan, sudah tentu, anda tidak memerlukan pembolehubah yang menyusahkan "$`", $&, atau
"$'".) Selain itu, memperkenalkan alias bahasa Inggeris @LAST_MATCH_START dan @LAST_MATCH_END untuk
"@-" dan "@+".

· ExtUtils::MakeMaker telah dibersihkan dan diperbaiki dengan ketara. Versi yang dipertingkatkan
juga telah disandarkan kepada keluaran awal Perl dan diserahkan kepada CPAN supaya
keluaran awal boleh menikmati pembaikan.

· Hujah-hujah daripada WriteMakefile() dalam Makefile.PL kini disemak untuk lebih kewarasan
berhati-hati daripada sebelumnya. Ini boleh menyebabkan amaran baharu apabila modul sedang dipasang.
Lihat ExtUtils::MakeMaker untuk butiran lanjut.

· ExtUtils::MakeMaker kini menggunakan File::Spec secara dalaman, yang diharapkan membawa kepada yang lebih baik
kemudahalihan.

· Fcntl, Socket, dan Sys::Syslog telah ditulis semula oleh Nicholas Clark untuk menggunakan
bahagian penghantaran tetap gaya (lihat ExtUtils::Constant). Ini bermakna bahawa mereka akan
menjadi lebih mantap dan semoga lebih cepat.

· Fail::Cari sekarang chdir()s dengan betul apabila mengejar pautan simbolik. [561]

· Fail::Cari kini mempunyai panggilan balik pra dan pasca pemprosesan. Ia juga berubah dengan betul
direktori apabila mengejar pautan simbolik. Panggilan balik (nakal) keluar dengan "seterusnya;"
bukannya "kembali;" sekarang kerja.

· Fail::Cari kini (sekali lagi) masuk semula. Ia juga telah dibuat lebih mudah alih.

· Amaran yang dikeluarkan oleh File::Find sekarang tergolong dalam kategori mereka sendiri. Awak boleh
dayakan/lumpuhkannya dengan "guna/tiada amaran 'Fail:: Cari';".

· Fail::Glob::glob() telah dinamakan semula menjadi Fail::Glob::bsd_glob() sebab nama bertembung
dengan builtin bola (). Nama lama masih tersedia untuk keserasian, tetapi adalah
ditamatkan. [561]

· Fail::Glob kini menyokong pemalar "GLOB_LIMIT" untuk mengehadkan saiz senarai yang dikembalikan
daripada nama fail.

· IPC::Open3 kini membenarkan penggunaan deskriptor fail berangka.

· IO::Socket kini mempunyai atmark() kaedah, yang mengembalikan benar jika soket diposisikan
pada tanda luar jalur. Kaedah ini juga boleh dieksport sebagai a sockatmark() fungsi.

· IO::Socket::INET gagal membuka port yang ditentukan jika nama perkhidmatan tidak diketahui.
Ia kini menggunakan nombor port yang dibekalkan dengan betul. [561]

· IO::Socket::INET mempunyai sokongan untuk pilihan ReusePort (jika platform anda menyokongnya).
Pilihan Reuse kini mempunyai alias, ReuseAddr. Untuk kejelasan, anda mungkin mahu memilih
ReuseAddr.

· IO::Socket::INET kini menyokong nilai sifar untuk "LocalPort" (biasanya bermaksud bahawa
sistem pengendalian akan membuat satu.)

· 'use lib' kini berfungsi sama dengan @INC. Mengalih keluar direktori dengan 'tiada lib' sekarang
kerja.

· Math::BigFloat dan Math::BigInt telah menjalani penulisan semula penuh oleh Tels. Mereka sekarang
magnitud lebih cepat, dan mereka menyokong pelbagai perpustakaan bignum seperti GMP dan PARI sebagai
bahagian belakang mereka.

· Matematik:: Kompleks mengendalikan inf, NaN dsb., lebih baik.

· Net::Ping telah dipertingkatkan dengan ketara oleh Rob Brown: multihoming kini disokong,
Fungsi Win32 adalah lebih baik, kini ada masa untuk mengukur fungsi (secara pilihan
resolusi tinggi menggunakan Time::HiRes), dan kini terdapat protokol "luaran" yang menggunakan
Net::Ping::Modul luaran yang menjalankan utiliti ping luaran anda dan menghuraikan
pengeluaran. Versi Net::Ping::External tersedia dalam CPAN.

Ambil perhatian bahawa beberapa ujian Net::Ping dilumpuhkan apabila dijalankan di bawah Perl
pengedaran kerana seseorang tidak boleh menganggap satu atau lebih daripada yang berikut: port gema didayakan
di localhost, sambungan Internet penuh atau tembok api bersimpati. Anda boleh menetapkan
pembolehubah persekitaran PERL_TEST_Net_Ping kepada "1" (satu) sebelum menjalankan ujian Perl
suite untuk mendayakan semua ujian Net::Ping.

· POSIX::sigaction() kini jauh lebih fleksibel dan teguh. Anda kini boleh memasang coderef
pengendali, pengendali 'DEFAULT' dan 'ABAIKAN', memasang pengendali baharu bukanlah atomik.

· Dalam Safe, %INC kini disetempatkan dalam petak Selamat supaya penggunaan/memerlukan kerja.

· Dalam SDBM_File pada platform DOSish, beberapa kunci hilang kerana kekurangan sokongan
untuk fail dengan "lubang". Penyelesaian untuk masalah itu telah ditambahkan.

· Dalam Carian::Dict seseorang kini boleh mempunyai cangkuk pra-pemprosesan untuk baris yang sedang dicari.

· Modul Shell kini mempunyai antara muka OO.

· Dalam Sys::Syslog kini terdapat mekanisme failover yang akan melalui alternatif
mekanisme sambungan sehingga mesej berjaya dilog.

· Modul Ujian telah dipertingkatkan dengan ketara.

· Masa::Setempat::timelocal() tidak mengendalikan detik pecahan lagi. Rasionalnya ialah
yang tidak begitu juga localtime(), dan timelocal() and localtime() semestinya
songsang antara satu sama lain.

· Vars pragma kini menyokong pengisytiharan pembolehubah yang layak sepenuhnya. (Sesuatu yang
"our()" tidak dan tidak akan menyokong.)

· Ruang nama "utf8::" (seperti dalam pragma) menyediakan pelbagai fungsi boleh panggil Perl untuk
menyediakan akses tahap rendah kepada perwakilan Unikod dalaman Perl. Pada masa ini
hanyalah panjang () telah dilaksanakan.

utiliti Perubahan


· Mod perl Emacs (emacs/cperl-mode.el) telah dikemas kini kepada versi 4.31.

· emacs/e2ctags.pl kini jauh lebih pantas.

· "enc2xs" ialah alat untuk orang menambah pengekodan mereka sendiri pada modul Pengekodan.

· "h2ph" kini menyokong trigraf C.

· "h2xs" kini menghasilkan templat README.

· "h2xs" kini menggunakan "Devel::PPPort" untuk kemudahalihan yang lebih baik antara versi yang berbeza
Perl.

· "h2xs" menggunakan modul ExtUtils::Constant baharu yang akan menjejaskan yang baru dibuat
sambungan yang mentakrifkan pemalar. Oleh kerana kod baharu adalah lebih betul (jika anda mempunyai dua
pemalar di mana yang pertama adalah awalan yang kedua, pemalar pertama pernah
ditakrifkan), kurang lossy (ia menggunakan integer untuk pemalar integer, berbanding yang lama
kod yang menggunakan nombor titik terapung walaupun untuk pemalar integer), dan sedikit
lebih pantas, anda mungkin ingin mempertimbangkan untuk menjana semula kod sambungan anda (skim baharu
memudahkan penjanaan semula). h2xs kini turut menyokong trigraf C.

· "libnetcfg" telah ditambahkan untuk mengkonfigurasi libnet.

· "perlbug" kini jauh lebih mantap. Ia juga menghantar laporan pepijat ke perl.org, bukan
perl.com.

· "perlcc" telah ditulis semula dan antara muka penggunanya (iaitu baris arahan) banyak
lebih seperti pengkompil Unix C, cc. (Alat perlbc telah dialih keluar. Gunakan
"perlcc -B" sebaliknya.) Nota Bahawa perlcc is masih dianggap sangat eksperimen and
tidak disokong. [561]

· "perlivp" ialah utiliti Prosedur Pengesahan Pemasangan baharu untuk dijalankan pada bila-bila masa
selepas memasang Perl.

· "piconv" ialah pelaksanaan utiliti penukaran aksara "iconv",
menunjukkan modul Encode baharu.

· "pod2html" kini membenarkan menentukan direktori cache.

· "pod2html" kini menghasilkan XHTML 1.0.

· "pod2html" kini memahami POD yang ditulis menggunakan penghujung baris yang berbeza (PC-seperti CRLF
berbanding LF seperti Unix berbanding CR seperti MacClassic).

· "s2p" telah ditulis semula sepenuhnya dalam Perl. (Ia sebenarnya merupakan pelaksanaan penuh
sed dalam Perl: anda boleh menggunakan fungsi sed dengan menggunakan utiliti "psed".)

· "xsubpp" kini memahami dokumentasi POD yang dibenamkan dalam fail *.xs. [561]

· "xsubpp" kini menyokong kata kunci OUT.

Baru dokumentasi


· perl56delta memperincikan perubahan antara keluaran 5.005 dan keluaran 5.6.0.

· perlclib mendokumenkan penggantian dalaman untuk fungsi perpustakaan C standard.
(Menarik hanya untuk penulis sambungan dan penggodam teras Perl.) [561+]

· perldebtut ialah tutorial nyahpepijat Perl. [561+]

· perlebcdic mengandungi pertimbangan untuk menjalankan Perl pada platform EBCDIC. [561+]

· perlintro ialah pengenalan lembut kepada Perl.

· perliol mendokumenkan dalaman PerlIO dengan lapisan.

· perlmodstyle ialah panduan gaya untuk menulis modul.

· perlnewmod memberitahu tentang menulis dan menyerahkan modul baharu. [561+]

· perlpacktut ialah a pek() tutorial.

· perlpod telah ditulis semula untuk menjadi lebih jelas dan untuk merekodkan amalan terbaik yang dikumpulkan
selama bertahun.

· perlpodspec ialah spesifikasi yang lebih formal bagi format pod, terutamanya yang diminati
penulis aplikasi pod, bukan kepada orang yang menulis dalam pod.

· perlretut ialah tutorial ungkapan biasa. [561+]

· perlrequick ialah panduan mula cepat ungkapan biasa. Ya, lebih cepat daripada
perlretut. [561]

· perltodo telah dikemas kini.

· perltootc telah dinamakan semula sebagai perltooc (untuk tidak bercanggah dengan perltoot in
sistem fail terhad kepada nama "8.3").

· perluniintro ialah pengenalan kepada penggunaan Unicode dalam Perl. (perlunicode lebih kepada a
rujukan terperinci dan maklumat latar belakang)

· perlutil menerangkan utiliti baris arahan yang dibungkus dengan pengedaran Perl.
[561+]

Dokumen khusus platform berikut tersedia sebelum pemasangan sebagai
BACA SAYA.platform, dan selepas pemasangan sebagai perlplatform:

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

Dokumen ini biasanya memperincikan satu atau lebih daripada subjek berikut: mengkonfigurasi,
membina, menguji, memasang, dan kadangkala juga menggunakan Perl pada platform tersebut.

Pengguna Perl Asia Timur kini dialu-alukan dalam bahasa mereka sendiri: README.jp (Bahasa Jepun),
README.ko (Bahasa Korea), README.cn (Cina ringkas) dan README.tw (Cina tradisional),
yang ditulis dalam pod biasa tetapi dikodkan dalam EUC-JP, EUC-KR, EUC-CN dan Big5. Ini
akan dipasang sebagai

perljp perlko perlcn perltw

· Dokumentasi untuk platform POSIX-BC dipanggil "BS2000", untuk mengelakkan kekeliruan
dengan modul Perl POSIX.

· Dokumentasi untuk platform WinCE dipanggil perlce (README.ce dalam sumber
kit kod), untuk mengelakkan kekeliruan dengan dokumentasi perlwin32 pada 8.3-restricted
sistem fail.

prestasi tambahan


· peta () boleh menjadi lambat secara patologi apabila senarai hasil yang dihasilkannya lebih besar daripada
senarai sumber. Prestasi telah dipertingkatkan untuk senario biasa. [561]

· urutkan () juga masuk semula sepenuhnya, dalam erti kata fungsi isihan itu sendiri boleh memanggil
urutkan (). Ini tidak berfungsi dengan pasti dalam keluaran sebelumnya. [561]

· urutkan () telah ditukar untuk menggunakan terutamanya mergesort secara dalaman berbanding dengan
quicksort lebih awal. Untuk senarai yang sangat kecil ini mungkin menyebabkan pengisihan sedikit perlahan
kali, tetapi secara amnya kelajuan hendaklah sekurang-kurangnya 20%. Bonus tambahan ialah
tingkah laku kes terburuk urutkan () kini lebih baik (dalam istilah sains komputer ia sekarang
berjalan dalam masa O(N log N), berbanding dengan quicksort's Theta(N**2) masa larian terburuk
tingkah laku), dan itu urutkan () kini stabil (bermaksud elemen dengan kunci yang sama
akan kekal dipesan seperti sebelum jenis itu). Lihat pragma "isih" untuk
maklumat.

Ceritanya dengan lebih terperinci: katakan anda ingin menghidangkan sedikit Pi.

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

Satu jenis angka digit akan menghasilkan (1,1,3,4,5,9), seperti yang dijangkakan. Mana 1 datang
pertama adalah sukar untuk diketahui, kerana satu 1 kelihatan sama seperti yang lain. Anda boleh menganggap
ini sama sekali remeh, atau agak mendalam. Walau bagaimanapun, jika anda hanya mahu mengisih
angka genap mendahului yang ganjil, maka apa yang akan berlaku

susun { ($a % 2) ($b % 2) } @digit;

hasil? Satu-satunya digit genap, 4, akan didahulukan. Tetapi bagaimana dengan nombor ganjil, yang
semua membandingkan sama? Dengan algoritma quicksort yang digunakan untuk melaksanakan Perl 5.6 dan
sebelum ini, susunan ikatan diserahkan kepada jenis. Jadi, apabila anda menambah lebih banyak lagi
digit Pi, susunan digit genap dan ganjil yang disusun akan berubah.
dan, untuk kepingan Pi yang cukup besar, algoritma quicksort dalam Perl 5.8 tidak akan
kembalikan hasil yang sama walaupun dipanggil semula dengan input yang sama. Justifikasi untuk
ini bergantung pada tingkah laku kes terburuk quicksort. Jika anda berlari

susun { $a $b } ( 1 .. $N , 1 .. $N );

(sesuatu yang mungkin anda anggarkan jika anda ingin menggabungkan dua tatasusunan yang diisih menggunakan isihan),
menggandakan $N bukan sahaja menggandakan masa quicksort, malah empat kali ganda ia. Quicksort mempunyai a
masa larian kes terburuk yang boleh berkembang seperti N**2, kononnya kuadratik tingkah laku, dan ia boleh
berlaku pada corak yang mungkin timbul dalam penggunaan biasa. Anda tidak akan perasan ini untuk kecil
tatasusunan, tetapi anda akan perhatikan dengan tatasusunan yang lebih besar, dan anda mungkin tidak hidup cukup lama
untuk isihan untuk dilengkapkan pada tatasusunan sejuta elemen. Jadi 5.8 quicksort
berebut tatasusunan besar sebelum menyusunnya, sebagai pertahanan statistik terhadap kuadratik
tingkah laku. Tetapi ini bermakna jika anda mengisih tatasusunan besar yang sama dua kali, ikatan mungkin terputus
dengan cara yang berbeza.

Kerana ketidaktentuan susunan pecah seri, dan kes terburuk kuadratik
tingkah laku, quicksort adalah hampir digantikan sepenuhnya dengan gabungan yang stabil. Stabil
bermakna ikatan diputuskan untuk mengekalkan susunan penampilan asal dalam input
tatasusunan. Jadi

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

akan menghasilkan (4,3,1,1,5,9), dijamin. Nombor genap dan ganjil muncul dalam output
dalam susunan yang sama mereka muncul dalam input. Mergesort mempunyai kes terburuk O(N log N)
tingkah laku, nilai terbaik yang boleh dicapai. Dan, ironinya, gabungan ini berlaku
terutamanya di mana quicksort pergi kuadratik: mergesort sorts (1..$N, 1..$N) dalam
masa O(N). Tetapi quicksort telah diselamatkan pada saat terakhir kerana ia lebih pantas daripada
mergesort pada input dan platform tertentu. Sebagai contoh, jika anda benar-benar tidak menjaga
tentang susunan digit genap dan ganjil, quicksort akan dijalankan dalam masa O(N); ia sangat
pandai menyusun banyak ulangan sebilangan kecil elemen yang berbeza. The
strategi pembahagian dan penaklukan quicksort berfungsi dengan baik pada platform dengan agak kecil,
sangat cepat, cache. Akhirnya, masalah itu dapat dikurangkan kepada yang sesuai dengannya
cache, dari mana ia mendapat manfaat daripada peningkatan kelajuan memori.

Quicksort telah diselamatkan dengan melaksanakan pragma isihan untuk mengawal aspek jenis tersebut.
. stabil subpragma memaksa tingkah laku yang stabil, tanpa mengira algoritma. The _quicksort
and _mergesort subpragma adalah cara yang berat untuk memilih asas
pelaksanaan. "_" terkemuka ialah peringatan bahawa subpragma ini mungkin tidak dapat bertahan
melebihi 5.8. Mekanisme yang lebih sesuai untuk memilih pelaksanaan wujud, tetapi
mereka tidak akan tiba pada masanya untuk menyelamatkan quicksort.

· Hashes kini menggunakan algoritma kekunci pencincangan "One-at-a-Time" Bob Jenkins (
http://burtleburtle.net/bob/hash/doobs.html ). Algoritma ini agak pantas
sambil menghasilkan sebaran nilai yang jauh lebih baik daripada algoritma pencincangan lama
(asalnya oleh Chris Torek, kemudian diubahsuai oleh Ilya Zakharevich). Keluaran nilai hash
daripada algoritma pada cincang semua kekunci ASCII yang boleh dicetak 3-char datang lebih dekat kepada
lulus ujian penjanaan nombor rawak DIEHARD. Menurut perlbench, ini
perubahan tidak menjejaskan kelajuan keseluruhan Perl.

· unshift() kini sepatutnya menjadi lebih pantas.

Pemasangan and konfigurasi Penambahbaikan


Generik Penambahbaikan
· INSTALL kini menerangkan cara anda boleh mengkonfigurasi Perl untuk menggunakan integer 64-bit walaupun dihidupkan
platform bukan 64-bit.

· Perubahan dasar Policy.sh: jika anda menggunakan semula fail Policy.sh (lihat PASANG) dan anda gunakan
Konfigurasikan -Dprefix=/foo/bar dan dalam Polisi lama $prefix eq $siteprefix dan $prefix
eq $vendorprefix, kesemuanya kini akan ditukar kepada awalan baharu, /foo/bar.
(Sebelum ini hanya $prefix berubah.) Jika anda tidak menyukai kelakuan baharu ini, nyatakan
awalan, awalan tapak dan awalan vendor secara eksplisit.

· Lokasi pilihan baharu untuk perpustakaan Perl, otherlibdirs, tersedia. Ia boleh menjadi
digunakan sebagai contoh untuk alat tambah vendor tanpa mengganggu direktori perpustakaan Perl sendiri.

· Dalam banyak platform, 'cc' yang dibekalkan vendor terlalu dilucutkan untuk membina Perl
(pada asasnya, 'cc' tidak melakukan ANSI C). Jika ini nampaknya berlaku dan 'cc' tidak
nampaknya pengkompil GNU C 'gcc', percubaan automatik dibuat untuk mencari dan menggunakan
'gcc' sebaliknya.

· gcc perlu menjejaki keluaran sistem pengendalian dengan teliti untuk mengelakkan masalah binaan. Jika
Konfigurasikan mendapati bahawa gcc telah dibina untuk keluaran sistem pengendalian yang berbeza daripada yang sedia ada
berjalan, ia kini memberikan amaran yang jelas kelihatan bahawa mungkin terdapat masalah di hadapan.

· Memandangkan Perl 5.8 tidak serasi binari dengan keluaran Perl sebelumnya, Konfigurasikan tidak
lebih lama mencadangkan termasuk modul 5.005 dalam @INC.

· Konfigurasikan "-S" kini boleh berjalan secara tidak interaktif. [561]

· Konfigurasikan sokongan untuk model memori gaya pdp11 telah dialih keluar kerana usang.
[561]

· configure.gnu kini berfungsi dengan pilihan dengan ruang putih di dalamnya.

· installperl kini mengeluarkan segala-galanya kepada STDERR.

· Oleh kerana PerlIO kini menjadi lalai pada kebanyakan platform, "-perlio" tidak dapat ditambahkan pada
$Config{archname} (juga dikenali sebagai $^O) lagi. Sebaliknya, jika anda memilih secara eksplisit
untuk tidak menggunakan perlio (Konfigurasikan pilihan baris arahan -Uuseperlio), anda akan mendapat "-stdio"
dilampirkan.

· Satu lagi perubahan yang berkaitan dengan nama seni bina ialah "-64all" (-Duse64bitall, atau
"maksimum 64-bit") dilampirkan hanya jika penunjuk anda adalah 64 bit lebar. (Yang sebenarnya,
use64bitall diabaikan.)

· Dalam pemasangan AFS, seseorang boleh mengkonfigurasi akar AFS untuk berada di tempat lain
lalai /afs dengan menggunakan parameter Konfigurasikan "-Dafsroot=/some/where/else".

· APPLLIB_EXP, definisi masa konfigurasi yang kurang dikenali, telah didokumenkan. Ia
boleh digunakan untuk menambah direktori khusus tapak ke laluan carian lalai Perl (@INC);
lihat PASANG untuk maklumat.

· Versi Berkeley DB digunakan apabila Perl (dan, mungkin, sambungan DB_File)
telah dibina kini tersedia sebagai @Config{qw(db_version_major db_version_minor
db_version_patch)} daripada Perl dan sebagai "DB_VERSION_MAJOR_CFG DB_VERSION_MINOR_CFG
DB_VERSION_PATCH_CFG" daripada C.

· Membina Berkeley DB3 untuk mod keserasian untuk DB, NDBM dan ODBM telah
didokumenkan dalam INSTALL.

· Jika anda mempunyai akses CPAN (sama ada rangkaian atau salinan tempatan seperti CD-ROM) anda boleh
semasa tentukan modul tambahan untuk Konfigurasikan untuk membina dan memasang dengan Perl menggunakan
-Dextras=... pilihan. Lihat PASANG untuk butiran lanjut.

· Selain config.over, fail override baharu, config.arch, tersedia. Fail ini
sepatutnya digunakan oleh penulis fail petunjuk untuk perubahan seluruh seni bina (sebagai lawan
kepada config.over yang adalah untuk perubahan seluruh tapak).

· Jika sistem fail anda menyokong pautan simbolik, anda boleh membina Perl di luar sumber
direktori oleh

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

Ini akan mencipta dalam perl/build/direktori pokok pautan simbolik yang menunjuk ke dalam fail
/path/to/perl/source. Fail asal dibiarkan tidak terjejas. Selepas Konfigurasi telah
selesai, anda boleh katakan

buat semua ujian

dan Perl akan dibina dan diuji, semuanya dalam perl/build/direktori. [561]

· Untuk pembangun Perl, beberapa sasaran pembuatan baharu untuk pemprofilan dan penyahpepijatan telah
ditambah; lihat perlhack.

· Penggunaan gprof alat untuk membuat profil Perl telah didokumenkan dalam perlhack. di sana
ialah sasaran buat yang dipanggil "perl.gprof" untuk menjana Perl berprofil g
boleh laku.

· Jika anda mempunyai GCC 3, terdapat sasaran buat yang dipanggil "perl.gcov" untuk membuat a
gcoved Perl boleh laku untuk analisis liputan. Lihat perlhack.

· Jika anda menggunakan platform IRIX atau Tru64, pilihan pemprofilan/nyahpepijat baharu ada
telah ditambah; lihat perlhack untuk maklumat lanjut tentang pixie dan Ijazah Ketiga.

· Garis panduan cara membina pemasangan Perl yang minimum telah ditambahkan pada INSTALL.

· Sambungan Thread kini tidak dibina sama sekali di bawah ithreads ("Configure
-Duseithreads") kerana ia tidak akan berfungsi juga (sambungan Thread memerlukannya
Dikonfigurasikan dengan "-Duse5005threads").

Nota Bahawa yang 5.005 benang adalah tidak disokong and ditamatkan: if anda mempunyai kod ditulis
khususnya yang lama benang anda Sekiranya berhijrah it kepada yang baru ithreads model.

· Makro Gconvert ($Config{d_Gconvert}) yang digunakan oleh perl untuk merangkai titik terapung
nombor kini lebih memilih menggunakan peraturan sprintf %.*g untuk penukaran. Beberapa
platform yang dahulunya menggunakan gcvt kini boleh menggunakan sprintf yang lebih perlahan.

· Kaedah usang untuk membuat rasa khas (cth., penyahpepijatan) perl dengan menyebut

jadikan LIBPERL=libperld.a

telah dikeluarkan. Gunakan -DDEBUGGING sebaliknya.

Baru Or Peningkatan Platform
Untuk senarai platform yang diketahui menyokong Perl, lihat "Platform yang Disokong" dalam perlport.

· Pemuatan dinamik AIX kini sepatutnya disokong dengan lebih baik.

· AIX kini seharusnya berfungsi lebih baik dengan gcc, benang dan 64-bitness. Juga beregu panjang
sokongan dalam AIX sepatutnya lebih baik sekarang. Lihat perlaix.

· AtheOS ( http://www.atheos.cx/ ) ialah platform baharu.

· BeOS telah dituntut semula.

· Platform DG/UX kini menyokong urutan gaya 5.005. Lihat perldgux.

· Platform DYNIX/ptx (juga dikenali sebagai dynixptx) disokong pada atau berhampiran osvers 4.5.2.

· Platform EBCDIC (z/OS (juga dikenali sebagai OS/390), POSIX-BC dan VM/ESA) telah
diperoleh semula. Banyak ujian suite ujian masih gagal dan kewujudan bersama Unicode dan EBCDIC
tidak cukup diselesaikan, tetapi keadaannya jauh lebih baik daripada Perl 5.6. Lihat
perlos390, perlbs2000 (untuk POSIX-BC), dan perlvmesa untuk mendapatkan maklumat lanjut. (Catatan:
sokongan untuk VM/ESA telah dialih keluar dalam Perl v5.18.0. Maklumat berkaitan ada dalam
README.vmesa)

· Membina perl dengan -Duseithreads atau -Duse5005threads kini berfungsi di bawah HP-UX 10.20
(sebelum ini ia hanya berfungsi di bawah 10.30 atau lebih baru). Anda memerlukan perpustakaan benang
pakej dipasang. Lihat README.hpux. [561]

· Mac OS Classic kini disokong dalam pakej sumber arus perdana (MacPerl mempunyai
kursus telah tersedia sejak perl 5.004 tetapi kini asas kod sumber Perl standard
dan MacPerl telah disegerakkan) [561]

· Mac OS X (atau Darwin) kini sepatutnya boleh membina Perl walaupun pada sistem fail HFS+. (The
case-insensitivity digunakan untuk mengelirukan proses binaan Perl.)

· NCR MP-RAS kini disokong. [561]

· Semua tampung khusus NetBSD (kecuali tampung khusus pemasangan) telah
digabungkan kembali ke pengedaran utama.

· NetWare daripada Novell kini disokong. Lihat perlnetware.

· NonStop-UX kini disokong. [561]

· NEC SUPER-UX kini disokong.

· Semua tampung khusus OpenBSD (kecuali tampung khusus pemasangan) telah
digabungkan kembali ke pengedaran utama.

· Perl telah diuji dengan pakej benang peringkat pengguna pth GNU (
http://www.gnu.org/software/pth/pth.html ). Semua ujian benang Perl kini berfungsi, tetapi
bukan tanpa menambah sedikit hasil()s untuk ujian, jadi sementara pth (dan level pengguna lain
pelaksanaan benang) boleh dianggap sebagai "berfungsi" dengan ithreads Perl, teruskan
fikirkan kemungkinan tidak boleh didahulukan pelaksanaan utas asas.

· Stratus VOS kini disokong menggunakan kaedah binaan asli Perl (Konfigurasi). Ini adalah
kaedah yang disyorkan untuk membina Perl pada VOS. Kaedah lama, yang membina miniperl,
masih ada. Lihat perlvos. [561+]

· Platform kerangka utama Amdahl UTS Unix kini disokong. [561]

· WinCE kini disokong. Lihat perlce.

· z/OS (dahulunya dikenali sebagai OS/390, dahulu dikenali sebagai MVS OE) kini mempunyai sokongan untuk dinamik
memuatkan. Ini tidak dipilih secara lalai, bagaimanapun, anda mesti menentukan -Dusedl dalam
hujah Konfigurasi. [561]

Dipilih Bug Pembaikan


Banyak kebocoran memori dan akses memori yang tidak dimulakan telah diburu. Paling
yang penting, subs tanpa nama dulu agak bocor. [561]

· Pragma autouse tidak berfungsi untuk Multi::Part::Function::Names.

· pemanggil() boleh menyebabkan pembuangan teras dalam situasi tertentu. Carp kadang-kadang terjejas oleh
masalah ini. khususnya, pemanggil() kini mengembalikan nama subrutin "(tidak diketahui)"
untuk subrutin yang telah dialih keluar daripada jadual simbol.

· chop(@list) dalam konteks senarai mengembalikan aksara yang dicincang dalam susunan terbalik. ini
telah diterbalikkan untuk berada dalam susunan yang betul. [561]

· Konfigurasikan tidak lagi termasuk perpustakaan DBM (dbm, gdbm, db, ndbm) semasa membina
Perl binari. Satu-satunya pengecualian untuk ini ialah SunOS 4.x, yang memerlukannya. [561]

· Kelakuan pemalar rentetan bukan perpuluhan tetapi berangka seperti "0x23" ialah platform-
bergantung: dalam beberapa platform yang dilihat sebagai 35, dalam sesetengahnya sebagai 0, dalam sesetengahnya sebagai terapung
nombor mata (jangan tanya). Ini disebabkan oleh Perl menggunakan sistem pengendalian
perpustakaan dalam keadaan di mana hasil penukaran rentetan kepada nombor adalah
undefined: kini Perl secara konsisten mengendalikan rentetan seperti sifar dalam konteks angka.

· Beberapa pembetulan penyahpepijat: kod keluar kini mencerminkan kod keluar skrip, syarat "0" sekarang
dirawat dengan betul, arahan "d" kini menyemak nombor baris, $. tidak lagi mendapat
rosak, dan semua output penyahpepijat kini pergi dengan betul ke soket jika RemotePort adalah
ditetapkan. [561]

· Penyahpepijat (perl5db.pl) telah diubah suai untuk memberikan arahan yang lebih konsisten
antara muka, melalui (CommandSet=580). perl5db.t juga telah ditambahkan untuk menguji perubahan, dan sebagai
pemegang tempat untuk ujian lanjut.

Lihat perldebug.

· Penyahpepijat mempunyai pilihan "dumpDepth" baharu untuk mengawal kedalaman maksimum yang bersarang
struktur dibuang. Perintah "x" telah dilanjutkan supaya "x N EXPR" dibuang keluar
nilai luput ke kedalaman paling banyak N peringkat.

· Penyahpepijat kini boleh menunjukkan pembolehubah leksikal jika anda mempunyai modul CPAN PadWalker
dipasang.

· Urutan DESTROY telah dibuat lebih mudah dijangka.

· Perl 5.6.0 boleh mengeluarkan amaran palsu tentang definisi semula dl_error() apabila
membina sambungan secara statik ke dalam perl. Ini telah diperbetulkan. [561]

· dprofpp -R tidak berfungsi.

· *foo{FORMAT} kini berfungsi.

· Infiniti kini dikenali sebagai nombor.

· UNIVERSAL::isa tidak lagi menyimpan kaedah secara salah. (Ini memecahkan sambungan Tk
dengan 5.6.0.) [561]

· Leksikal I: leksikal di luar eval "" tidak diselesaikan dengan betul dalam subrutin
takrifan di dalam eval "" jika ia belum dirujuk di peringkat teratas
kod eval""ed.

· Leksikal II: leksikal bocor pada skop fail ke dalam subrutin yang telah diisytiharkan sebelum ini
leksikal.

· Amaran leksikal kini menyebar dengan betul antara skop dan menjadi "eval "..."".

· "gunakan amaran qw(FATAL all)" tidak berfungsi seperti yang dimaksudkan. Ini telah diperbetulkan. [561]

· amaran::enabled() kini melaporkan keadaan $^W dengan betul jika pemanggil tidak menggunakan
amaran leksikal. [561]

· Penomboran semula talian dengan eval dan "#line" kini berfungsi. [561]

· Membetulkan banyak kebocoran memori, terutamanya dalam eval "".

· Pembolehubah terikat setempat tidak lagi membocorkan memori

gunakan Tie::Hash;
ikat %tied_hash saya => 'Tie::StdHash';

...

# Digunakan untuk membocorkan memori setiap kali local() dipanggil;
# dalam satu gelung, ini ditambah.
local($tied_hash{Foo}) = 1;

· Elemen cincang setempat (dan %ENV) dinyahtempatkan dengan betul untuk tidak wujud, jika ia
tidak sebelum mereka disetempatkan.

gunakan Tie::Hash;
ikat %tied_hash saya => 'Tie::StdHash';

...

# Tiada apa-apa yang menetapkan elemen FOO setakat ini

{ local $tied_hash{FOO} = 'Bar' }

# Ini digunakan untuk mencetak, tetapi tidak sekarang.
cetak "wujud!\n" jika wujud $tied_hash{FOO};

Sebagai kesan sampingan pembetulan ini, antara muka cincang terikat kemestian tentukan EXISTS dan DELETE
kaedah.

· mkdir() kini mengabaikan garis miring mengekor dalam nama direktori, seperti yang dimandatkan oleh POSIX.

· Beberapa versi glibc telah rosak modfl(). Ini menjejaskan binaan dengan
"-Duselongdouble". Versi Perl ini mengesan kerosakan ini dan mempunyai penyelesaian
untuk ia. Keluaran glibc 2.2.2 diketahui telah membetulkan modfl() pepijat.

· Modulus nombor tidak bertanda kini berfungsi (4063328477 % 65535 digunakan untuk mengembalikan 27406,
bukannya 27047). [561]

· Beberapa amaran "bukan nombor" yang diperkenalkan dalam 5.6.0 dihapuskan agar lebih serasi dengannya
5.005. Infiniti kini dikenali sebagai nombor. [561]

· Penukaran berangka tidak mengenali perubahan dalam nilai rentetan dengan betul dalam tertentu
keadaan. [561]

· Atribut (seperti :shared) tidak berfungsi kami().

· kami() pembolehubah tidak akan menyebabkan amaran palsu "Pembolehubah tidak akan kekal dikongsi". [561]

· Pembolehubah "kami" dengan nama yang sama diisytiharkan dalam dua blok adik-beradik menghasilkan palsu
amaran tentang "pengisytiharan semula" pembolehubah. Masalah telah diperbetulkan.
[561]

· pek "Z" kini menamatkan rentetan dengan betul dengan "\0".

· Betulkan rutin kata laluan yang disebabkan oleh beberapa platform kata laluan bayangan (cth. HP-UX).
getpwent() untuk mengembalikan setiap entri lain.

· Pembolehubah persekitaran PERL5OPT (untuk menghantar argumen baris arahan kepada Perl) tidak
bekerja untuk lebih daripada satu kumpulan pilihan. [561]

· PERL5OPT dengan ruang terbenam tidak berfungsi.

· printf() tidak lagi menetapkan semula tempat berangka kepada "C".

· "qw(a\\b)" kini menghuraikan dengan betul sebagai 'a\\b': iaitu, sebagai tiga aksara, bukan empat.
[561]

· pos() tidak mengembalikan nilai yang betul dalam s///ge dalam versi terdahulu. Ini sekarang
dikendalikan dengan betul. [561]

· Mencetak empat empat (integer 64-bit) dengan printf/sprintf kini berfungsi tanpa q L ll
awalan (dengan mengandaikan anda berada pada platform berkemampuan empat).

· Ungkapan biasa pada rujukan dan skalar terlampau beban kini berfungsi. [561+]

· Sihir sebelah kanan (GMAGIC) boleh dalam banyak kes seperti penyambungan rentetan
dipanggil terlalu banyak kali.

· skalar() kini memaksa konteks skalar walaupun digunakan dalam konteks kosong.

· Sokongan SOCKS kini lebih teguh.

· urutkan () hujah kini disusun dalam konteks wantarray yang betul (mereka
secara tidak sengaja menggunakan konteks urutkan () sendiri). Blok perbandingan kini dijalankan
dalam konteks skalar, dan hujah yang hendak diisih sentiasa disediakan konteks senarai.
[561]

· Menukar kelas aksara POSIX "[[:space:]]" untuk memasukkan (sangat jarang digunakan)
watak tab menegak. Menambah kelas aksara POSIX-ish baharu "[[:blank:]]" yang
bermaksud ruang putih mendatar (pada masa ini, ruang dan tab).

· Tingkah laku yang mencemarkan pecut () telah dirasionalkan. Ia tidak mencemarkan
hasil daripada format titik terapung lagi, menjadikan tingkah laku konsisten dengan
interpolasi rentetan. [561]

· Beberapa kes penyebaran kotoran yang tidak konsisten (seperti dalam nilai cincang) telah berlaku
tetap.

· Enjin RE yang terdapat dalam Perl 5.6.0 secara tidak sengaja memusnahkan jenis mudah tertentu
padanan corak. Ini kini dikendalikan dengan lebih baik. [561]

· Keluaran nyahpepijat ungkapan biasa (sama ada melalui "guna semula 'debug'" atau melalui "-Dr") sekarang
kelihatan lebih baik. [561]

· Padanan berbilang baris seperti ""a\nxb\n" =~ /(?!\A)x/m" telah rosak. Pepijat telah
tetap. [561]

· Penggunaan $& boleh mencetuskan pembuangan teras dalam beberapa situasi. Ini kini dielakkan. [561]

· Padanan kecil yang ditangkap ungkapan biasa ($1, $2, ...) kini lebih konsisten
dinyahtetapkan jika perlawanan gagal, dan bukannya meninggalkan data palsu yang tersimpan di dalamnya. [561]

· readline() pada fail yang dibuka dalam mod "slurp" boleh mengembalikan "" tambahan (baris kosong) di
akhir dalam situasi tertentu. Ini telah diperbetulkan. [561]

· Autovivifikasi rujukan simbolik pembolehubah khas yang diterangkan dalam perlvar (sebagai
dalam "${$num}") telah dilumpuhkan secara tidak sengaja. Ini berfungsi semula sekarang. [561]

· Sys::Syslog mengabaikan pemalar "LOG_AUTH".

· $AUTOLOAD, urutkan (), kunci (), dan melahirkan subproses dalam berbilang rangkaian
pada masa yang sama kini selamat untuk benang.

· Tie::Kaedah SPLICE Array telah rosak.

· Benarkan rentetan baca sahaja di sebelah kiri tr// yang tidak mengubah suai/.

· Jika "STDERR" terikat, amaran yang disebabkan oleh "amaran" dan "mati" kini dihantar dengan betul kepadanya.

· Beberapa pembetulan Unicode.

· BOM (tanda pesanan bait) pada permulaan fail Perl (skrip, modul)
kini harus dilangkau secara telus. Fail Perl yang dikodkan UTF-16 dan UCS-2
kini harus dibaca dengan betul.

· Jadual aksara telah dikemas kini kepada Unicode 3.2.0.

· Membandingkan dengan data utf8 tidak menaik taraf data bukan utf8 secara ajaib kepada utf8.
(Ini adalah masalah sebagai contoh jika anda mencampurkan data daripada I/O dan Unicode
data: output anda mungkin telah dikodkan secara ajaib sebagai UTF-8.)

· Menjana titik kod Unikod haram seperti U+FFFE, atau UTF-16
pengganti, kini turut menjana amaran pilihan.

· "IsAlnum", "IsAlpha", dan "IsWord" kini sepadan dengan huruf tajuk.

· Penggabungan dengan "." operator atau melalui interpolasi pembolehubah, "eq",
"substr", "reverse", "quotemeta", pengendali "x", penggantian dengan "s///",
UTF-8 petikan tunggal, kini sepatutnya berfungsi.

· Operator "tr///" kini berfungsi. Ambil perhatian bahawa fungsi "tr///CU" mempunyai
telah dialih keluar (tetapi lihat pek('U0', ...)).

· "eval "v200"" kini berfungsi.

· Perl 5.6.0 menghuraikan m/\x{ab}/ secara salah, yang membawa kepada amaran palsu. ini
telah diperbetulkan. [561]

· Sifar entri hilang daripada kelas Unicode seperti "IsDigit".

· Nombor besar yang tidak ditandatangani (yang melebihi 2**31) kadangkala boleh kehilangan tanda tidak ditandatangani,
menyebabkan keputusan palsu dalam operasi aritmetik. [561]

· Penghurai Perl telah diuji tegasan menggunakan kedua-dua input rawak dan input rantai Markov
dan beberapa ranap dan lokap yang ditemui telah diperbaiki.

platform Khusus Perubahan and Pembaikan
· BSDI 4.*

Perl kini berfungsi pada pasca-4.0 BSD/OS.

· Semua BSD

Menetapkan $0 kini berfungsi (sebanyak mungkin; lihat perlvar untuk butiran).

· Cygwin

Banyak kemas kini; kini disegerakkan dengan Cygwin 1.3.10.

· Sebelum ini DYNIX/ptx mengalami masalah dalam probe Konfigurasikan untuk I/O tidak menyekat.

· EPOC

EPOC kini disokong dengan lebih baik. Lihat README.epoc. [561]

· FreeBSD 3.*

Perl kini berfungsi pada FreeBSD pasca-3.0.

· HP-UX

README.hpux dikemas kini; "Configure -Duse64bitall" kini berfungsi; kini menggunakan HP-UX malloc
bukannya Perl malloc.

· IRIX

Banyak penambahbaikan bendera kompilasi dan pembayang; percampuran tidak sengaja 32-bit dan
Perpustakaan 64-bit (percubaan yang ditakdirkan) menjadi lebih sukar.

· Linux

· Beregu panjang kini sepatutnya berfungsi (lihat PASANG). [561]

· Linux sebelum ini mempunyai masalah yang berkaitan dengan sockaddrlen semasa menggunakan terima (),
recvfrom() (dalam Perl: recv()), getpeername(), dan getsockname().

· Mac OS Klasik

Penyusunan pengedaran Perl standard dalam Mac OS Classic kini sepatutnya berfungsi jika anda
mempunyai persekitaran pembangunan Metrowerks dan bit toolkit khusus Mac yang hilang.
Hubungi senarai mel macperl untuk butiran.

· MPE/iX

Kemas kini MPE/iX selepas Perl 5.6.0. Lihat README.mpeix. [561]

· NetBSD/benang: cuba pasang pth GNU (sepatutnya dalam koleksi pakej, atau
http://www.gnu.org/software/pth/), dan Konfigurasikan dengan -Duseithreads.

· NetBSD/sparc

Perl kini berfungsi pada NetBSD/sparc.

· OS/2

Kini berfungsi dengan usethreads (lihat PASANG). [561]

· Solaris

64-bitness menggunakan pengkompil Sun Workshop kini berfungsi.

· Stratus VOS

Kaedah binaan asli memerlukan sekurang-kurangnya VOS Release 14.5.0 dan GNU C++/GNU Tools
2.0.1 atau lebih baru. Fungsi pek Perl kini memetakan nilai limpahan kepada +infiniti dan
nilai terkurang sehingga -infiniti.

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

Surat versi sistem pengendalian kini direkodkan dalam $Config{osvers}. Benarkan menyusun
dengan gcc (sebelum ini secara jelas dilarang). Menyusun dengan gcc masih tidak disyorkan
kerana hasil kod buggy, walaupun dengan gcc 2.95.2.

· Unicos

Memperbaiki pelbagai masalah penjajaran yang membawa kepada pembuangan teras sama ada semasa membina atau
nanti; tidak lagi mati pada ralat matematik semasa runtime; kini menggunakan integer empat penuh (64
bit), sebelum ini hanya menggunakan integer 46 bit untuk kelajuan.

· VMS

Lihat "Socket Extension Dynamic dalam VMS" dan "IEEE-format Floating Point Default on
OpenVMS Alpha" untuk perubahan penting yang tidak disenaraikan di sini.

chdir() kini berfungsi lebih baik walaupun terdapat pepijat CRT; kini berfungsi dengan MULTIPLICITY (lihat PASANG);
kini berfungsi dengan malloc Perl.

Pencemaran unsur %ENV melalui "kunci" atau "nilai" sebelum ini tidak dilaksanakan. Ia
kini berfungsi seperti yang didokumenkan.

Emulasi "waitpid" telah dipertingkatkan. Pepijat yang paling teruk (kini telah diperbaiki) ialah pid
daripada -1 akan menyebabkan carian kad bebas semua proses pada sistem.

Isyarat gaya POSIX kini dicontohi dengan lebih baik pada versi VMS sebelum 7.0.

Fungsi "sistem" dan pengendali backticks telah meningkatkan fungsi dan lebih baik
pengendalian ralat. [561]

Ujian akses fail kini menggunakan keistimewaan proses semasa dan bukannya lalai pengguna
keistimewaan, yang kadangkala boleh mengakibatkan ketidakpadanan antara akses yang dilaporkan dan
akses sebenar. Peningkatan ini hanya tersedia pada VMS v6.0 dan lebih baru.

Terdapat pelaksanaan "kill" baharu berdasarkan "sys$sigprc" yang membenarkan VMS yang lebih lama
sistem (pra-7.0) untuk menggunakan "bunuh" untuk menghantar isyarat dan bukannya memaksa keluar. ini
pelaksanaan juga membolehkan sistem kemudiannya memanggil "membunuh" dari dalam pengendali isyarat.

Terjemahan nama logik berulang kini terhad kepada 10 lelaran sebagai tiruan
TUNJUKKAN LOGIK dan kemudahan OpenVMS yang lain.

· Tingkap

· Pengendalian isyarat kini berfungsi lebih baik daripada sebelumnya. Ia kini dilaksanakan menggunakan
gelung mesej Windows, dan oleh itu kurang terdedah kepada ranap ranap.

· garpu () emulasi kini lebih mantap, tetapi masih terus mempunyai beberapa
pepijat esoterik dan kaveat. Lihat perlfork untuk butiran. [561+]

· Garpu (pseudo) yang gagal kini mengembalikan undef dan menetapkan errno kepada EAGAIN. [561]

· Modul berikut kini berfungsi pada Windows:

ExtUtils::Benamkan [561]
IO::Paip
IO::Tinjauan
Net::Ping

· IO::Fail::new_tmpfile() tidak lagi terhad kepada 32767 invokasi setiap proses.

· Lebih baik chdir() nilai pulangan untuk direktori yang tidak wujud.

· Menyusun perl menggunakan alat SDK Platform 64-bit kini disokong.

· The Win32::SetChildShowWindow() builtin boleh digunakan untuk mengawal keterlihatan
tetingkap yang dicipta oleh proses kanak-kanak. Lihat Win32 untuk butiran.

· Menunggu tanpa sekatan untuk proses anak (atau proses pseudo) disokong melalui
"waitpid($pid, &POSIX::WNOHANG)".

· Tingkah laku sistem () dengan pelbagai hujah telah dirasionalkan. setiap satu
hujah yang tidak disebut akan dipetik secara automatik untuk melindungi ruang kosong, dan sebarang
ruang putih sedia ada dalam hujah akan dikekalkan. Ini menambah baik
mudah alih sistem(@args) dengan mengelakkan keperluan untuk shell "cmd" Windows
petikan khusus dalam program perl.

Ambil perhatian bahawa ini bermakna bahawa beberapa skrip yang mungkin bergantung pada buggy sebelumnya
tingkah laku mungkin tidak lagi berfungsi dengan betul. Contohnya, "system("nmake /nologo",
@args)" kini akan cuba menjalankan fail "nmake /nologo" dan akan gagal apabila
fail sedemikian tidak ditemui. Sebaliknya, perl kini akan melaksanakan kod sedemikian
sebagai "sistem("c:/Program Files/MyApp/foo.exe", @args)" dengan betul.

· Fail pengepala perl tidak lagi menyekat amaran biasa daripada Microsoft
Pengkompil Visual C++. Ini bermakna amaran tambahan kini mungkin muncul apabila
menyusun kod XS.

· Borland C++ v5.5 kini merupakan pengkompil yang disokong yang boleh membina Perl. Walau bagaimanapun,
binari yang dijana terus tidak serasi dengan yang dijana oleh
penyusun lain yang disokong (GCC dan Visual C++). [561]

· Pemegang soket Duping dengan buka(F, ">&MYSOCK") kini berfungsi di bawah Windows 9x.
[561]

· Entri direktori semasa dalam %ENV kini disebarkan dengan betul kepada anak
proses. [561]

· Entri %ENV baharu kini disebarkan ke subproses. [561]

· Win32::GetCwd() mengembalikan C:\ dengan betul dan bukannya C: apabila berada di akar pemacu.
Pepijat lain masuk chdir() and Cwd::cwd() juga telah ditetapkan. [561]

· Makefiles kini lalai kepada ciri yang didayakan dalam ActiveState ActivePerl (a
pengedaran binari Win32 yang popular). [561]

· Fail HTML kini akan dipasang dalam c:\perl\html dan bukannya
c:\perl\lib\pod\html

· Kekunci REG_EXPAND_SZ kini dibenarkan dalam tetapan pendaftaran yang digunakan oleh perl. [561]

· Boleh sekarang hantar() dari semua benang, bukan hanya yang pertama. [561]

· ExtUtils::MakeMaker kini menggunakan $ENV{LIB} untuk mencari perpustakaan. [561]

· Kurang tindanan dikhaskan bagi setiap utas supaya lebih banyak utas boleh dijalankan serentak.
(Masih 16M setiap utas.) [561]

· "Fail::Spec->tmpdir()" kini lebih suka C:/temp daripada / tmp (berfungsi lebih baik apabila perl
sedang berjalan sebagai perkhidmatan).

· Pengendalian laluan UNC yang lebih baik di bawah ithreads. [561]

· tunggu (), waitpid(), dan backticks kini mengembalikan status keluar yang betul di bawah
Windows 9x. [561]

· Pemegang soket bocor terima () telah ditetapkan. [561]

Baru or Berubah Diagnostik


Sila lihat perldiag untuk butiran lanjut.

· Julat samar-samar dalam operator transliterasi (seperti az-9) kini memberi amaran.

· chdir("") dan chdir(undef) kini memberikan amaran penamatan kerana ia menyebabkan a
kemungkinan chdir tidak disengajakan ke direktori rumah. Katakanlah chdir() jika anda benar-benar maksudkan
itu.

· Dua pilihan penyahpepijatan baharu telah ditambah: jika anda telah menyusun Perl anda dengan
penyahpepijatan, anda boleh menggunakan pilihan -DT [561] dan -DR untuk mengesan tokenisasi dan menambah
kiraan rujukan untuk memaparkan pembolehubah, masing-masing.

· Kategori amaran leksikal "ditamatkan" bukan lagi subkategori "sintaks"
kategori. Ia kini merupakan kategori peringkat tertinggi dengan haknya sendiri.

· Tidak berhias pembuangan() kini akan memberikan amaran yang mencadangkan untuk menggunakan eksplisit TERAS::dump() if
itulah sebenarnya yang dimaksudkan.

· Amaran "Larian tidak dikenali" telah dilanjutkan untuk memasukkan "\8", "\9", dan "\_".
Tidak perlu melarikan diri dari mana-mana aksara "\w".

· Semua mesej ralat penyusunan ungkapan biasa kini diharapkan lebih mudah
fahami kedua-duanya kerana mesej ralat kini datang sebelum regex yang gagal dan
kerana titik kegagalan kini jelas ditandai dengan penanda "<-- DI SINI".

· Pelbagai fungsi I/O (dan soket) seperti binmode(), tutup (), dan seterusnya sekarang lagi
memberi amaran secara konsisten jika ia digunakan secara tidak logik sama ada pada yang belum dibuka atau pada
pemegang fail (atau soket) telah ditutup.

· Menggunakan lstat () pada pemegang fail kini memberikan amaran. (Ia adalah perkara yang tidak masuk akal untuk dilakukan.)

· Pilihan "-M" dan "-m" kini memberi amaran jika anda tidak membekalkan nama modul.

· Jika anda dalam "menggunakan" menentukan versi minimum yang diperlukan, modul yang sepadan dengan nama dan tetapi
tidak mentakrifkan $VERSION akan menyebabkan kegagalan yang membawa maut.

· Menggunakan offset negatif untuk vec() dalam konteks nilai kini merupakan kesalahan berwarna.

· Bilangan ganjil argumen untuk terlebih beban::constant kini menimbulkan amaran.

· Bilangan ganjil unsur dalam cincang tanpa nama kini menimbulkan amaran.

· Pelbagai amaran "dibuka hanya untuk", "ditutup", "tidak pernah dibuka" menggugurkan "utama::"
awalan untuk pemegang fail dalam pakej "utama", contohnya "STDIN" dan bukannya
"utama::STDIN".

· Prototaip subrutin kini disemak dengan lebih teliti, anda mungkin mendapat amaran sebagai contoh
jika anda telah menggunakan aksara bukan prototaip.

· Jika percubaan untuk menggunakan rujukan (tidak diberkati) sebagai indeks tatasusunan dibuat, amaran adalah
diberi.

· "tolak @a;" dan "nyah anjakan @a;" (tanpa nilai untuk ditolak atau dinyahanjakan) kini memberi amaran.
Ini mungkin menjadi masalah untuk kod yang dijana dan dinilai.

· Jika anda cuba "membungkus" dalam perlfunc nombor kurang daripada 0 atau lebih besar daripada 255 menggunakan "C"
format anda akan mendapat amaran pilihan. Begitu juga untuk format "c" dan nombor
kurang daripada -128 atau lebih daripada 127.

· format pek "P" kini memerlukan saiz yang jelas.

· bongkar "w" kini memberi amaran tentang integer mampat yang tidak ditamatkan.

· Amaran berkaitan penggunaan PerlIO telah ditambah.

· Pengubah suai regex tertentu seperti "(?o)" hanya masuk akal jika digunakan pada keseluruhan regex.
Anda akan mendapat amaran pilihan jika anda cuba melakukan sebaliknya.

· Pembolehubah panjang lihat di belakang belum lagi dilaksanakan, cuba menggunakannya akan memberitahu
itu.

· Menggunakan tatasusunan atau cincang sebagai rujukan (cth. "%foo->{bar}" telah ditamatkan untuk
sementara. Kini anda akan mendapat amaran pilihan.

· Amaran berkaitan penggunaan ciri cincang terhad baharu telah ditambah.

· Ikatan kendiri tatasusunan dan cincang tidak disokong dan ralat maut akan berlaku walaupun pada
percubaan untuk berbuat demikian.

· Menggunakan "isih" dalam konteks skalar kini mengeluarkan amaran pilihan. Ini tidak berjaya
apa-apa yang berguna, kerana jenis itu tidak dilakukan.

· Menggunakan pengubah suai /g dalam berpecah () tidak bermakna dan akan menyebabkan amaran.

· Menggunakan sambatan () melepasi hujung tatasusunan kini menyebabkan amaran.

· Pengekodan Unicode yang tidak betul (UTF-8 dan UTF-16) menyebabkan banyak amaran, begitu juga dengan mencuba
untuk menggunakan pengganti UTF-16 (yang tidak dilaksanakan).

· Cuba menggunakan aksara Unicode pada strim I/O tanpa menandakan strim itu
pengekodan (menggunakan buka() or binmode()) akan menyebabkan amaran "Wide character".

· Penggunaan rentetan v yang digunakan/diperlukan menyebabkan amaran mudah alih (ke belakang).

· Amaran yang berkaitan dengan urutan penterjemah penggunaan dan data kongsinya telah
ditambah.

Berubah Dalaman


· PerlIO kini menjadi lalai.

· perlapi.pod (rakan perlguts) kini cuba mendokumentasikan API dalaman.

· Anda kini boleh membina perl yang sangat minimum yang dipanggil microperl. Membina microperl tidak
memerlukan walaupun menjalankan Konfigurasi; "make -f Makefile.micro" sepatutnya mencukupi. Awas:
microperl membuat banyak andaian, sesetengah daripadanya mungkin terlalu berani; yang terhasil
boleh laku mungkin ranap atau sebaliknya berkelakuan buruk dengan cara yang menakjubkan. Untuk penggodam yang berhati-hati
sahaja.

· Ditambah rsignal(), whichsig(), do_join(), op_clear, op_null, ptr_table_clear(),
ptr_table_free(), sv_setref_uv(), dan beberapa antara muka UTF-8 kepada API yang dipublikasikan.
Untuk senarai penuh API yang tersedia lihat perlapi.

· Dimungkinkan untuk menyebarkan pengecualian tersuai melalui kuak()ing.

· Kini xsubs boleh mempunyai atribut sama seperti subs. (Nah, sekurang-kurangnya terbina dalam
sifat-sifat.)

· dTHR dan djSP telah usang; yang pertama dikeluarkan (kerana ia adalah no-op) dan
kemudian diganti dengan dSP.

· PERL_OBJECT telah dialih keluar sepenuhnya.

· Pemalar MAGIC (cth 'P') telah dimakrofikan (cth "PERL_MAGIC_TIED") untuk lebih baik
kebolehbacaan dan kebolehselenggaraan kod sumber.

· Pengkompil regex kini mengekalkan struktur yang mengenal pasti nod dalam yang disusun
bytecode dengan ciri sintaksis yang sepadan bagi ekspresi regex asal.
Maklumat ini dilampirkan pada ahli "offset" baharu bagi "struct regexp". Lihat
perldebguts untuk maklumat yang lebih lengkap.

· Kod C telah dibuat lebih "gcc -Wall" bersih. Beberapa mesej amaran masih
kekal dalam beberapa platform, jadi jika anda menyusun dengan gcc, anda mungkin melihat beberapa amaran
tentang amalan yang meragukan. Amaran sedang diusahakan.

· perly.c, sv.c, dan sv.h kini telah diulas secara meluas.

· Dokumentasi tentang cara menggunakan repositori sumber Perl telah ditambahkan pada
Porting/repository.pod.

· Kini terdapat beberapa sasaran membuat profil.

Keselamatan Vulnerability Tutup [561]


(Perubahan ini telah dibuat dalam 5.7.0 tetapi masih berulang di sini.) (5.7.0 keluar sebelum ini
5.6.1: cawangan pembangunan 5.7 dikeluarkan lebih awal daripada cawangan penyelenggaraan 5.6)

Kerentanan keselamatan yang berpotensi dalam komponen suidperl pilihan Perl ialah
dikenal pasti pada Ogos 2000. suidperl tidak dibina atau dipasang secara lalai. Setakat
November 2001 satu-satunya platform terdedah yang diketahui ialah Linux, kemungkinan besar semua Linux
pengagihan. CERT dan pelbagai vendor dan pengedar telah dimaklumkan tentang
kelemahan. Lihat http://www.cpan.org/src/5.0/sperl-2000-08-05/sperl-2000-08-05.txt khususnya
maklumat lanjut.

Masalah ini disebabkan oleh Perl cuba melaporkan percubaan mengeksploitasi keselamatan yang disyaki menggunakan
program luaran, /bin/mel. Pada platform Linux program /bin/mail mempunyai
ciri tidak berdokumen yang apabila digabungkan dengan suidperl memberikan akses kepada cangkang akar,
mengakibatkan kompromi yang serius dan bukannya melaporkan percubaan mengeksploitasi. Jika anda tidak
mempunyai /bin/mel, atau jika anda mempunyai 'skrip setuid selamat', atau jika suidperl tidak dipasang, anda
selamat.

Ciri pelaporan percubaan eksploitasi telah dialih keluar sepenuhnya daripada Perl 5.8.0 (dan versi
keluaran penyelenggaraan 5.6.1, dan ia dikeluarkan juga daripada semua keluaran Perl 5.7), jadi
kelemahan tertentu itu tidak ada lagi. Walau bagaimanapun, keselamatan lanjut
kelemahan, malangnya, sentiasa mungkin. Fungsi suidperl adalah yang paling banyak
mungkin akan dialih keluar dalam Perl 5.10. Walau apa pun, suidperl hanya boleh digunakan oleh
pakar keselamatan yang tahu dengan tepat apa yang mereka lakukan dan sebab mereka menggunakan suiperl
bukannya beberapa penyelesaian lain seperti sudo (lihat http://www.courtesan.com/sudo/ ).

Baru Ujian


Beberapa ujian baharu telah ditambah, terutamanya untuk lib and ext subseksyen. Disana ada
kini kira-kira 69 000 ujian individu (tersebar lebih kurang 700 skrip ujian), dalam regresi
suite (5.6.1 mempunyai kira-kira 11 700 ujian, dalam 258 skrip ujian) Nombor tepat bergantung pada
platform dan konfigurasi Perl digunakan. Banyak ujian baru sudah tentu diperkenalkan oleh
modul baru, tetapi masih secara umum Perl kini diuji dengan lebih teliti.

Oleh kerana bilangan ujian yang banyak, menjalankan suite regresi akan mengambil masa yang agak lama
masa yang lebih lama daripada biasa: jangkakan suite mengambil masa sehingga 4-5 kali lebih lama untuk dijalankan daripada
dalam perl 5.6. Pada mesin yang sangat laju, anda boleh berharap untuk menyelesaikan suite dalam kira-kira 6-8
minit (masa jam dinding).

Ujian kini dilaporkan dalam susunan yang berbeza daripada Perls sebelumnya. (Ini berlaku
kerana skrip ujian dari bawah t/lib telah dialihkan supaya lebih dekat dengan
perpustakaan/sambungan mereka sedang menguji.)

Diketahui Masalah


. Pengkompil Suite Is Masih Sangat Eksperimen
Suite pengkompil perlahan-lahan menjadi lebih baik tetapi ia terus menjadi sangat eksperimen.
Penggunaan dalam persekitaran pengeluaran adalah tidak digalakkan.

Penyetempatan Terikat Arrays and Labuh Is Patah
%tied_array tempatan;

tidak berfungsi seperti yang diharapkan: nilai lama dipulihkan secara tidak betul. Ini akan menjadi
diubah dalam keluaran akan datang, tetapi kami belum tahu apa sebenarnya semantik baharu itu.
Walau apa pun, perubahan akan memecahkan kod sedia ada yang bergantung pada semasa (tidak jelas)
semantik, jadi elakkan melakukan ini secara umum.

Bangunan Extensions Can Gagal Kerana Of Fail besar
Sesetengah sambungan seperti mod_perl diketahui mempunyai masalah dengan `fail besar', perubahan yang dibawa
oleh Perl 5.6.0 di mana fail mengimbangi lalai kepada 64 bit lebar, jika disokong. Modul boleh
gagal untuk menyusun sama sekali, atau mereka mungkin menyusun dan berfungsi dengan tidak betul. Pada masa ini, tiada
penyelesaian yang baik untuk masalah itu, tetapi Configure kini menyediakan fail bukan besar yang sesuai
ccflags, ldflags, libswanted dan libs dalam cincang %Config (cth,
$Config{ccflags_nolargefiles}) supaya sambungan yang menghadapi masalah boleh mencuba
mengkonfigurasi diri mereka tanpa kehancuran yang besar. Ini diakui tidak bersih
penyelesaian, dan penyelesaian itu mungkin tidak berfungsi sama sekali. Satu potensi kegagalan adalah sama ada satu
boleh (atau, jika seseorang boleh, sama ada idea yang baik untuk) memaut bersama di semua binari dengan
idea yang berbeza tentang ofset fail; semua ini bergantung pada platform.

Mengubahsuai $_ Dalam untuk(..)
untuk (1..5) { $__++ }

berfungsi tanpa rungutan. Ia tidak sepatutnya. (Anda sepatutnya boleh mengubah suai hanya lvalue
elemen di dalam gelung.) Anda boleh melihat kelakuan yang betul dengan menggantikan 1..5 dengan
1, 2, 3, 4, 5.

mod_perl 1.26 Tidak Membina Dengan Diulirkan Perl
Gunakan mod_perl 1.27 atau lebih tinggi.

lib/ftmp-security ujian memberi amaran kepada 'sistem kemungkinan tidak selamat'
Jangan panik. Sebaliknya, baca bahagian 'buat ujian' INSTALL.

libwww-perl (LWP) gagal asas/tarikh #51
Gunakan libwww-perl 5.65 atau lebih baru.

PDL gagal beberapa ujian
Gunakan PDL 2.3.4 atau lebih baru.

Perl_get_sv
Anda mungkin mendapat ralat seperti 'Simbol tidak ditentukan "Perl_get_sv"' atau "tidak dapat menyelesaikan simbol
'Perl_get_sv'", atau simbolnya mungkin "Perl_sv_2pv". Ini mungkin bermakna anda
cuba menggunakan pustaka Perl kongsi yang lebih lama (atau sambungan yang dipautkan dengan itu) dengan Perl
5.8.0 boleh laksana. Perl pernah mempunyai subrutin sedemikian, tetapi itu tidak lagi berlaku.
Semak laluan perpustakaan kongsi anda dan mana-mana perpustakaan Perl kongsi dalam direktori tersebut.

Kadangkala masalah ini juga mungkin menunjukkan pemasangan Perl 5.8.0 separa, lihat "Mac OS X
dyld undefined symbols" untuk contoh dan cara menanganinya.

Mengikat diri Masalah
Ikatan sendiri tatasusunan dan cincang dipecahkan dengan cara yang agak mendalam dan sukar untuk diperbaiki. Sebagai perhentian-
ukuran jurang untuk mengelakkan orang ramai daripada kecewa dengan keputusan misteri (buangan teras,
paling kerap), ia dilarang buat masa ini (anda akan mendapat ralat maut walaupun dari percubaan).

Perubahan kepada ikatan sendiri gumpalan telah menyebabkan mereka dirujuk secara rekursif (lihat: "Dua-
Pengumpulan Sampah Berperingkat" dalam perlobj). Anda kini memerlukan pelepasan yang jelas untuk memusnahkan a
glob terikat sendiri. Tingkah laku ini boleh diperbaiki pada masa akan datang.

Ikatan sendiri skalar dan perkara IO berfungsi.

ext/threads/t/libc
Jika ujian ini gagal, ini menunjukkan bahawa libc (pustaka C) anda tidak selamat untuk benang. ini
ujian tekanan tertentu menguji localtime() hubungi untuk mengetahui sama ada ia selamat untuk benang.
Lihat perlthrtut untuk maklumat lanjut.

Kegagalan of thread (gaya 5.005) ujian
Nota Bahawa menyokong khususnya Gaya 5.005 menjalar is tidak digunakan lagi, eksperimen and praktikalnya
tidak disokong. In 5.10, it is dijangka kepada be dikeluarkan. anda Sekiranya berhijrah Matlamat kod kepada
ithreads.

Ujian berikut diketahui gagal kerana masalah asas dalam penjalinan 5.005
pelaksanaan. Ini bukan kegagalan baharu--Perl 5.005_0x mempunyai pepijat yang sama, tetapi tidak
mempunyai ujian ini.

../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/Bahasa Inggeris.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

Kegagalan ini tidak mungkin diperbaiki kerana urutan gaya 5.005 dipertimbangkan
rosak secara asasnya. (Pada asasnya apa yang berlaku ialah benang yang bersaing boleh merosakkan
berkongsi keadaan global, satu contoh yang baik ialah keadaan enjin ekspresi biasa.)

Masa masalah
Ujian berikut mungkin gagal secara berselang-seli kerana masalah masa, contohnya jika
sistem banyak dimuatkan.

t/op/penggera.t
ext/Time/HiRes/HiRes.t
lib/Tanda Aras.t
lib/Memoize/t/expmod_t.t
lib/Memoize/t/speed.t

Sekiranya berlaku kegagalan, sila cuba jalankan secara manual, sebagai contoh

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

Terikat/Ajaib Tatasusunan/Hash Elements Do tidak Autovivify
Untuk tatasusunan biasa "$foo = \$bar[1]" akan menetapkan "undef" kepada $bar[1] (dengan mengandaikan bahawa ia
tidak wujud sebelum ini), tetapi untuk tatasusunan terikat/ajaib dan cincang autovivifikasi sedemikian
tidak berlaku kerana pada masa ini tiada cara untuk menangkap penciptaan rujukan. Sama
masalah menjejaskan penghirisan ke atas indeks/kunci yang tidak wujud bagi tatasusunan/cincang yang terikat/ajaib.

Unicode in pakej/kelas and subrutin nama tidak tidak bekerja
Seseorang boleh mempunyai Unicode dalam nama pengecam, tetapi bukan dalam nama pakej/kelas atau subrutin.
Walaupun beberapa fungsi terhad ke arah ini memang wujud pada Perl 5.8.0, itu lebih banyak lagi
tidak sengaja daripada yang direka; penggunaan Unicode untuk tujuan tersebut tidak disokong.

Salah satu sebab ketidaksempurnaan ini adalah ketidakupayaan yang wujud (pada masa ini): kerana kedua-duanya
nama pakej dan nama subrutin mungkin perlu dipetakan ke nama fail dan direktori, the
Keupayaan Unicode sistem fail menjadi penting-- dan malangnya tidak
jawapan mudah alih.

platform Khusus Masalah


AIX
· Jika menggunakan arahan buat asli AIX, bukannya hanya "buat" isu "buat semua". Dalam
beberapa setup yang dahulu telah diketahui palsu juga cuba menjalankan "make install".
Sebagai alternatif, anda mungkin mahu menggunakan GNU make.

· Dalam AIX 4.2, sambungan Perl yang menggunakan fungsi C++ yang menggunakan statik mungkin menghadapi masalah
kerana statik tidak dimulakan. Dalam keluaran AIX yang lebih baharu, ini telah
diselesaikan dengan menghubungkan Perl dengan perpustakaan libC_r, tetapi malangnya dalam AIX 4.2 perkara tersebut
perpustakaan mempunyai pepijat yang tidak jelas di mana pelbagai fungsi berkaitan dengan masa (seperti masa()
and gettimeofday()) mengembalikan nilai yang rosak, dan oleh itu dalam AIX 4.2 Perl tidak dipautkan
terhadap libC_r.

· vac 5.0.0.0 Boleh Menghasilkan Kod Buggy Untuk Perl

Pengkompil AIX C versi vac 5.0.0.0 mungkin menghasilkan kod buggy, mengakibatkan beberapa
ujian rawak gagal apabila dijalankan sebagai sebahagian daripada "buat ujian", tetapi apabila ujian gagal
dijalankan dengan tangan, mereka berjaya. Kami mencadangkan anda meningkatkan kepada sekurang-kurangnya vac versi 5.0.1.0, itu
telah diketahui menyusun Perl dengan betul. "lslpp -L|grep vac.C" akan memberitahu anda vac
versi. Lihat README.aix.

· Jika membina Perl berulir, anda mungkin mendapat amaran kompilasi daripada pp_sys.c:

"pp_sys.c", baris 4651.39: 1506-280 (W) Penetapan hujah fungsi antara jenis "unsigned char*" dan "const void*" tidak dibenarkan.

Ini tidak berbahaya; ia disebabkan oleh getnetbyaddr() and getnetbyaddr_r() mempunyai
jenis yang sedikit berbeza untuk hujah pertama mereka.

Alfa sistem bersama lama gccs gagal beberapa ujian
Jika anda melihat ujian op/pack, op/pat, op/regexp atau ext/Storable gagal dalam Linux/alpha atau
*BSD/Alpha, mungkin sudah tiba masanya untuk menaik taraf gcc anda. gccs sebelum 2.95.3 sudah pasti
tidak cukup baik dan gcc 3.1 mungkin lebih baik. (RedHat Linux/alpha dengan gcc 3.1
melaporkan tiada masalah, seperti juga Linux 2.4.18 dengan gcc 2.95.4.) (Dalam Tru64, lebih baik
untuk menggunakan pengkompil C yang dibundel.)

AmigaOS
Perl 5.8.0 tidak dibina dalam AmigaOS. Ia pecah pada satu ketika semasa ithreads berfungsi dan
kami tidak dapat mencari pakar Amiga untuk menyelesaikan masalah. Perl 5.6.1 masih berfungsi untuk
AmigaOS (seperti juga keluaran pembangunan 5.7.2).

BeOS
Ujian berikut gagal pada 5.8.0 Perl dalam BeOS Personal 5.03:

t/op/lfs........................GAGAL pada ujian 17
t/op/sihir...............GAGAL pada ujian 24
ext/Fcntl/t/syslfs..................GAGAL pada ujian 17
ext/Fail/Glob/t/asas...............GAGAL pada ujian 3
ext/POSIX/t/sigaction...............GAGAL pada ujian 13
ext/POSIX/t/waitpid.................GAGAL pada ujian 1

(Catatan: maklumat lanjut tersedia dalam README.beos sehingga sokongan untuk BeOS dialih keluar
Perl v5.18.0)

Cygwin "tak mampu kepada peta semula"
Contohnya semasa membina sambungan Tk untuk Cygwin, anda mungkin mendapat mesej ralat yang mengatakan
"tidak dapat dipetakan semula". Masalah ini diketahui dengan Cygwin, dan penyelesaiannya diperincikan
di sini: http://sources.redhat.com/ml/cygwin/2001-12/msg00894.html

Cygwin ndbm ujian gagal on LEMAK
Seseorang boleh membina tetapi tidak memasang (atau menguji binaan) NDBM_File pada sistem fail FAT.
Pemasangan (atau bina) pada NTFS berfungsi dengan baik. Jika seseorang mencuba ujian pada pemasangan FAT (atau
membina) kegagalan berikut dijangka:

../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 gagal dan ODBM_File hanya coredumps.

Jika anda berhasrat untuk menjalankan hanya pada FAT (atau jika menggunakan AnyDBM_File pada FAT), jalankan Configure dengan
Pilihan -Ui_ndbm dan -Ui_dbm untuk menghalang NDBM_File dan ODBM_File dibina.

DJGPP Kegagalan
t/op/stat............................GAGAL pada ujian 29
lib/File/Find/t/find.................GAGAL pada ujian 1
lib/Fail/Cari/t/taint................GAGAL pada ujian 1
lib/h2xs........................ GAGAL pada ujian 15
lib/Pod/t/eol........................GAGAL pada ujian 1
lib/Test/Harness/t/strap-analyse.....GAGAL pada ujian 8
lib/Test/Harness/t/test-harness......GAGAL pada ujian 23
lib/Test/Simple/t/exit...............GAGAL pada ujian 1

Kegagalan di atas diketahui pada 5.8.0 dengan binaan asli dengan nama fail yang panjang, tetapi ada
adalah beberapa lagi jika berjalan di bawah dosemu kerana batasan (dan mungkin pepijat) dosemu:

t/comp/cpp...............GAGAL pada ujian 3
t/op/inccode.........................(crash)

dan beberapa ujian lib/ExtUtils, dan beberapa ratus kegagalan Encode/t/Aliases.t yang berfungsi
baik dengan nama fail yang panjang. Jadi anda mungkin lebih suka binaan asli dan nama fail yang panjang.

FreeBSD dibina bersama ithreads coredumps membaca besar direktori
Ini ialah pepijat yang diketahui dalam FreeBSD 4.5 readdir_r(), ia telah ditetapkan dalam FreeBSD 4.6 (lihat
perlfreebsd (README.freebsd)).

FreeBSD Gagal tempat-tempat kejadian ujian 117 Untuk ISO 8859-15 Tempatan
Tempatan ISO 8859-15 mungkin gagal dalam ujian tempattempat 117 dalam FreeBSD. Ini disebabkan oleh
aksara \xFF (y dengan diaeresis) dan \xBE (Y dengan diaeresis) tidak berkelakuan dengan betul apabila
dipadankan secara tidak sensitif huruf besar-besaran. Rupa-rupanya masalah ini telah dibetulkan dalam tempoh terkini
Keluaran FreeBSD. ( http://www.freebsd.org/cgi/query-pr.cgi?pr=34308 )

IRIX gagal samb/Senarai/Util/t/shuffle.t or Hadam::MD5
IRIX dengan pengkompil MIPSpro 7.3.1.2m atau 7.3.1.3m mungkin gagal dalam ujian Senarai::Util
ext/List/Util/t/shuffle.t dengan membuang teras. Ini nampaknya ralat pengkompil sejak if
disusun dengan gcc tiada pembuangan teras berlaku, dan tiada kegagalan telah dilihat pada ujian tersebut pada
mana-mana platform lain.

Begitu juga, membina sambungan Digest::MD5 telah diketahui gagal dengan "*** Penamatan
kod 139 (bu21)".

Penyembuhannya adalah dengan menurunkan tahap pengoptimuman (Configure -Doptimize=-O2).

HP-UX lib/posix Subujian 9 Gagal Bila LP64-Dikonfigurasikan
Jika perl dikonfigurasikan dengan -Duse64bitall, hasil yang berjaya bagi subujian 10 daripada
lib/posix mungkin tiba sebelum keputusan yang berjaya bagi subujian 9, yang mengelirukan
menguji abah-abah sehingga menganggap subujian 9 gagal.

Linux bersama glibc 2.2.5 gagal t/op/int subujian #6 bersama -Duse64bitint
Ini ialah pepijat yang diketahui dalam glibc 2.2.5 dengan integer panjang yang panjang. (
http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=65612 )

Linux Dengan Sfio Gagal op/misc ujian 48
Tiada pembetulan yang diketahui.

Mac OS X
Sila ingat untuk menetapkan pembolehubah persekitaran anda LC_ALL kepada "C" (setenv LC_ALL C) sebelum ini
menjalankan "buat ujian" untuk mengelakkan banyak amaran tentang tempat rosak Mac OS X.

Ujian berikut diketahui gagal dalam Mac OS X 10.1.5 kerana buggy (lama)
pelaksanaan Berkeley DB yang disertakan dalam Mac OS X:

Statistik Ujian Gagal Wstat Jumlah Gagal Gagal Senarai Gagal
-------------------------------------------------- -----------------------
../ext/DB_File/t/db-btree.t 0 11 ?? ?? % ??
../ext/DB_File/t/db-recno.t 149 3 2.01% 61 63 65

Jika anda membina partition UFS, anda juga mungkin akan melihat t/op/stat.t subtest #9
gagal. Ini disebabkan oleh UFS Darwin tidak menyokong masa perubahan inode.

Juga subujian ext/POSIX/t/posix.t #10 gagal tetapi ia dilangkau buat masa ini kerana
kegagalan adalah kesalahan Apple, bukan Perl (isyarat yang disekat hilang).

Jika anda Konfigurasikan dengan ithreads, ext/threads/t/libc.t akan gagal. Sekali lagi, ini bukan milik Perl
kesalahan-- libc Mac OS X tidak selamat untuk benang (dalam ujian khusus ini, localtime()
panggilan didapati tidak selamat.)

Mac OS X dyld undefined simbol
Jika selepas memasang Perl 5.8.0 anda mendapat amaran tentang kehilangan simbol, contohnya

dyld: perl Simbol tidak ditentukan
_perl_sv_2pv
_perl_get_sv

anda mungkin mempunyai pemasangan pra-Perl-5.8.0 lama (atau sebahagian daripada satu) dalam /Library/Perl
(simbol yang tidak ditakrifkan pernah wujud dalam pra-5.8.0 Perls). Nampaknya atas sebab tertentu
"make install" tidak selalunya menimpa fail sepenuhnya dalam /Library/Perl. Awak boleh
alihkan perpustakaan kongsi Perl lama seperti ini:

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

dan kemudian keluarkan semula "make install". Ambil perhatian bahawa perkara di atas sudah tentu sangat mengganggu
untuk apa sahaja menggunakan /usr/local/bin/perl. Jika itu tidak membantu, anda mungkin perlu mencuba
mengalih keluar semua fail .bundle dari bawah /Library/Perl, dan sekali lagi "make install"-ing.

OS / 2 ujian Kegagalan
Ujian berikut diketahui gagal pada OS/2 (untuk kejelasan hanya kegagalan ditunjukkan,
bukan mesej ralat penuh):

../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 ujian 91, 129, and 130
Ujian op/sprintf 91, 129 dan 130 diketahui gagal pada beberapa platform. Contoh
sertakan mana-mana platform menggunakan sfio, dan NonStop-UX Compaq/Tandem.

Ujian 91 diketahui gagal pada QNX6 (nto), kerana "sprintf '%e',0" salah menghasilkan
0.000000e+0 dan bukannya 0.000000e+00.

Untuk ujian 129 dan 130, platform yang gagal tidak mematuhi garis ANSI C Standard:
19ff pada halaman 134 ANSI X3.159 1989, tepatnya. (Mereka menghasilkan sesuatu selain daripada "1"
dan "-1" apabila memformat 0.6 dan -0.6 menggunakan format printf "%.0f"; selalunya, mereka
menghasilkan "0" dan "-0".)

SCO
Ujian pasangan soket diketahui tidak berpuas hati dalam SCO 3.2v5.0.4:

ext/Socket/socketpair.t...............Ujian GAGAL 15-45

Solaris 2.5
Sekiranya anda masih menggunakan Solaris 2.5 (aka SunOS 5.5), anda mungkin mengalami kegagalan (yang
lambakan teras ujian) dalam lib/locale.t. Penawar yang dicadangkan ialah menaik taraf Solaris anda.

Solaris x86 Gagal Ujian Dengan -Duse64bitint
Ujian berikut diketahui gagal dalam Solaris x86 dengan Perl dikonfigurasikan untuk menggunakan 64 bit
integer:

ext/Data/Dumper/t/dumper.............GAGAL pada ujian 268
ext/Devel/Peek/Peek..................GAGAL pada ujian 7

SUPER-UX (NEC SX)
Ujian berikut diketahui gagal pada SUPER-UX:

op/64bitint...........................Ujian GAGAL 29-30, 32-33, 35-36
op/arith..............................GAGAL ujian 128-130
op/pack........................... GAGAL ujian 25-5625
op/pow................................
op/taint..............................# msgsnd failed
../ext/IO/lib/IO/t/io_poll............ GAGAL ujian 3-4
../ext/IPC/SysV/ipcsysv...............Ujian GAGAL 2, 5-6
../ext/IPC/SysV/t/msg.................Ujian GAGAL 2, 4-6
../ext/Socket/socketpair.............. GAGAL ujian 12
../lib/IPC/SysV....................... GAGAL ujian 2, 5-6
../lib/warnings.......................Ujian GAGAL 115-116, 118-119

Kegagalan op/pack ("Tidak boleh memampatkan nombor negatif pada baris op/pack.t 126") adalah serius
tetapi masih belum diselesaikan. Ia menunjukkan beberapa masalah dengan pengendalian tandatangan C
pengkompil, seperti juga kegagalan 64bitint, arith, dan pow. Kebanyakan selebihnya menunjukkan masalah
dengan SysV IPC.

Istilah::ReadKey tidak bekerja on Win32
Gunakan Term::ReadKey 2.20 atau lebih baru.

UNICOS/mk
· Semasa Konfigurasi, ujian

Meneka simbol yang ditakrifkan oleh pengkompil dan prapemproses C anda...

mungkin akan gagal dengan mesej ralat seperti

CC-20 cc: ERROR File = try.c, Line = 3
Pengecam "buruk" tidak ditentukan.

suis buruk yylook 79suis buruk yylook 79suis buruk yylook 79suis buruk yylook 79#ifdef A29K
^

CC-65 cc: ERROR File = try.c, Line = 3
Titik bertitik dijangka pada ketika ini.

Ini disebabkan oleh pepijat dalam utiliti awk UNICOS/mk. Anda boleh mengabaikan kesilapan itu,
tetapi ia menyebabkan sedikit masalah: anda tidak boleh mendapat manfaat sepenuhnya daripada utiliti h2ph
(lihat h2ph) yang boleh digunakan untuk menukar pengepala C kepada perpustakaan Perl, terutamanya digunakan untuk
dapat mengakses dari Perl pemalar yang ditakrifkan menggunakan prapemproses C, cpp. Disebabkan
ralat di atas, bahagian pengepala yang ditukar tidak akan kelihatan. Nasib baik, ini
hari keperluan untuk h2ph jarang berlaku.

· Jika membina Perl dengan benang penterjemah (ithreads), yang getgrent(), getgrnam(), dan
getgrgid() fungsi tidak dapat mengembalikan senarai ahli kumpulan kerana pepijat dalam
sokongan berbilang benang UNICOS/mk. Maksudnya ialah dalam konteks senarai
fungsi akan mengembalikan hanya tiga nilai, bukan empat.

SUA
Terdapat beberapa kegagalan ujian yang diketahui. (Catatan: maklumat yang berkaitan tersedia dalam
README.uts sehingga sokongan untuk UTS dialih keluar dalam Perl v5.18.0)

VOS (Strratus)
Apabila Perl dibina menggunakan proses binaan asli pada VOS Release 14.5.0 dan GNU C++/GNU
Alat 2.0.1, semua ujian percubaan sama ada lulus atau mengakibatkan kegagalan TODO (diabaikan).

VMS
Seharusnya tiada kegagalan ujian dilaporkan dengan konfigurasi lalai, walaupun terdapat a
bilangan ujian bertanda TODO yang menghala ke kawasan yang memerlukan penyahpepijatan dan/atau pemindahan selanjutnya
bekerja.

Win32
Dalam kotak berbilang CPU, terdapat beberapa masalah dengan penimbalan I/O: beberapa output mungkin muncul
dua kali.

XML::Parser tidak bekerja
Gunakan XML::Parser 2.31 atau lebih baru.

z / OS (OS/390)
z/OS mempunyai banyak kegagalan ujian tetapi keadaan sebenarnya jauh lebih baik daripada sebelumnya
dalam 5.6.0; cuma begitu banyak modul dan ujian baharu telah ditambah.

Statistik Ujian Gagal Wstat Jumlah Gagal Gagal Senarai Gagal
-------------------------------------------------- -------------------------
../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

Kegagalan dalam dumper.t dan downgrade.t adalah masalah dalam ujian, masalah dalam io_unix dan
sprintf adalah masalah dalam USS (soket UDP dan format printf). Tepuk, tr, dan lipat
kegagalan adalah masalah Perl tulen yang disebabkan oleh EBCDIC (dan dalam kes tepuk dan lipatan,
menggabungkannya dengan Unicode). Constant dan Embed mungkin merupakan masalah dalam ujian
(memandangkan mereka menguji keupayaan Perl untuk membina sambungan, dan itu nampaknya berfungsi
cukup baik.)

Unicode Khidmat Bantuan on EBCDIC Masih Jeragat
Walaupun kebanyakannya berfungsi, sokongan Unicode masih mempunyai masalah pada platform EBCDIC. satu
tempat yang dikenali itu ialah binaan ungkapan biasa "\p{}" dan "\P{}" untuk titik kod
kurang daripada 256: "pP" sedang menguji titik kod Unicode, tidak mengetahui tentang EBCDIC.

Seen In Perl 5.7 Tetapi Sudah Sekarang
"Time::Piece" (sebelum ini dikenali sebagai "Time::Object") telah dialih keluar kerana dirasakan bahawa ia
tidak mempunyai nilai yang mencukupi untuk menjadi modul teras. Ia masih merupakan modul yang berguna, walaupun,
dan boleh didapati daripada CPAN.

Perl 5.8 malangnya tidak dibina lagi pada AmigaOS; ini pecah secara tidak sengaja pada sesetengahnya
titik. Oleh kerana tidak banyak pembangun Amiga tersedia, kami tidak dapat mendapatkan ini
tetap dan diuji dalam masa untuk 5.8.0. Perl 5.6.1 masih berfungsi untuk AmigaOS (begitu juga dengan 5.7.2
keluaran pembangunan).

"PerlIO::Scalar" dan "PerlIO::Via" (huruf besar) telah dinamakan semula sebagai "PerlIO::scalar" dan
"PerlIO::via" (semua huruf kecil) sebelum 5.8.0. Rasional utama adalah untuk mempunyai semua teras
Lapisan PerlIO mempunyai semua nama huruf kecil. "Pemalam" dinamakan seperti biasa, sebagai contoh
"PerlIO::via::QuotedPrint".

"threads::shared::queue" dan "threads::shared::semaphore" telah dinamakan semula sebagai
"Thread::Queue" dan "Thread::Semaphore" sejurus sebelum 5.8.0. Rasional utama adalah untuk mempunyai
modul benang untuk mematuhi penamaan biasa, "Thread::" (the "threads" and "threads::shared"
diri mereka lebih seperti pragma, mereka mempengaruhi masa kompilasi, jadi mereka kekal huruf kecil).

laporan bugs


Jika anda mendapati perkara yang anda fikirkan sebagai pepijat, anda boleh menyemak artikel yang disiarkan baru-baru ini ke
kumpulan berita comp.lang.perl.misc dan pangkalan data pepijat perl di http://bugs.perl.org/ . Di sana
mungkin juga maklumat di http://www.perl.com/ , Halaman Utama Perl.

Jika anda percaya anda mempunyai pepijat yang tidak dilaporkan, sila jalankan perlbug program disertakan dengan
pembebasan anda. Pastikan anda mengurangkan pepijat anda kepada kes ujian yang kecil tetapi mencukupi. pepijat anda
laporan, bersama-sama dengan output "perl -V", akan dihantar ke [e-mel dilindungi] menjadi
dianalisis oleh pasukan porting Perl.

Gunakan perl58delta dalam talian menggunakan perkhidmatan onworks.net


Pelayan & Stesen Kerja Percuma

Muat turun apl Windows & Linux

Arahan Linux

Ad




×
Pengiklanan
❤ ️Beli, tempah atau beli di sini — tanpa kos, membantu memastikan perkhidmatan percuma.