İngilizceFransızcaİspanyolca

OnWorks favicon'u

perl5180delta - Bulutta Çevrimiçi

OnWorks ücretsiz barındırma sağlayıcısında perl5180delta'yı Ubuntu Online, Fedora Online, Windows çevrimiçi öykünücüsü veya MAC OS çevrimiçi öykünücüsü üzerinden çalıştırın

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen perl5180delta komutudur.

Program:

ADI


perl5180delta - perl v5.18.0 için yenilikler

TANIM


Bu belge, v5.16.0 sürümü ile v5.18.0 sürümü arasındaki farkları açıklar.

v5.14.0 gibi önceki bir sürümden yükseltme yapıyorsanız, önce perl5160delta'yı okuyun,
v5.14.0 ve v5.16.0 arasındaki farkları açıklar.

çekirdek Donanımlar


yeni mekanizma için deneysel Özellikler
Yeni eklenen deneysel özellikler artık bu büyüyü gerektirecek:

uyarı yok "deneysel::özellik_adı";
"özellik_adı" özelliğini kullanın; # önceki satır olmadan uyarır

"deneysel" olarak adlandırılan ve uyarıları içeren yeni bir uyarı kategorisi vardır.
deneysel özellikleri etkinleştirirken özellik pragma yayar.

Yeni eklenen deneysel özelliklere ayrıca aşağıdakilerden oluşan özel uyarı kimlikleri verilecektir.
"deneysel::" ve ardından özelliğin adı. (Plan bunu genişletmek
sonunda tüm uyarıların etkinleştirilmesine veya devre dışı bırakılmasına izin veren mekanizma
bireysel olarak ve sadece kategoriye göre değil.)

Diyerek

uyarı yok "deneysel::özellik_adı";

gelecekte değişebilecek herhangi bir kırılmanın veya kaldırılmasının sorumluluğunu üstleniyorsunuz.
özelliği neden olabilir.

Bazı özellikler ("~~" veya "benim $_" gibi) artık deneysel uyarılar verdiğinden ve
bu uyarıyı tanımayan perllerde de çalışan kodda bunları devre dışı bırakmak istiyorsanız
kategoriler, bunun gibi "if" pragmasını kullanmayı düşünün:

no if $] >= 5.018, uyarılar => "deneysel::özellik_adı";

Mevcut deneysel özellikler de bu uyarıları vermeye başlayabilir. Lütfen danışın
Hangi özelliklerin deneysel olarak kabul edildiği hakkında bilgi için perexperiment.

Esrar bakım
Perl v5.18.0'da karmaların uygulanmasında yapılan değişiklikler en görünür olanlardan biri olacaktır.
mevcut kodun davranışındaki değişiklikler.

Varsayılan olarak, aynı anahtarlara ve değerlere sahip iki farklı karma değişken artık şunları sağlayabilir:
içerikleri, daha önce aynı olduğu yerde farklı bir sırada.

Bu değişikliklerle karşılaştığınızda, onlardan kurtulmanın anahtarı, bunu kabul etmektir. karmaları
vardır sırasız koleksiyon ve buna göre hareket etmek.

Esrar randomization

Perl'in karma işlevi tarafından kullanılan tohum artık rastgele. Bunun anlamı, siparişin hangi
"keys()", "values()" ve "each()" gibi işlevlerden anahtarlar/değerler döndürülür.
koşudan koşuya farklılık gösterir.

Bu değişiklik, Perl'in karmalarını algoritmik karmaşıklığa karşı daha sağlam hale getirmek için tanıtıldı
saldırılar ve ayrıca karma sipariş bağımlılığı hatalarını ortaya çıkardığını keşfettik ve
izlemelerini kolaylaştırır.

Araç zinciri bakımcıları, bazı şeyleri test etmek için ek altyapıya yatırım yapmak isteyebilir
bunun gibi. Testleri arka arkaya birkaç kez çalıştırmak ve ardından sonuçları karşılaştırmak başarılı olacaktır.
kodda karma sipariş bağımlılıklarını tespit etmek daha kolay. Yazarlar şiddetle tavsiye edilmez
Perl'in karmalarının anahtar sırasını güvensiz izleyicilere gösterin.

Ayrıca, her karma kendi yineleme düzenine sahiptir, bu da onu daha da zorlaştırmalıdır.
mevcut karma tohumun ne olduğunu belirlemek için.

yeni esrar fonksiyonlar

Perl v5.18, birden çok karma işlevi için destek içerir ve varsayılanı değiştirdi (
ONE_AT_A_TIME_HARD), derlemede bir sembol tanımlayarak farklı bir algoritma seçebilirsiniz.
zaman. Güncel bir liste için bkz. INSTALL belge. Perl v5.18'den itibaren
yalnızca varsayılanın veya SIPHASH'ın kullanılmasını önerebilir. Diğerlerinin hepsinin olduğu biliniyor
güvenlik sorunları ve yalnızca araştırma amaçlıdır.

PERL_HASH_SEED çevre değişken şimdi alır a hex değer

"PERL_HASH_SEED" artık parametre olarak bir tamsayı kabul etmiyor; bunun yerine değer
"0xf5867c55039dc724" gibi bir onaltılık dizede kodlanmış ikili bir değer olması bekleniyor. Bu
aşabilecek keyfi uzunluklarda altyapı desteği karma tohumları yapmaktır.
bir tamsayı. (SipHash 16 baytlık bir tohum kullanır.)

PERL_PERTURB_KEYS çevre değişken katma

"PERL_PERTURB_KEYS" ortam değişkeni, kişinin
"anahtarlara" ve arkadaşlara uygulanan rastgele.

"PERL_PERTURB_KEYS" 0 olduğunda, Perl anahtar sırasını hiç rastgele seçmez. Şans
bir ekleme nedeniyle "anahtarlar" değişiklikleri önceki Perl'lerdekiyle aynı olacaktır, temelde yalnızca
kova boyutu değiştirildiğinde.

"PERL_PERTURB_KEYS" 1 olduğunda, Perl anahtarları tekrarlanamayan bir şekilde rastgele seçecektir. bu
"anahtarların" bir ekleme nedeniyle değişme olasılığı çok yüksek olacaktır. en güvenlisi bu
ve varsayılan mod.

"PERL_PERTURB_KEYS" 2 olduğunda, Perl anahtarları tekrarlanabilir bir şekilde rastgele seçecektir. tekrarlanan
aynı programın çalıştırılması her seferinde aynı çıktıyı üretmelidir.

"PERL_HASH_SEED", varsayılan olmayan bir "PERL_PERTURB_KEYS" ayarı anlamına gelir. Ayar
"PERL_HASH_SEED=0" (tam olarak bir 0) "PERL_PERTURB_KEYS=0" (karma anahtar rastgeleleştirme) anlamına gelir
engelli); "PERL_HASH_SEED" değerini başka bir değere ayarlamak "PERL_PERTURB_KEYS=2" anlamına gelir
(belirleyici ve tekrarlanabilir karma anahtar rastgeleleştirme). "PERL_PERTURB_KEYS" belirtilmesi
açıkça farklı bir düzeye bu davranışı geçersiz kılar.

Hash::Util::hash_seed() şimdi İade a dizi

Hash::Util::hash_seed() şimdi bir tamsayı yerine bir dize döndürür. Bu,
altyapı desteği, rastgele uzunluktaki hash tohumlarını, bir
tamsayı. (SipHash 16 baytlık bir tohum kullanır.)

Çıktı of PERL_HASH_SEED_DEBUG vardır olmuştur değişmiş

PERL_HASH_SEED_DEBUG ortam değişkeni artık perl'in hem hash fonksiyonunu göstermesini sağlıyor
perl ile inşa edildi, ve tohum, altıgen olarak, bu işlem için kullanılıyor. Bunu ayrıştıran kod
çıktı varsa, yeni biçime uyum sağlamak için değiştirilmelidir. Yeni örnek
biçimi:

$ PERL_HASH_SEED_DEBUG=1 ./Perl -e1
HASH_FUNCTION = MURMUR3 HASH_SEED = 0x1476bb9f

yükseltmek için Unicode 6.2
Perl artık Unicode 6.2'yi destekliyor. Unicode 6.1'deki değişikliklerin bir listesi şuradadır:
<http://www.unicode.org/versions/Unicode6.2.0>.

Karakter isim takma adları eğer yalnızca sığınmacı statüleri sona erdirilmemişse, kalıcı oturma iznine şimdi dahil Latin olmayan1 aralığı karakterler
"\N{...}" içinde kullanılacak karakterler için kendi adlarınızı tanımlamanız mümkündür,
"charnames::vianame()", vb. Bu adlar artık aşağıdaki karakterlerden oluşabilir.
tüm Unicode aralığı. Bu, adların yalnızca ana dilinizde olmasına izin verir, yalnızca
İngilizce. Kullanılabilecek karakterler için belirli kısıtlamalar geçerlidir (tanımlayamazsınız
örneğin, içinde noktalama işareti olan bir isim). Karakter adlarında "ÖZEL TAKIMLAR" bölümüne bakın.

yeni DTrace sondalar
Aşağıdaki yeni DTrace probları eklendi:

· "açık giriş"

· "yükleme dosyası"

· "yüklenen dosya"

"${^SON_FH}"
Bu yeni değişken, en son okunan kütük tanıtıcısına erişim sağlar. bu
$ tarafından kullanılan tanıtıcı. ve argümanlar olmadan "tel" ve "eof" ile.

Düzenli ifade set Operasyon
Bu bir deneysel birleşim, kesişim vb. ile eşleşmeye izin veren özellik,
Unicode::Regex::Set'e benzer kod noktaları kümesi. Uzatmak için de kullanılabilir
[parantezli] karakter sınıflarına "/x" işleme ve kullanıcı tanımlı karakterin yerine
özellikler, onlardan daha karmaşık ifadelere izin verir. Bkz. "Genişletilmiş Parantez
Perlrecharclass'ta Karakter Sınıfları".

sözlük altyordamlar
Bu yeni özellik hala değerlendiriliyor deneysel. Etkinleştirmek için:

5.018'ı kullanın;
uyarı yok "deneysel::lexical_subs";
"lexical_subs" özelliğini kullanın;

Artık "sub foo durumu", "my sub foo" ve "bizim sub foo" ile alt rutinler bildirebilirsiniz.
("durum alt" olarak yazmadığınız sürece "durum" özelliğinin etkinleştirilmesi gerekir.
"ÇEKİRDEK::alt foo durumu".)

"durum alt", bildirildiği sözlüksel kapsamda görünen bir alt yordam yaratır.
Alt program, dış aboneye yapılan çağrılar arasında paylaşılır.

"benim sub", çevreleyen blok her oluşturulduğunda oluşturulan sözlüksel bir alt yordam bildirir.
girdi. "alt durum" genellikle "alt durumum" dan biraz daha hızlıdır.

"your sub", aynı adı taşıyan paket alt yordamına sözcüksel bir takma ad bildirir.

Daha fazla bilgi için, perlsub'da "Sözcüksel Altyordamlar"a bakın.

bilgisayarlı Etiketler
Döngü "sonraki", "son" ve "yinele" kontrolleri ve özel "döküm" operatörü artık izin veriyor
çalışma zamanında etiketleri hesaplamak için kullanılacak rastgele ifadeler. Daha önce, herhangi bir argüman
bu bir sabit değildi boş dize olarak kabul edildi.

Daha Fazla ÇEKİRDEK:: subs
CORE:: ad alanına alt yordamlar olarak birkaç yerleşik işlev daha eklendi -
yani, özel ayrıştırıcılar olmadan uygulanabilen geçersiz kılınamayan anahtar kelimeler:
"tanımlı", "sil", "var", "glob", "pos", "prototip", "skaler", "bölünmüş", "çalışma" ve
"undef".

Bunlardan bazılarının prototipleri olduğundan, "prototype('CORE::...')" değiştirilmeyecek şekilde değiştirildi.
geçersiz kılınabilir ve geçersiz kılınamaz anahtar kelimeler arasındaki ayrım. Bu yapmak
"prototype('CORE::pos')", "prototype(&CORE::pos)" ile tutarlı.

"öldürmek" ile negatif işaret isimleri
"kill" her zaman negatif bir sinyal numarasına izin verdi, bunun yerine süreç grubunu öldürür
tek bir sürecin. Ayrıca sinyal adlarına izin verdi. Ama davranmadı
tutarlı bir şekilde, çünkü negatif sinyal isimleri 0 olarak kabul edildi. Şimdi negatif sinyal isimleri
"-INT" gibi desteklenir ve -2 [Perl #112990] ile aynı şekilde ele alınır.

Güvenlik


Yerimizi Yani: esrar bakım
Hash revizyonundaki bazı değişiklikler güvenliği artırmak için yapıldı. lütfen bunu okuyun
Bölüm.

"Depolanabilir" güvenlik uyarı in belgeleme
"Storable" belgeleri artık okuyucuları tehlike konusunda uyaran bir bölüm içermektedir.
Güvenilmeyen kaynaklardan Saklanabilir belgeleri kabul etme. Kısa versiyonu bu
belirli veri türlerinin seri durumdan çıkarılması, modüllerin yüklenmesine ve diğer kod yürütülmesine neden olabilir.
Bu, belgelenmiş davranış ve aranan davranıştır, ancak bu, aşağıdakiler için bir saldırı vektörü açar:
kötü niyetli varlıklar

"Yerel::Maketext" izin kod enjeksiyon üzerinden a kötü niyetli şablon
Kullanıcılar Locale::Maketext'e bir çeviri dizesi sağlayabilirse, bu şu şekilde kullanılabilir:
mevcut süreçte mevcut olan keyfi Perl alt programlarını çağırır.

Bu düzeltildi, ancak tarafından sağlanan herhangi bir yöntemi çağırmak hala mümkündür.
"Locale::Maketext"in kendisi veya kullandığınız bir alt sınıf. Sırasıyla bu yöntemlerden biri
Perl çekirdeğinin "sprintf" alt yordamını çağırır.

Özetle, kullanıcıların çeviri dizelerini denetlemeden sağlamalarına izin vermek kötü bir şeydir.
fikir.

Bu güvenlik açığı CVE-2012-6329'da belgelenmiştir.

Önlemek çağrı meme seti ile a negatif saymak
Saldırganın perl'in "x" dizgisinin sayısını belirtmesine izin veren kötü yazılmış perl kodu
tekrar operatörü zaten bir bellek tükenmesi hizmet reddi saldırısına neden olabilir. bir kusur
v5.15.5'ten önceki perl sürümleri, bunu bir yığın arabellek taşmasına dönüştürebilir; ile birlikte
glibc'nin 2.16'dan önceki sürümleri, muhtemelen isteğe bağlı kodun yürütülmesine izin verir.

Bu işleme yönelik kusura CVE-2012-5195 tanımlayıcısı atanmıştır ve
Tim Brown tarafından araştırılmıştır.

Uyumsuz değişiklikler


Yerimizi Yani: esrar bakım
Karma elden geçirmedeki bazı değişiklikler önceki sürümlerle tam olarak uyumlu değil
perl'den. Lütfen o bölümü okuyun.

An bilinmeyen karakter isim in "\N{...}" is şimdi a sözdizimi hata
Daha önce uyardı ve Unicode DEĞİŞTİRME KARAKTERİ değiştirildi. Şimdi Unicode
bu durumun bir sözdizimi hatası olmasını önerir. Ayrıca, önceki davranış bazı
kafa karıştırıcı uyarılar ve davranışlar ve DEĞİŞTİRME KARAKTERİNİN başka bir kullanımı olmadığı için
Bilinmeyen bir karakterin yerine geçmektense, bu sorunu olan herhangi bir kod hatalıdır.

eskiden önerilmiyor karakterler in "\N{}" karakter isim takma adları vardır şimdi hataları.
v5.12.0'dan beri, kullanıcı tanımlı "\N{...}" içinde belirli karakterlerin kullanılması kullanımdan kaldırılmıştır.
karakter isimleri. Bunlar artık bir sözdizimi hatasına neden oluyor. Örneğin, artık bir hata
isme bir rakamla başlayın, örneğin

benim $unraftable = "\N{4F}"; # Sözdizimi hatası!

veya ismin herhangi bir yerinde virgül olması. Karakter adlarında "ÖZEL TAKIMLAR" bölümüne bakın.

"\N{ZİL}" şimdi ifade eder için U +, 1F514 yerine of + 0007 U
Unicode 6.0, geleneksel olarak olduğundan farklı bir kod noktası için "BELL" adını yeniden kullandı
anlamına gelen. Perl v5.14'ten bu yana, bu adın kullanımı hala U+0007'ye atıfta bulunuyor, ancak
kullanımdan kaldırma uyarısı. Şimdi, "BELL", U+1F514'ü ifade eder ve U+0007'nin adı "UYARI"dır.
Karakter adlarındaki tüm işlevler uygun şekilde güncellendi.

yeni Kısıtlamalar in Çok Karakterli Büyük/küçük harfe duyarsız Uygun in Düzenli ifade parantezli
Karakter Sınıflar
Unicode, düzenli ifadeler için önceki tavsiyelerini geri çekti.
tek bir karakterin birden çok karakterle eşleşebileceği durumları otomatik olarak ele alın-
duyarsızca, örneğin, LATIN KÜÇÜK HARF SHARP S harfi ve "ss" dizisi.
Bunun nedeni, bunu her durumda doğru şekilde yapmanın pratik olmamasıdır.
koşullar. Perl bunu elinden geldiğince yapmaya çalıştığı için, yapmaya devam edecek.
böyle. (Kapatmak için bir seçenek düşünüyoruz.) Ancak yeni bir kısıtlama getiriliyor.
[parantezli] karakter sınıflarında meydana geldiklerinde bu tür eşleşmelere eklenir. İnsanlar
"/[\0-\xff]/i" gibi şeyler belirtmek ve ikisiyle eşleşmesine şaşırmak
karakter dizisi "ss" (LATIN KÜÇÜK HARF SHARP S bu aralıkta bulunduğundan). Bu
davranış, aralık yerine bir özellik kullanmakla da tutarsızdır:
"\p{Blok=Latin1}" ayrıca LATİN KÜÇÜK HARF SHARP S'yi de içerir, ancak "/[\p{Blok=Latin1}]/i"
"ss" ile eşleşmiyor. Yeni kural, çok karakterli bir durum olması için-
parantez içine alınmış bir karakter sınıfı içinde duyarsız eşleşme, karakter açıkça belirtilmelidir
listelenir ve bir aralığın bitiş noktası olarak değil. Bu, İlkesine daha yakından uyar.
En Az Şaşkınlık. perlrecharclass'ta "Braketlenmiş Karakter Sınıfları"na bakın. Bir
Şimdi bu değişikliğin bir parçası olarak düzeltilen bug [Perl #89774], önceki davranışın
tam olarak çalışıyor.

açık kurallar için değişken isimleri ve tanımlayıcıları
Bir gözden kaçırma nedeniyle v5.16'daki tek karakterli değişken adları tamamen
sınırsız. Bu, birkaç çeşit deliliğe kapı açtı. v5.18'den itibaren, bunlar artık
eşleşen karakterleri kabul etmenin yanı sıra diğer tanımlayıcıların kurallarına uyun.
"\p{POSIX_Punct}" özelliği.

Parantez kullanılarak belirtilen tanımlayıcıların ayrıştırılmasında artık herhangi bir fark yoktur.
parantez olmadan karşı. Örneğin, perl "${foo:bar}" (tek bir
kolon) ancak $foo:bar değil. Artık her ikisi de tek bir kod yolu tarafından işlendiğine göre, ikisi de
aynı şekilde muamele edilir: ikisi de yasaktır. Bu değişikliğin aralığı ile ilgili olduğunu unutmayın.
izin verilen değişmez tanımlayıcılar, diğer ifadeler değil.

Dikey sekmeler vardır şimdi boşluk
"\s"nin neden dikey sekme olan "\cK" ile eşleşmediğini kimse hatırlayamadı. Şimdi öyle. verilen
bu karakterin aşırı nadir olması, çok az kırılması bekleniyor. Bu dedi, işte
ne demek:

Normal ifadedeki "\s" artık her durumda dikey bir sekmeyle eşleşiyor.

"/x" değiştiricisi kullanıldığında, bir normal ifade değişmezindeki değişmez dikey sekmeler yoksayılır.

Önde gelen dikey sekmeler, tek başına veya diğer boşluklarla karıştırıldığında artık yok sayılır.
bir dizeyi sayı olarak yorumlama. Örneğin:

$dec = " \cK \t 123";
$hex = " \cK \t 0xF";

0 + $ara; # uyarı ile 0 idi, şimdi 123
int $aralık deyin; # 0 idi, şimdi 123
ekim $hex; # 0, şimdi 15

"/(?{})/" ve "/(?{})/" var olmuştur ağır şekilde yeniden işlenmiş
Bu özelliğin uygulanması neredeyse tamamen yeniden yazılmıştır. Her ne kadar onun
ana amaç, özellikle sözlük kapsamı ile ilgili hataları, bazı davranışları düzeltmektir.
değişkenler değişmiş olacaktır. Bu, "Seçilen Hata Düzeltmeleri" bölümünde daha ayrıntılı olarak açıklanmıştır.
Bölüm.

sıkı ayrıştırma of ikame değiştirme
Ayrıştırıcının "s///e" ayrıştırma şeklini şu şekilde kötüye kullanmak artık mümkün değildir:

%_=(_,"Bir başka ");
$_="Perl korsanı,\n";
s//_}->{_/e;yazdır

"verilen" şimdi takma adları the global $_
Örtük bir sözcüksel $_ atamak yerine, "verilen" artık global $_'ı bir takma ad yapar
argümanı için, tıpkı "foreach" gibi. Ancak, varsa yine de sözcüksel $_ kullanır.
$_ kapsamında (yine, "foreach" gibi) [Perl #114020].

The akıllı maç aile of Özellikler vardır şimdi deneysel
v5.10.0'da eklenen ve v5.10.1'de önemli ölçüde revize edilen akıllı eşleşme, düzenli olarak
şikayet noktası. Yararlı olduğu birçok yol olmasına rağmen,
ayrıca Perl'in hem kullanıcıları hem de uygulayıcıları için sorunlu ve kafa karıştırıcı olduğu kanıtlanmıştır. Orada var
Sorunun en iyi nasıl çözüleceğine dair bir dizi öneri oldu. Açıktır ki
smartmatch, neredeyse kesinlikle gelecekte değişecek veya ortadan kalkacak. güvenmek
mevcut davranışı üzerinde tavsiye edilmez.

Ayrıştırıcı "~~", "verilen" veya "ne zaman" ifadesini gördüğünde uyarılar verilecektir. devre dışı bırakmak için
Bu uyarılar, bu satırı uygun kapsama ekleyebilirsiniz:

no if $] >= 5.018, uyarılar => "deneysel::smartmatch";

Yine de, davranışı tekrar değiştirebilecekleri için bu özelliklerin kullanımını değiştirmeyi düşünün.
kararlı hale gelmeden önce.

sözlük $_ is şimdi deneysel
Perl v5.10'da tanıtıldığından beri, belirgin bir sorun olmadan çok fazla kafa karışıklığına neden oldu.
çözüm:

· Çeşitli modüller (örneğin, List::Util) global $_'ı kullanmak için geri arama rutinlerini bekler.
"List::Util 'first'; my $_; first { $_ == 1 } @list'i kullan", olduğu gibi çalışmıyor
bekliyoruz.

· Aynı dosyada daha önceki bir "my $_" bildirimi, kafa karıştırıcı kapatma uyarılarına neden olabilir.

· "_" alt rutin prototipi karakteri, çağrılan alt rutinlerin programlarınıza erişmesine izin verir.
sözcüksel $_, yani sonuçta gerçekten özel değil.

· Bununla birlikte, "(@)" prototipi ve yöntemleri olan alt programlar,
XS ile yazılmamışlarsa, arayanın sözcüksel $_'ı.

· Ancak XS rutinleri bile, çağrıda değil, bildirilen bir sözcüksel $_ öğesine erişemez.
alt yordam, ancak bir dış kapsamda, bu alt yordam $_'dan bahsetmediyse veya
varsayılan olarak $_ olan operatörleri kullanın.

Sözcüksel $_'ın rehabilite edilebileceğini umuyoruz, ancak bu onun yapısında değişikliklere neden olabilir.
davranış. Lütfen kararlı hale gelene kadar dikkatli kullanın.

okuma satırı() ile "$/ = \N" şimdi okur N karakterler, değil N bayt
Önceden, "kodlama" gibi G/Ç katmanlarına sahip bir akıştan okurken, okuma satırı()
"<>" operatörü olarak da bilinen işlev, N en üstteki baytlar
katman. [Perl #79960]

Şimdi, N bunun yerine karakterler okunur.

Fazladan katman içermeyen akışlardan okurken davranışta herhangi bir değişiklik olmaz, çünkü
baytlar tam olarak karakterlerle eşlenir.

Geçersiz kılındı "küre" is şimdi geçti bir tartışma
"glob" geçersiz kılmaları, önceden tanımlanmamış sihirli bir belgelenmemiş ikinci argümandan geçirilirdi.
arayan. CPAN'daki hiçbir şey bunu kullanmıyordu ve bir hata düzeltmesinin önüne geçti, bu yüzden
kaldırıldı. Arayanı gerçekten tanımlamanız gerekiyorsa, bkz. CPAN'da Devel::Callsite.

İşte dok ayrıştırma
Alıntı benzeri bir operatörün içindeki buradaki belgenin gövdesi artık her zaman satırda başlar
"< den sonra
içeren alıntı benzeri operatör, ancak bu yalnızca bazen böyleydi [Perl #114040].

alfanümerik operatörler , eğer mülteci statüleri sona erdirilmemişse Amerika'ya geldikten bir yıl sonra şimdi be ayrılmış itibaren the kapanış sınırlayıcı of düzenli ifade
Artık şöyle bir şey yazamazsınız:

m/a/ve 1

Bunun yerine yazmalısın

m/a/ ve 1

operatörü normalin kapanış sınırlayıcısından ayıran boşluk ile
ifade. Boşluk olmaması, Perl'den bu yana bir kullanımdan kaldırma uyarısına neden oldu
v5.14.0.

q(...) yapabilmek yok hayır uzun be Kullanılmış as parantez
"qw" listeleri, ayrıştırıcıyı her zaman çevrelerinde olduklarını düşünmeleri için kandırırdı.
parantez. Bu, "foreach $x qw(abc)" gibi bazı şaşırtıcı yapılara izin verdi.
{...}", gerçekten "foreach $x (qw(abc)) {...}" şeklinde yazılması gerekir.
bazen lexer'ı yanlış duruma sokarlar, bu yüzden tam olarak çalışmazlar ve benzerleri
İzin verilmesi beklenebilecek "foreach qw(abc) {...}" hiç çalışmadı.

"qw"nin bu yan etkisi artık ortadan kalkmıştır. Perl'den beri kullanımdan kaldırıldı
v5.13.11. Artık dilbilgisinin çağırdığı her yerde gerçek parantez kullanmak gerekiyor.
onlar için.

Etkileşim of sözlük ve varsayılan uyarılar
Sözcüksel ise tüm varsayılan uyarıları devre dışı bırakmak için önce kullanılan herhangi bir sözcük uyarısını açma
uyarılar zaten etkinleştirilmedi:

$*; # kullanımdan kaldırma uyarısı
"void" uyarılarını kullanın;
$#; # geçersiz uyarı; kullanımdan kaldırma uyarısı yok

Şimdi, "hata ayıklama", "kullanımdan kaldırıldı", "glob", "yerinde" ve "malloc" uyarı kategorileri
sözcük uyarılarını açarken açık bırakılır ("uyarı yok" ile kapatılmadıkça,
ders).

Bu, önceden uyarı içermeyen kodda kullanımdan kaldırma uyarılarının oluşmasına neden olabilir.

Bunlar yalnızca varsayılan uyarılardan oluşan kategorilerdir. Varsayılan uyarılar
diğer kategoriler, henüz "uyarıları kullan" kategorisi" tarafından devre dışı bırakılmıştır, çünkü henüz
bireysel uyarıları kontrol etmek için altyapı.

"durum alt" ve "bizim alt"
Tarihin bir kazası nedeniyle, "devlet alt" ve "bizim alt", düz bir "alt" ile eşdeğerdi,
böylece "sub { ... }" ile isimsiz bir abone bile oluşturulabilir. bunlar artık
"lexical_subs" özelliği dışında izin verilmez. "lexical_subs" özelliği altında
perlsub'daki "Sözcüksel Altyordamlar" bölümünde açıklanan yeni anlamlara sahiptir.

Tanımlı değerlerimiz saklı in çevre vardır zorunlu için bayt dizeleri
Bir ortam değişkeninde depolanan bir değer, tarafından devralındığında her zaman dizgelendirilmiştir.
çocuk süreçleri.

Bu sürümde, %ENV'ye atanırken değerler hemen dizilir ve dönüştürülür
yalnızca bir bayt dizesi olmak.

İlk olarak, yalnızca bir dize olmaya zorlanır. O zaman dize utf8 ve eşdeğeriyse
"utf8::downgrade()" çalışmasının sonucu kullanılır; aksi takdirde, eşdeğeri
"utf8::encode()" kullanılır ve geniş karakterler ("Diagnostics") hakkında bir uyarı verilir.

"gerekmek" ölür için okunamayan Dosyaları
"Require" okunamayan bir dosyayla karşılaştığında, artık ölür. Dosyayı görmezden gelirdi ve
@INC [Perl #113422] içindeki dizinleri aramaya devam edin.

"gv_fetchmeth_*" ve Kişiye Özel
Adı ile biten bir paketi işlemek için kullanılan çeşitli "gv_fetchmeth_*" XS işlevleri
"::SÜPER" özel olarak. "Foo::SUPER" paketindeki bir yöntem araması, bir
"Foo" paketinde "SÜPER" yöntem araması. Bu artık geçerli değil. "SÜPER" yapmak için
arama, "Foo" zulasını ve "GV_SUPER" bayrağını iletin.

"bölünmüş"ler ilk tartışma is Daha sürekli yorumlanır
v5.17'de daha önce yapılan bazı değişikliklerden sonra, "split" davranışı basitleştirildi:
PATTERN bağımsız değişkeni, bir boşluk içeren bir dize olarak değerlendirilir, bir
kelimesi kelimesine bir boşluk içeren dize bir zamanlar oldu.

kullanımdan kaldırmalar


modül taşınma
Aşağıdaki modüller gelecekteki bir sürümde çekirdek dağıtımdan kaldırılacaktır ve
o zaman CPAN'dan yüklenmesi gerekecek. gerektiren CPAN dağıtımları
bu modüllerin bunları önkoşul olarak listelemesi gerekecektir.

Bu modüllerin temel sürümleri artık uyarı vermek için "kullanımdan kaldırılmış" kategori uyarıları yayınlayacak.
sen bu gerçeğe Bu kullanımdan kaldırma uyarılarını susturmak için söz konusu modülleri kurun
CPAN'dan.

Bunların (nadir istisnalar dışında) size teşvik edilen iyi modüller olduğunu unutmayın.
kullanmaya devam edin. Çekirdekten ayrılmaları, öncelikle, onların gerekliliğine bağlıdır.
genellikle endişelerle değil, tamamen işlevsel, CPAN özellikli bir Perl kurulumunu önyükleme
onların tasarımı üzerinde.

kodlama
Bu pragmanın kullanımı artık şiddetle tavsiye edilmemektedir. kodlamasını birleştirir
G/Ç verilerinin kodlandığı kaynak metin, kaynaktaki kaçış dizilerini yeniden yorumlar
text (şüpheli bir seçim) ve UTF-8 hatasını tüm çalışma zamanı işlemlerine tanıtır.
karakter dizileri. Tasarlandığı gibi ve onarılamayacak şekilde bozuldu.

Kaynak metinde ASCII olmayan değişmez karakterleri kullanmak için lütfen utf8'e bakın. İçin
metinsel G/Ç verileriyle ilgili olarak, lütfen Kodla ve aç bölümüne bakın.

Arşiv::Çıkart
B::Tiftik
B::Lint::Hata Ayıklama
CPANPLUS ve birlikte verilen tüm "CPANPLUS::*" modülleri
Devel::İç Paket
Günlük::Mesaj
Günlük::Mesaj::Yapılandırma
Günlük::Mesaj::İşleyiciler
Günlük::Mesaj::Öğe
Günlük::Mesaj::Basit
Modül::Takılabilir
Modül::Takılabilir::Object
Nesne::Erişimci
Bölme::LaTeX
Terim::Kullanıcı Arayüzü
Terim::UI::Geçmiş

Onaylanmamış kamu hizmetleri
Aşağıdaki yardımcı programlar, gelecekteki bir sürümde çekirdek dağıtımdan kaldırılacaktır.
ilişkili modülleri kullanımdan kaldırılmıştır. ile kullanılabilir durumda kalacaklardır.
uygulanabilir CPAN dağıtımı.

cpanp
"cpanp-run-perl"
cpan2dist
Bu öğeler "CPANPLUS" dağıtımının bir parçasıdır.

pod2lateks
Bu öğe "Pod::LaTeX" dağıtımının bir parçasıdır.

PL_sv_objcount
Bu yorumlayıcı-genel değişken, dizindeki toplam Perl nesnesi sayısını izlemek için kullanılır.
Tercüman. Artık korunmuyor ve Perl v5.20'de tamamen kaldırılacak.

Beş ek karakterler meli be kaçtı in desen ile "/ x"
Normal bir ifade deseni "/x" ile derlendiğinde, Perl 6 karakteri beyaz olarak değerlendirir.
BOŞLUK ve SEKME gibi yoksayılacak boşluk. Ancak Unicode, 11 karakterin olmasını önerir.
şekilde tedavi edilir. Gelecekteki bir Perl versiyonunda buna uyacağız. Bu arada, kullanın
eksik karakterlerden herhangi biri, kapatılmadığı sürece bir kullanımdan kaldırma uyarısı verir. bu
beş karakter şunlardır:

U+0085 SONRAKİ SATIR
U+200E SOLDAN SAĞDAN İŞARET
U+200F SAĞDAN SOL İŞARET
U+2028 HAT AYIRICI
U+2029 PARAGRAF AYIRICI

Kullanıcı tanımlı karakter isimleri ile şaşırtıcı boşluk
Arka arkaya veya birden çok boşluk içeren kullanıcı tanımlı bir karakter adı büyük olasılıkla bir yazım hatasıdır.
Bu, tanımlandığında, kullanımlarının olacağı varsayımıyla artık bir uyarı oluşturur.
fazla boşluk içermesi olası değildir.

Çeşitli XS çağrılabilir fonksiyonlar vardır şimdi önerilmiyor
Karakterleri sınıflandırmak için kullanılan tüm işlevler, gelecekteki bir sürümden kaldırılacaktır.
Perl ve kullanılmamalıdır. Katılan C derleyicileriyle (örneğin, gcc), herhangi bir
Bunlardan herhangi birini kullanan dosya bir uyarı üretecektir. Bunlar halka yönelik değildi
kullanmak; çoğu için eşdeğer, daha hızlı makrolar var.

Perlapi'deki "Karakter sınıfları"na bakın. Tam liste:

"is_uni_alnum", "is_uni_alnumc", "is_uni_alnumc_lc", "is_uni_alnum_lc", "is_uni_alpha",
"is_uni_alpha_lc", "is_uni_ascii", "is_uni_ascii_lc", "is_uni_blank", "is_uni_blank_lc",
"is_uni_cntrl", "is_uni_cntrl_lc", "is_uni_digit", "is_uni_digit_lc", "is_uni_graph",
"is_uni_graph_lc", "is_uni_idfirst", "is_uni_idfirst_lc", "is_uni_lower",
"is_uni_lower_lc", "is_uni_print", "is_uni_print_lc", "is_uni_punct", "is_uni_punct_lc",
"is_uni_space", "is_uni_space_lc", "is_uni_upper", "is_uni_upper_lc", "is_uni_xdigit",
"is_uni_xdigit_lc", "is_utf8_alnum", "is_utf8_alnumc", "is_utf8_alpha", "is_utf8_ascii",
"is_utf8_blank", "is_utf8_char", "is_utf8_cntrl", "is_utf8_digit", "is_utf8_graph",
"is_utf8_idcont", "is_utf8_idfirst", "is_utf8_lower", "is_utf8_mark",
"is_utf8_perl_space", "is_utf8_perl_word", "is_utf8_posix_digit", "is_utf8_print",
"is_utf8_punct", "is_utf8_space", "is_utf8_upper", "is_utf8_xdigit", "is_utf8_xidcont",
"is_utf8_xidfirst".

Ayrıca, hiçbir zaman düzgün çalışmayan bu üç işlev kullanımdan kaldırılmıştır:
"to_uni_lower_lc", "to_uni_title_lc" ve "to_uni_upper_lc".

Belli nadir kullanım of ters eğik çizgiler içinde normal ifadeler vardır şimdi önerilmiyor
Perl'in düzenli olarak metakarakter olarak tanıdığı üç çift karakter vardır.
ifade kalıpları: "{}", "[]" ve "()". Bunlar, kalıpları sınırlamak için de kullanılabilir,
de olduğu gibi:

m {foo}
s(foo)(çubuk)

Meta karakterler oldukları için düzenli ifade kalıpları için özel anlamları vardır.
ve bu özel anlamı normal yollarla kapatamayacağınız ortaya çıktı.
ile sınırlandırılmış bir desen içinde eşleştirilmiş olarak kullanırsanız, onlardan önce ters eğik çizgi ile
onlara. örneğin,

m{foo\{1,3\}}

ters eğik çizgiler davranışı değiştirmez ve bu, "fo" ve ardından bir ile eşleşir
"o"nun üç tekrarı daha.

Metakarakter olarak yorumlandıkları bu tür kullanımlar son derece nadirdir; Biz
örneğin, tüm CPAN'da hiç olmadığını düşünün. Bu nedenle, bu amortismanın etkilemesi gerekir
çok az kod Bununla birlikte, bu tür herhangi bir kodun değişmesi gerektiğine dair bildirimde bulunur;
sırayla, gelecekteki Perl sürümlerinde davranışı değiştirmemize izin verecek, böylece
ters eğik çizgilerin bir etkisi vardır ve var olan herhangi bir şeyi sessizce kırdığımızdan korkmadan
kodu.

Bölme the token kazanabilirsiniz. "(?" ve "(*" in düzenli ifade
"(" ve "?" boşlukla veya boşlukla ayrılmışsa artık bir kullanımdan kaldırma uyarısı verilir.
"(?...)" normal ifade yapılarındaki yorumlar. Benzer şekilde, eğer "(" ve "*" ise
"(*VERB...)" yapılarında ayrılır.

PerliO Öncesi IO uygulamaları
Teoride, şu anda PerlIO olmadan Perl oluşturabilirsiniz. Bunun yerine, bir sarmalayıcı kullanırsınız
stdio veya sfio civarında. Pratikte, bu pek kullanışlı değil. İyi test edilmedi ve
IO katmanları veya (böylece) Unicode için herhangi bir destek olmadan, pek bir Perl değildir. Bina
PerlIO olmadan, büyük olasılıkla Perl'in sonraki sürümünde kaldırılacaktır.

PerlIO, stdio kullanımı isteniyorsa bir "stdio" katmanını destekler. Benzer şekilde bir sfio katmanı olabilir
gerekirse gelecekte üretilebilir.

gelecek kullanımdan kaldırmalar


· Destek altyapısı olmayan platformlar

Hem Windows CE hem de z/OS geçmişten beri yeterince bakım görmemiştir ve şu anda
ne başarılı bir şekilde inşa ediyor ne de düzenli olarak duman testine tabi tutuluyor. çabalar sürüyor
bu durumu değiştirmek için, ancak platformların olduğu kabul edilmemelidir.
güvenlidir ve desteklenir. Parçalanabilir hale gelmezlerse ve düzenli olarak sigara içilmezlerse, destekleyin.
onlar için gelecekteki sürümlerde aktif olarak kaldırılabilir. Bunlara ilgin varsa
platformlar ve bunları desteklemek için zamanınızı, uzmanlığınızı veya donanımınızı ödünç verebilirsiniz.
platformlar, lütfen e-posta göndererek Perl geliştirme çabasına bildirin
"[e-posta korumalı]".

Aksi halde tamamen ölü görünen bazı platformlar da kısa listede.
şimdi ile v5.20.0 arasında kaldırma:

DG/UX
NeXT

Ayrıca Perl'in şu anki sürümlerinin artık AmigaOS kurmayacağını da düşünüyoruz.
DJGPP, NetWare (yerel), OS/2 ve Plan 9. Böyle bir platformda Perl kullanıyorsanız
ve Perl'in geleceğini garanti altına almakla ilgileniyorsanız, lütfen bizimle iletişime geçin.

Perl'in uzun süredir karışık endian mimarileri (örneğin
PDP-11'ler olarak) ve kalan tüm destek kodlarını kaldırmayı planlıyor. Benzer şekilde, kod
uzun süredir devam eden GNU'yu destekleyen dld, hiç kimse yapmazsa yakında kaldırılacaktır.
aktif kullanıcı olarak bilinirler.

· $< ve $> takası

Perl, $< ve $> (ve aynı şekilde $( ve $)) ile değiştirme deyimini desteklemiştir.
5.0'dan bu yana izinleri geçici olarak bırakın, şöyle:

($<, $>) = ($>, $<);

Ancak, bu deyim, istenmeyen yanlara sahip olabilecek gerçek kullanıcı/grup kimliğini değiştirir.
etkileri, artık hiçbir platformda kullanışlı değildir, perl'in desteklediği ve karmaşıklaştırdığı
bu değişkenlerin uygulanması ve genel olarak liste ataması.

Alternatif olarak, yalnızca $> ataması önerilir:

yerel $> = $<;

Ayrıca bakınız: Setuid Demystifiedhttp://www.cs.berkeley.edu/~daw/papers/setuid-
usenix02.pdf>.

· "Mikroperl", uzun süredir kırılmış ve mevcut amacı belirsiz, kaldırılacaktır.

· Diğer kaçışlarla birleştirildiğinde çift tırnaklı dizelerde "\Q" semantiğinin yenilenmesi.

"\Q" ve kaçış kombinasyonlarını içeren birkaç hata ve tutarsızlık var
bir "\Q...\E" çifti içinde "\x", "\L" vb. gibi. Bunların düzeltilmesi gerekiyor ve bunu yapmak
mevcut davranışı mutlaka değiştirecektir. Değişiklikler henüz karara bağlanmadı.

· $x kullanımı, burada "x" herhangi bir gerçek (yazdırılmayan) C0 kontrol karakteri anlamına gelir.
Gelecekteki bir Perl sürümünde izin verilmeyen. Bunun yerine "${x}" kullanın (burada yine "x" bir
kontrol karakteri) veya daha iyisi, $^A , burada "^" bir şapkadır (CIRCUMFLEX ACCENT) ve "A"
"OPERATÖR FARKLARI"nın sonunda listelenen karakterlerden herhangi biri anlamına gelir.
perlebcdic.

Performans Donanımlar


· Sözcük değişken bildirimleri ("my($x, $y)") listeleri artık bir
tek op ve bu nedenle öncekinden daha hızlı.

· Yeni bir C önişlemcisi tanımlı "NO_TAINT_SUPPORT" eklendi, ayarlanırsa Perl'leri devre dışı bırakır
tamamen leke desteği. -T veya -t komut satırı bayraklarının kullanılması ölümcül
hata. Hem temel testlerin hem de birçok CPAN dağıtımının testlerinin
bu değişiklikle başarısız olun. Yukarı yönde, küçük bir performans avantajı sağlar.
azaltılmış dallanma.

Do değil etkinleştirmek Re-Tweet olmadıkça sen bilmek kesinlikle ne sen vardır alma kendiniz içine.

· Sabit argümanlarla "pack" artık çoğu durumda sabit katlanmış durumda [Perl #113470].

· Unicode özelliklerine karşı düzenli ifade eşleştirmesini hızlandırın. En büyük kazanç
"\X", Unicode "genişletilmiş grafik kümesi kümesi" içindir. Bunun kazancı yaklaşık %35 -
%40. Parantezli karakter sınıfları, örneğin, yukarıdaki kod noktalarını içeren "[0-9\x{100}]"
255 de artık daha hızlı.

· Destekleyen platformlarda, birkaç eski makro artık statik satır içi olarak uygulanmaktadır
fonksiyonlar. Bu, GCC dışı platformlarda işleri biraz hızlandırmalıdır.

· Boole bağlamında karmaların optimizasyonu etkilenecek şekilde genişletildi
"skalar(%hash)", "%hash ? ... : ..." ve "sub { %hash || ... }".

· Filetest operatörleri yığını çok daha verimli bir şekilde yönetir.

· Sayısal bağlamda kullanılan küreler artık çoğu durumda doğrudan numaralandırılmıştır.
stringification yoluyla numified ediliyor.

· "x" tekrarlama operatörü, aşağıdaki durumlarda derleme zamanında artık tek bir sabite katlanır:
sabit işlenenlerle ve solda parantez olmadan skaler bağlamda çağrılır
işlenen.

Modüller ve Pragmat


yeni Modüller ve Pragmat
· Config::Perl::V sürüm 0.16, çift ömürlü bir modül olarak eklendi. sağlar
yalnızca bilinen bilgileri içeren "Perl -V" çıktısının yapılandırılmış veri alımı
"Perl" ikili ve Config aracılığıyla kullanılamaz.

Güncellenmiş Modüller ve Pragmat
Güncellemelerin tam listesi için şunu çalıştırın:

$ çekirdek listesi --fark 5.16.0 5.18.0

En sevdiğiniz sürümü 5.16.0 yerine de değiştirebilirsiniz.

· Archive::Extract 0.68'e yükseltildi.

Busybox'ın unzip'i ile Linux'ta bir uç durum etrafında çalışın.

· Archive::Tar 1.90'a yükseltildi.

ptar artık -T seçeneğinin yanı sıra tiresiz seçenekleri de destekliyor [rt.cpan.org #75473],
[rt.cpan.org #75475].

UTF-8 [rt.cpan.org #75474] olarak işaretlenen dosya adlarını otomatik olarak kodlayın.

IO::Zlib tutamaçlarında [rt.cpan.org #64339] "tell" kullanmayın.

Sembolik bağlantılarda "chown" yapmaya çalışmayın.

· autodie 2.13'e yükseltildi.

"autodie" artık "açık" pragma ile güzel bir şekilde oynuyor.

· B, 1.42'ye yükseltildi.

COP'lerin "stashoff" yöntemi eklendi. Bu, dahili bir erişim sağlar
alan, iş parçacıklı yapılar [Perl #5.16] altında Perl 113034'da eklendi.

"B::COP::stashpv" artık UTF-8 paket adlarını ve gömülü NUL'leri destekliyor.

Tüm "CVf_*" ve "GVf_*" ve SV ile ilgili daha fazla bayrak değeri artık sabit olarak sağlanmaktadır
"B::" ad alanında ve dışa aktarma için kullanılabilir. Varsayılan dışa aktarma listesi
değişti.

Bu, modülün yeni ped API'si ile çalışmasını sağlar.

· B::Concise 0.95'e yükseltildi.

"-nobanner" seçeneği düzeltildi ve "format"lar artık silinebilir. geçtiğinde
alt ad atılacaksa, bunun bir biçim adı olup olmadığını da kontrol edecektir. Eğer bir
sub ve bir format aynı adı paylaşır, her ikisini de boşaltacaktır.

Bu, yeni "OpMAYBE_TRUEBOOL" ve "OPpTRUEBOOL" bayrakları için destek ekler.

· B::Debug 1.18'e yükseltildi.

Bu, Perl 5.17.4'te eklenen "B::PADLIST" için (deneysel olarak) destek ekler.

· B::Deparse 1.20'ye yükseltildi.

"Perl -w" altında çalıştırıldığında uyarıdan kaçının.

Artık döngü kontrollerini doğru önceliğe ve birden çok ifadeye sahip olarak ayrıştırır.
bir "biçim" satırı da artık doğru bir şekilde ayrıştırıldı.

Bu sürüm, biçimlerde sondaki noktalı virgülleri gizler.

Bu sürüm, sözcüksel altyordamlar için saplama ayrıştırma ekler.

Argümanlar olmadan "sıralama" yapılırken artık ölmez. Şimdi doğru bir şekilde atlıyor
"system $prog @args" ve "exec $prog @args" için virgül.

· bignum, bigint ve bigrat 0.33'e yükseltildi.

"Hex" ve "oct" için geçersiz kılmalar, çeşitli sorunları ortadan kaldırarak yeniden yazılmıştır,
ve uyumsuz bir değişiklik yapmak:

· Eskiden, "use bigint" veya "use bigrat"tan hangisi daha sonra derlendiyse,
diğerine göre öncelik, "hex" ve "oct" un diğer pragmaya saygı duymamasına neden olur
kapsamındayken.

· Bu üç pragmatadan herhangi birinin kullanılması, sistemin başka herhangi bir yerinde "hex" ve "oct" değerlerine neden olur.
argümanlarını liste bağlamında değerlendirmek ve bunları önlemek için program
bağımsız değişkenler olmadan çağrıldığında $_ çıkarımı.

· Bu üç pragmatadan herhangi birinin kullanılması, "oct("1234")" değerini 1234 döndürür (herhangi bir
programın herhangi bir yerinde 0) ile başlamayan sayı. Şimdi "1234" tercüme edildi
pragmanın kapsamında olsun ya da olmasın, sekizliden ondalığa.

· "Hex" ve "oct" sözcüklerinin sözcüksel kullanımını kolaylaştıran genel geçersiz kılmalar artık
yeni geçersiz kılmalar kurulmadan önce yürürlükte olan mevcut geçersiz kılmalar,
"bignum kullan" kapsamı dışında onlara geri dönmek.

· bigint ve
bigrat artık global bir fonksiyon sağlamak yerine bir "hex" veya "oct" fonksiyonunu dışa aktarıyor.
geçersiz kılmak.

· Sazan 1.29'a yükseltildi.

"Arayan", önceden ayarlanmış bir paket için undef döndürdüğünde, sazanların kafası artık karışmıyor.
silindi.

"longmess()" ve "shortmess()" işlevleri artık belgelenmiştir.

· CGI 3.63'e yükseltildi.

Tanınmayan HTML kaçış dizileri artık daha iyi işleniyor, sorunlu takip
yeni satırlar artık sonra eklenmiyor "startform()" veya "start_form()" ile etiketler,
ve bazı perl sürümlerinde görünen sahte "Güvensiz Bağımlılık" uyarıları artık
etrafında çalıştı.

· Class::Struct 0.64'e yükseltildi.

Yapıcı artık geçersiz kılınan erişimci yöntemlerine uyar [Perl #29230].

· Sıkıştır::Raw::Bzip2 2.060'a yükseltildi.

Perl'in "sihirli" API'sinin yanlış kullanımı düzeltildi.

· Sıkıştır::Raw::Zlib 2.060'a yükseltildi.

Paketlenmiş zlib'i 1.2.7 sürümüne yükseltin.

Irix, Solaris ve Win32'de ve ayrıca C++ olarak oluştururken derleme hatalarını düzeltin
[rt.cpan.org #69985], [rt.cpan.org #77030], [rt.cpan.org #75222].

Perl'in "sihirli" API'sinin yanlış kullanımı düzeltildi.

"compress()", "uncompress()", "memGzip()" ve "memGunzip()" hızlandırıldı
parametre doğrulamasını daha verimli hale getirir.

· CPAN::Meta::Gereksinimler 2.122'ye yükseltildi.

"from_string_hash" için tanımsız gereksinimleri 0 olarak ele alın (bir uyarı ile).

"requirements_for_module" yöntemi eklendi.

· CPANPLUS, 0.9135'e yükseltildi.

Eklemeye izin ver blib/komut dosyası PATH'e.

Kabuğun çağrıları arasındaki geçmişi kaydedin.

Birden çok "makemakerargs" ve "makeflags" argümanını daha iyi ele alın.

Bu, SQLite kaynak motoruyla ilgili sorunları çözer.

· Data::Dumper 2.145'e yükseltildi.

Yalnızca gerektiği kadar görülen skaler bir karma oluşturmak için optimize edilmiştir, böylece hızlanır
serileştirmeyi büyük ölçüde artırın.

İfade, dal, koşul ve koşulları iyileştirmek için ek testler eklendi.
alt program kapsamı Kapsam analizi temelinde, bazı iç
Dumper.pm yeniden düzenlendi. Hemen hemen tüm yöntemler artık belgelenmiştir.

· DB_File 1.827'ye yükseltildi.

Ana Perl modülü artık "@_" yapısını kullanmamaktadır.

· Devel::Peek 1.11'e yükseltildi.

Bu, C++ derleyicileriyle derlemeyi düzeltir ve modülün yeni altlık ile çalışmasını sağlar
API.

· Özet::MD5, 2.52'ye yükseltildi.

"Digest::Perl::MD5" OO geri dönüşünü düzeltin [rt.cpan.org #66634].

· Özet::SHA, 5.84'e yükseltildi.

Bu, bazı durumlarda güvenlik açıklarına neden olabilecek çift serbest bir hatayı düzeltir.

· DynaLoader 1.18'e yükseltildi.

Bunun nedeni, VMS uygulaması için XS'deki küçük bir kod değişikliğidir.

Bu, "ÇIKIŞ" bölümü olmadan "KOD" bölümlerinin kullanılmasıyla ilgili uyarıları düzeltir.

· Encode 2.49'a yükseltildi.

Mac takma adı x-mac-ce eklendi ve çeşitli hatalar düzeltildi.
Encode::Unicode, Encode::UTF7 ve Encode::GSM0338.

· Ortam 1.04'e yükseltildi.

SPLICE uygulaması artık liste bağlamında hatalı davranmıyor.

· ExtUtils::CBuilder 0.280210'a yükseltildi.

Manifest dosyaları artık, aşağıdakileri kullanan VC++ sürümleri için doğru bir şekilde gömülüdür:
onlara. [Perl #111782, #111798].

Dışa aktarılacak sembollerin listesi artık Windows'ta diğerlerinde olduğu gibi "link()" öğesine iletilebilir.
İşletim Sistemleri [Perl #115100].

· ExtUtils::ParseXS 3.18'e yükseltildi.

Oluşturulan C kodu artık "PL_amagic_generation" öğesini gereksiz yere artırmaktan kaçınıyor.
Otomatik olarak yapıldığı Perl sürümleri (veya no değişkeninin
uzun süredir var).

Bu, başlatılmış XSUB olmayan parametreler için sahte bir uyarıyı önler [Perl #112776].

· Dosya::Kopyala, 2.26'ya yükseltildi.

"copy()" artık aynı dizine kopyalarken dosyaları sıfırlamıyor ve ayrıca şimdi
üzerine bir dosya kopyalamaya çalışırken başarısız oluyor (uzun süredir belgelendiği gibi)
kendisi.

· Dosya::DosGlob 1.10'a yükseltildi.

Her arayan için sakladığı dosya adlarının dahili önbelleği, bu durumda artık serbest bırakılır.
arayan serbest bırakılır. Bu, artık "File::DosGlob 'glob' kullanın; eval 'skalar <*>'" anlamına gelir
bellek sızdırıyor.

· File::Fetch 0.38'e yükseltildi.

Dosya bileşeni olmayan URL'ler için 'file_default' seçeneği eklendi.

Kullanılabilir olduğunda "File::HomeDir" kullanın ve geçersiz kılmak için "PERL5_CPANPLUS_HOME" sağlayın.
otomatik algılama.

Her zaman yeniden getir KONTROL TOPLAMLARI "fetchdir" ayarlanmışsa.

· Dosya::Bul 1.23'e yükseltildi.

Bu, VMS'de tutarsız unixy yol işlemeyi düzeltir.

Artık tek tek dosyalar aranacak dizinler listesinde görünebilir [Perl #59750].

· Dosya::Glob 1.20'ye yükseltildi.

File::Glob, File::DosGlob ile tamamen aynı düzeltmeye sahipti. Perl'e ait olduğu için
"glob" operatörünün kendisi kullanır (VMS hariç), bu artık "eval 'skaler <*>'" anlamına gelir
sızıntıları.

Boşlukla ayrılmış bir kalıp listesi, uzun sonuç listeleri döndürür, artık sonuç vermez
bellek bozulması veya çökmeler. Bu hata Perl 5.16.0'da tanıtıldı. [Perl #114984]

· File::Spec::Unix 3.40'a yükseltildi.

"abs2rel", iki göreli yol veya kök verildiğinde yanlış sonuçlar verebilir
dizini iki kez [Perl #111510].

· Dosya::stat 1.07'ye yükseltildi.

"File::stat" en ince pragmayı yok sayar ve birlikte kullanıldığında uyarır
bununla birlikte. Ama "-r" için uyarı değildi. Bu düzeltildi [Perl #111640].

"-p" artık çalışıyor ve borular için false döndürmez [Perl #111638].

Daha önce "File::stat"'ın aşırı yüklenmiş "-x" ve "-X" operatörleri doğru değeri vermiyordu.
kök olarak çalıştırıldığında dizinler veya yürütülebilir dosyalar için sonuçlar. onlar olmuştu
diğer herhangi bir kullanıcı için olduğu gibi root için yürütülebilir izinleri işlemek,
grup üyelik testleri vb root'a ait olmayan dosyalar için. Şimdi doğruyu takip ediyorlar
Unix davranışı - bir dizin için bunlar her zaman doğrudur ve aşağıdakilerden herhangi biri varsa bir dosya için
üç yürütme izni biti ayarlanır, ardından kökün dosyayı çalıştırabileceğini bildirirler.
Perl'in yerleşik "-x" ve "-X" operatörleri her zaman doğru olmuştur.

· Dosya::Temp 0.23'e yükseltildi

Dizin kaldırmayı içeren çeşitli hataları düzeltir. Aşağıdaki durumlarda geçici dosyaların bağlantısını kaldırmayı erteler:
NFS'deki sorunları gideren ilk bağlantı kaldırma başarısız olur.

· GDBM_File 1.15'e yükseltildi.

"TIEHASH" için belgelenmemiş isteğe bağlı beşinci parametre kaldırıldı. Buydu
ölümcül olması durumunda "gdbm*" işlevleri tarafından kullanılan geri aramanın kontrolünü sağlamayı amaçlamaktadır.
hatalar (dosya sistemi sorunları gibi), ancak çalışmadı (ve asla çalışmayabilirdi).
CPAN'da hiçbir kod onu kullanmayı denemedi bile. Geri arama şimdi her zaman bir önceki
varsayılan, "croak". Bazı platformlarda "C" "croak" işlevinin nasıl olduğuyla ilgili sorunlar
denilen de çözüldü.

· Hash::Util, 0.15'e yükseltildi.

"hash_unlocked" ve "hashref_unlocked", karma kilidi açılırsa artık true değerini döndürür,
her zaman false [Perl #112126] döndürmek yerine.

"hash_unlocked", "hashref_unlocked", "lock_hash_recurse" ve "unlock_hash_recurse"
artık dışa aktarılabilir [Perl #112126].

"hash_locked" ve "hashref_locked" olmak üzere iki yeni fonksiyon eklendi. Garip bir şekilde,
bu iki işlev, var olmasalar bile zaten dışa aktarılmıştı [Perl
Sayfa #112126].

· HTTP::Tiny, 0.025'e yükseltildi.

SSL doğrulama özellikleri [github #6], [github #9] ekleyin.

Nihai URL'yi yanıt hashref'ine ekleyin.

"local_address" seçeneğini ekleyin.

Bu, SSL desteğini iyileştirir.

· IO 1.28'e yükseltildi.

"sync()" artık salt okunur dosya tanıtıcılarında [Perl #64772] çağrılabilir.

IO::Socket, yuva bilgilerini önbelleğe almak veya başka bir şekilde almak için daha çok çalışır.

· IPC::Cmd 0.80'e yükseltildi.

"run_forked" [rt.cpan.org #76901] içindeki "exit" yerine "POSIX::_exit" kullanın.

· IPC::Open3, 1.13'e yükseltildi.

"open3()" işlevi, dosya tanımlayıcılarını kapatmak için artık "POSIX::close()" kullanmamaktadır.
olduğu durumlarda PerlIO tarafından yapılan dosya tanımlayıcılarının ref sayımını bozan
dosya tanımlayıcıları, dosyayı kapatma girişimlerine yol açan PerlIO akışları tarafından paylaşılır
tanımlayıcılar, bu tür PerlIO akışları daha sonra kapatıldığında ikinci kez.

· Locale::Codes 3.25'e yükseltildi.

Bazı yeni kodlar içerir.

· Memoize 1.03'e yükseltildi.

"MERGE" önbellek seçeneğini düzeltin.

· Module::Build 0.4003'e yükseltildi.

$VERSION içermeyen modüllerin '0' sürümünün listelendiği hata düzeltildi.
DURAKLATMA tarafından reddedilecek olan meta verileri 'sağlar'.

Modül adlarında sayılara izin vermek için PodParser'daki hata düzeltildi.

Argümanları iki kez vermenin onların dizi haline gelmesine neden olduğu ve sonuç olarak
gibi yolları yükle DİZİ(0xdeadbeef)/lib/Foo.pm.

Küçük bir hata düzeltmesi, bir POD "soyutunda" baştaki "Ad" çevresinde işaretlemenin kullanılmasına izin verir
hattı ve bazı dokümantasyon iyileştirmeleri yapıldı.

· Module::CoreList 2.90'a yükseltildi

Sürüm bilgileri artık bir delta olarak saklanıyor ve bu da dosyanın boyutunu büyük ölçüde azaltıyor.
CoreList.pm dosyası.

Bu, Perl'in eski sürümleriyle uyumluluğu geri yükler ve çekirdek listeyi temizler
çeşitli modüller için veriler.

· Module::Load::Conditional, 0.54'e yükseltildi.

Boşluklu bir yola yüklenen perllerde "gerektirir" kullanımını düzeltin.

Çeşitli geliştirmeler, Module::Metadata'nın yeni kullanımını içerir.

· Modül::Meta veriler 1.000011'e yükseltildi.

Tipik bir modül dosyası için Module::Metadata nesnesinin oluşturulması hızlandırıldı
yaklaşık %40 oranında ve $VERSION'larla ilgili bazı sahte uyarılar bastırıldı.

· Module::Pluggable 4.7'ye yükseltildi.

Diğer değişikliklerin yanı sıra, artık olaylarda tetikleyicilere izin veriliyor ve bu da güçlü bir yol sağlıyor.
davranışı değiştirmek için.

· Net::Ping, 2.41'e yükseltildi.

Bu, Windows'taki bazı test hatalarını düzeltir.

· Opcode 1.25'e yükseltildi.

Önbellek işlem kodunun kaldırılmasını ve kloncv, introcv'nin eklenmesini yansıtın
ve padcv işlem kodları.

· aşırı yük 1.22'ye yükseltildi.

"Aşırı yükleme yok", tıpkı "aşırı yüklemeyi kullan" gibi geçersiz bağımsız değişkenler için uyarır.

· PerlIO::encoding 0.16'ya yükseltildi.

Bu, ":encoding(...)" G/Ç katmanını uygulayan modüldür. Artık bozmuyor
kodlama arka ucu arabelleği yeniden tahsis ettiğinde veya ona bir
typeglob veya paylaşılan karma anahtar skaler.

· PerlIO::skalar 0.16'ya yükseltildi.

Sağlanan arabellek skaleri artık yalnızca 0xFF veya daha düşük kod noktalarını içerebilir. [perl
#109828]

· Perl::OSType 1.003'e yükseltildi.

Bu, VOS işletim sistemini algılayan bir hatayı düzeltir.

· Pod::Html 1.18'e yükseltildi.

"--libpods" seçeneği eski haline getirildi. Kullanımdan kaldırıldı ve kullanımı hiçbir şey yapmıyor
artık desteklenmediğine dair bir uyarı vermekten başka.

pod2html tarafından oluşturulan HTML dosyaları bir UTF-8 karakter kümesine sahip olduğunu iddia ettiğinden, aslında
dosyaları UTF-8 [Perl #111446] kullanarak yazın.

· Pod::Simple, 3.28'e yükseltildi.

Çoğunlukla Pod::Simple::XHTML'de olmak üzere çok sayıda iyileştirme yapılmıştır.
uyumluluk değişikliği: "codes_in_verbatim" seçeneği artık varsayılan olarak devre dışıdır. Görmek
cpan/Pod-Basit/Değişiklik Günlüğü tüm detaylar için.

· yeniden 0.23'e yükseltildi

"/[s]/" veya "/[s]/i" gibi tek karakterli [sınıflar] artık sanki optimize edilmiş gibi optimize edildi
parantezleri yoktur, yani "/s/" veya "/s/i".

Aşağıdaki "Dahili Değişiklikler" bölümündeki "op_comp" hakkındaki nota bakın.

· Kasa 2.35'e yükseltildi.

"Devel::Cover" ile etkileşimleri düzeltin.

Kodu "katı değil" altında değerlendirmeyin.

· Scalar::Util, 1.27 sürümüne yükseltildi.

"Sum" ile aşırı yükleme sorununu düzeltin.

"ilk" ve "azalt" şimdi önce geri aramayı kontrol edin (böylece &ilk(1) izin verilmez).

Sihirli değerlerde "kusurlu" düzeltildi [rt.cpan.org #55763].

Daha önce sihirli değerlerde "topla"yı düzeltin [rt.cpan.org #61118].

Sabit bir arabelleğin [rt.cpan.org #72700] sonunu geçtikten sonra okumayı düzeltin.

· Search::Dict 1.07'ye yükseltildi.

Artık kütükbelirteçlerinde "stat" gerektirmez.

Kasa katlama için "fc" kullanın.

· Soket 2.009'a yükseltildi.

IP çok noktaya yayın kaynak grubu üyeliği için gereken sabitler ve işlevler
eklendi.

"unpack_sockaddr_in()" ve "unpack_sockaddr_in6()" artık yalnızca IP adresini
skaler bağlam ve "inet_ntop()" artık yanlış uzunluk skalerlerine karşı koruma sağlıyor
geçti.

Bu, başlatılmamış bir bellek okumasını düzeltir.

· Depolanabilir, 2.41'e yükseltildi.

$_[0]'ı "STORABLE_freeze" içinde değiştirmek artık çökmelere neden olmuyor [perl #112358].

Sınıfı "STORABLE_attach" uygulayan bir nesne, artık orada olduğunda yalnızca bir kez çözülür.
çözülmekte olan yapıda buna birden çok referans vardır [Perl #111918].

Kısıtlı karmalar her zaman doğru şekilde çözülmedi [perl #73972].

Depolanabilir, kutsanmış bir REF nesnesini "STORABLE_freeze()" ile dondururken gıcırtı yapar
yöntem [Perl #113880].

Artık vstring'leri doğru bir şekilde dondurup çözebilir. Bu, hafif bir uyumsuzluğa neden olur
depolama biçiminde değişiklik, bu nedenle biçim sürümü 2.9'a yükseldi.

Bu, eski sürümleri için uyumluluk düzeltmeleri de dahil olmak üzere çeşitli hata düzeltmeleri içerir.
Perl ve vstring işleme.

· Sys::Syslog 0.32'ye yükseltildi.

Bu, "getservbyname()", "setlogsock()" ve log ile ilgili birkaç hata düzeltmesi içerir.
Windows, Haiku-OS ve GNU/kFreeBSD için düzeltmelerle birlikte "syslog()" içindeki seviyeler. Görmek
cpan/Sys-Syslog/Değişiklikler tüm detaylar için.

· Term::ANSIColor 4.02'ye yükseltildi.

İtalik için destek ekleyin.

Hata işlemeyi iyileştirin.

· Term::ReadLine 1.10'a yükseltildi. Bu, aşağıdakilerin kullanımını düzeltir: PAN ve cpanp
Geçerli sürücünün bir içermesi durumunda Windows'ta kabuklar \dev\tty
dosyası.

· Test::Harness 3.26'ya yükseltildi.

Win32 [rt.cpan.org #49732] üzerinde glob semantiğini düzeltin.

Perl [rt.cpan.org #32] çağrılırken "Win47890::GetShortPathName" kullanmayın.

Shebang [rt.cpan.org #64404] okurken -T'yi yoksay.

Testin bekleme durumunu bilmediğimiz durumu daha incelikle ele alın.

Bir eklenti olarak değiştirilebilmesi için test özeti 'tamam' satırını geçersiz kılınabilir hale getirin.
ispatın çıktısını idempotent yapın.

Dünya çapında yazılabilir dosyaları çalıştırmayın.

· Text::Tabs ve Text::Wrap 2012.0818'e yükseltildi. Unicode desteği
her ikisine de birleştirme karakterleri eklendi.

· threads::shared 1.31'e yükseltildi.

Bu, kopyalanamayan yapıları klonlama girişimleri hakkında uyarma veya yok sayma seçeneği ekler.
bu durumda koşulsuz olarak ölmek yerine klonlanabilir.

Bu, Scalar::Util::dualvar tarafından oluşturulan çift değerli değerler için destek ekler.

· Tie::StdHandle 4.3'e yükseltildi.

"READ" artık "oku" [Perl #112826] için ofset argümanına uyar.

· Time::Local 1.2300'e yükseltildi.

59'dan büyük ancak 60'tan küçük saniye değerleri artık "timegm()"e neden olmaz ve
"timelocal()" cıvıldamak için.

· Unicode::UCD 0.53'e yükseltildi.

Bu bir işlev ekler all_casefolds() bu, tüm casefold'ları döndürür.

· Win32, 0.47'ye yükseltildi.

Mevcut kod sayfasını almak ve ayarlamak için yeni API'ler eklendi.

çıkarıldı Modüller ve Pragmat
· Sürüm::Gereksinimler çekirdek dağıtımdan kaldırıldı. mevcut
farklı bir ad altında: CPAN::Meta::Gereksinimler.

Dökümanlar


değişiklikler için Mevcut Dökümanlar
hile

· perlcheat yeniden düzenlendi ve birkaç yeni bölüm eklendi.

perlveri

· Şimdi, aşağıdakileri içeren karma başlatıcı listelerinin davranışını açıkça belgelemektedir:
yinelenen anahtarlar.

Perldiag

· "Sıkı referanslar" tarafından engellenen sembolik referansların açıklaması artık
okuyucunun sembolik referansların ne olduğunu bildiğini varsayalım.

perlfaq

· perlfaq, CPAN'ın 5.0150040 sürümü ile senkronize edilmiştir.

mükemmel

· "boru"nun dönüş değeri artık belgelenmiştir.

· "Bizim" ile ilgili netleştirilmiş belgeler.

perlop

· Döngü kontrol fiilleri ("dump", "goto", "next", "last" ve "redo") her zaman
atama operatörleri ile aynı önceliğe sahiptir, ancak bu şimdiye kadar belgelenmemiştir.

Teşhis

Teşhis çıktısında uyarılar da dahil olmak üzere aşağıdaki eklemeler veya değişiklikler yapılmıştır.
ve ölümcül hata mesajları. Tanılama mesajlarının tam listesi için, bkz. perldiag.

yeni Teşhis
yeni Hatalar

· Burada belge için sonlandırılmamış sınırlayıcı

Bu mesaj artık burada bir belge etiketinde bir ilk tırnak işareti bulunduğunda ancak
son tırnak işareti eksik.

Bu, etiketin kendisini bulamama konusunda sahte ve yanıltıcı bir hata mesajının yerini alır.
[Perl #114104].

· panik: alt sözde süreç hiçbir zaman planlanmadı

Bu hata, itthreads uygulamasındaki bir alt sözde süreç
Windows, izin verilen süre içinde programlanmadı ve bu nedenle
düzgün başlat [Perl #88840].

· Grup adı, normal ifadede rakam olmayan bir kelime karakteriyle başlamalıdır; <-- ile işaretlenmiş
Hanım/

Bu hata, geçersiz olan "(?&0)" için eklendi. Eskiden üretirdi
anlaşılmaz hata mesajı [Perl #101666].

· Alt program referansı olarak tanımsız bir değer kullanılamaz

Tanımsız bir değeri alt program olarak çağırmak artık bu hata mesajını veriyor. Kullandı
için, ancak yanlışlıkla devre dışı bırakıldı, ilk olarak sihirli olmayan değişkenler için Perl 5.004'te ve
daha sonra büyülü (örneğin, bağlı) değişkenler için Perl v5.14'te. Şimdi restore edildi. İçinde
ortalama süre, undef boş bir dize olarak kabul edildi [Perl #113576].

· Deneysel "%s" aboneleri etkinleştirilmedi

Sözlüksel alt öğeleri kullanmak için önce bunları etkinleştirmelisiniz:

uyarı yok 'deneysel::lexical_subs';
'lexical_subs' özelliğini kullanın;
benim alt foo { ... }

yeni Uyarılar

· '0xFF üzerindeki kod noktalarına sahip dizeler, bellek içi dosya tanıtıcılarıyla eşlenemez'

· '%s', '\o{%s}%d' olarak çözümlendi

· 'Bir karakter takma adı tanımında sondaki beyaz boşluk kullanımdan kaldırıldı'

· 'Bir karakter takma adı tanımındaki birden çok boşluk dizisi kullanımdan kaldırıldı'

· 'Hatalı biçimlendirilmiş UTF-8'in "%s" dizinine geçirilmesi kullanımdan kaldırıldı'

· "&%s" alt programı mevcut değil

(W kapatma) Derleme sırasında, bir iç adlandırılmış alt yordam veya değerlendirme,
şu anda mevcut olmayan bir dış sözcük alt yordamını yakalayın. Bu olabilir
iki nedenden biri için. İlk olarak, sözlüksel altyordam bir dış programda bildirilebilir.
henüz oluşturulmamış anonim alt yordam. (Adlandırılmış alt öğelerin
derleme zamanında oluşturulurken, anonim altlar çalışma zamanında oluşturulur.) Örneğin,

alt { benim alt a {...} alt f { \&a } }

f oluşturulduğunda, "a" alt öğesinin akımını yakalayamaz, çünkü
anonim alt program henüz oluşturulmadı. Tersine, aşağıdakiler bir
Anonim alt yordam oluşturulduğundan ve yayınlandığından beri uyarı:

sub { benim sub a {...} değerlendirme 'sub f { \&a }' }->();

İkinci duruma, dışında kalan bir değişkene erişen bir değerlendirme neden olur.
kapsam, örneğin,

alt f {
benim bir {...}
alt { değerlendirme '\&a' }
}
f()->();

Burada, değerlendirmedeki '\&a' derlenirken, f() şu anda oluşturulmuyor
yürütülür, bu nedenle &a yakalama için kullanılamaz.

· "%s" altyordamı &%s aynı %s içindeki önceki bildirimi maskeler

(W misc) Geçerli kapsamda bir "benim" veya "durum" alt programı yeniden bildirildi veya
ifadesi, önceki örneğe tüm erişimi etkin bir şekilde ortadan kaldırır. Bu
neredeyse her zaman bir yazım hatası. Daha önceki alt programın yine de
kapsamın sonuna kadar veya ona ilişkin tüm kapatma referansları yok edilene kadar var olur.

· %s özelliği deneyseldir

(S deneysel) aracılığıyla deneysel bir özelliği etkinleştirirseniz bu uyarı verilir.
"özelliği kullan". Özelliği kullanmak istiyorsanız, ancak şunu bilin ki, uyarıyı bastırmanız yeterlidir.
bunu yaparken deneysel bir özellik kullanma riskini almış olursunuz.
gelecekteki bir Perl sürümünde değiştirin veya kaldırılsın:

uyarı yok "deneysel::lexical_subs";
"lexical_subs" özelliğini kullanın;

· uyku(%u) çok büyük

(W taşması) Güvenilir bir şekilde olabileceğinden daha büyük bir sayıyla "uyku" dediniz
işlemek ve "uyku" muhtemelen istenenden daha az süre uyudu.

· Setenv'de geniş karakter

%ENV aracılığıyla ortam değişkenlerine geniş karakterler koyma girişimleri şimdi bunu tetikliyor
uyarı.

· "chr'de geçersiz negatif sayı (%s)"

"chr()" artık negatif bir değer [Perl #83048] iletildiğinde uyarı veriyor.

· "Srand'da tamsayı taşması"

"srand()" artık bir "UV"ye uymayan bir değer geçtiğinde uyarır (değer
taşmak yerine kesilecektir) [Perl #40605].

· "-i komut satırında dosya adı olmadan kullanıldı, STDIN'den okunur"

Perl'i "-i" bayrağıyla çalıştırmak, artık giriş dosyası sağlanmazsa uyarı verir.
komut satırı [Perl #113410].

değişiklikler için Mevcut Teşhis
· $* artık desteklenmiyor

$* ve $# kullanımının artık desteklenmediği uyarısı artık her
onlara atıfta bulunan konum. Daha önce, başka bir tane olsaydı oluşturulmazdı.
aynı typeglob'u kullanan değişken ilk görüldü (örneğin, $*'dan önce "@*") ve
ikinci ve sonraki kullanımlar için üretilebilir. (Başarısızlığı düzeltmek zor
her seferinde onları üretmeden ve her seferinde uyarmadan hiç uyarı üretin
time, $[ öğesinin oluşturmak için kullandığı uyarılarla tutarlıdır.)

· "\b{" ve "\B{" için uyarılar eklendi. Bunlar bir kullanımdan kaldırma uyarısıdır.
o kategori tarafından kapatılmalıdır. Normal ifadeyi kapatmak zorunda kalmamalı
Bunlardan kurtulmak için de uyarılar.

· Sabit(%s): &{$^H{%s}} çağrısı tanımlı bir değer döndürmedi

"undef" döndüren sürekli aşırı yükleme bu hata iletisine neden olur. sayısal için
sabitler, "Constant(undef)" derdi. "undef" ile değiştirilmiştir
numara kendisi.

· Bir modül yüklenemediğinde oluşan hata, artık modülün
yüklenmesi gerekebilir: "@INC'de hopping.pm bulunamıyor (yüklemeniz gerekebilir)
atlama modülü) (@INC şunları içerir: ...)"

· vektör argümanı alfa sürümleriyle desteklenmez

Bu uyarı, "uyarı yok" olsa bile bastırılamazdı. Şimdi bastırılabilir,
ve "dahili" kategorisinden "printf" kategorisine taşınmıştır.

· "N > m ile normal ifadede {n,m} yapılamaz; <-- BURADA m/%s/ ile işaretlenmiştir"

Bu önemli hata, aşağıdakileri yazan bir uyarıya dönüştürüldü:

n > m ile {n,m} niceleyicisi normal ifadeyle eşleşemez

(W normal ifade) Minimum, maksimumdan küçük veya ona eşit olmalıdır. eğer gerçekten istiyorsan
0 kez bir şeyle eşleşmesi için regexp, sadece {0} koyun.

· Tuhaf durumlarda ortaya çıkan "Kaçak prototip" uyarısı olduğu için kaldırıldı.
yararsız ve tutarsız.

· "Biçim referansı değil" hatası, tek durum olarak kaldırılmıştır.
tetiklenebilir bir hataydı.

· "%s adlı alt yapı oluşturulamıyor" hatası aynı nedenle kaldırıldı.

· 'Sıralama karşılaştırmasında "benim %s" kullanılamıyor' hatası bir uyarıya indirildi,
Sıralama karşılaştırmasında kullanılan "benim %s" (durum değişkenleri için "benim" yerine "durum" ile).
Ek olarak, sözcüksel $a veya $b'nin kötüye kullanılıp kullanılmadığını tahmin etmeye yönelik buluşsal yöntemler
daha az yanlış pozitif üretecek şekilde geliştirilmiştir. Sözlüksel $a ve $b artık değil
sıralama bloğunun dışındaysa izin verilmez. Ayrıca, adlandırılmış bir tekli veya liste operatörü
sıralama bloğunun içinde artık $a veya $b'nin yok sayılmasına neden olmaz [Perl #86136].

Yarar değişiklikler


h2xs

· h2xs artık boş tanımlar için geçersiz kod üretmiyor. [Perl #20636]

yapılandırma ve Derleme


· Yapılandır'a "useversionedarchname" seçeneği eklendi

Ayarlandığında, 'archname' içinde 'api_versionstring' içerir. Örneğin
x86_64-linux-5.13.6-thread-multi. Varsayılan olarak ayarlanmamıştır.

Bu özellik, "INSTALL_BASE" öğesinin bir
perl versiyonuna göre farklılaşmayan kütüphane yapısı. Bunun yerine, yerleştirir
"$install_base/lib/perl5/$archname" içindeki mimariye özel dosyalar. Bu onu yapar
Perl'in birden çok sürümüyle ortak bir "INSTALL_BASE" kitaplık yolunu kullanmak zor.

"-Duseversionedarchname" ayarlandığında, $archname mimari için farklı olacaktır.
ve API sürümü, "INSTALL_BASE" karma kullanımına izin verir.

· Bir "PERL_NO_INLINE_FUNCTIONS" seçeneği ekleyin

"PERL_NO_INLINE_FUNCTIONS" tanımlanmışsa, "inline.h"yi dahil etmeyin

Bu, test kodunun bir tanım oluşturmadan tanımlar için Perl başlıklarını içermesine izin verir.
perl kitaplığına bağlantı bağımlılığı (henüz mevcut olmayabilir).

· Yapılandırma, ayarlanmışsa, harici "MAILDOMAIN" ortam değişkenini dikkate alacaktır.

· "installman" artık sessiz seçeneğini görmezden gelmiyor

· Hem "META.yml" hem de "META.json" dosyaları artık dağıtıma dahil edilmiştir.

· yapılandırma artık bir C++ derleyicisi ile derlerken "isblank()"ı doğru bir şekilde algılayacaktır.

· Çağrı cihazı algılama yapılandırma belirten yanıtlara izin verecek şekilde geliştirildi
program adından sonraki seçenekler, örn. /usr/bin/daha az -R, kullanıcı varsayılanı kabul ederse
değer. Bu yardımcı olur Perldoc ANSI'yi işlerken kaçar [Perl #72156].

Test yapmak


· Test paketinde artık çok büyük miktarda bellek gerektiren testler için bir bölüm bulunmaktadır.
Bu testler varsayılan olarak çalışmayacaktır; ayarlayarak etkinleştirilebilirler.
"PERL_TEST_MEMORY" ortam değişkeni, belleğin gibibayt sayısına
güvenle kullanılabilir.

Platform Destek


Durdurulan Platformlar
BeOS
BeOS, Be Inc tarafından başlangıçta kişisel bilgisayarlar için geliştirilen bir işletim sistemiydi.
onların BeBox donanımı. OS Haiku, açık kaynaklı bir yedek olarak yazılmıştır
BeOS için/devamı için ve Perl portu güncel ve aktif olarak sürdürülüyor.

ÜTS Küresel
UTS global ile ilgili destek kodu kaldırılmıştır. UTS, bir ana bilgisayar versiyonuydu.
Amdahl tarafından oluşturulan System V, daha sonra UTS Global'e satıldı. liman yapılmadı
Perl v5.8.0'dan bu yana dokunuldu ve UTS Global artık geçersiz.

VM / ESA
VM/ESA desteği kaldırıldı. Bağlantı noktası, IBM'in sonlandırdığı 2.3.0'da test edildi
Mart 2002'de hizmete girdi. 2.4.0 hizmeti Haziran 2003'te sona erdi ve yerini
Z/VM. Z/VM'nin şu anki sürümü V6.2.0'dır ve şu tarihte hizmet sonu için planlanmıştır:
2015 / 04 / 30.

MPE/IX
MPE/IX desteği kaldırıldı.

EPOC
EPOC ile ilgili destek kodu kaldırıldı. EPOC faaliyet gösteren bir aileydi
Psion tarafından mobil cihazlar için geliştirilen sistemler. Symbian'ın öncülüydü.
Liman en son Nisan 2002'de güncellendi.

Rapsodi
Rhapsody desteği kaldırıldı.

Platform Özgü notlar
AIX

Configure artık xlC kullanırken AIX üzerindeki CC bayraklarına her zaman "-qlanglvl=extc99" ekler. Bu
C99 [perl
Sayfa #113778].

klan++

O zamandan beri clang++ ile derlemeyi engelleyen bir derleyici hatası için artık bir geçici çözüm var.
Perl v5.15.7 [Perl #112786].

C + +

Perl çekirdeğini C++ (yalnızca yarı destekli) olarak derlerken, matematik işlevi
artık uygun ikili uyumluluğu sağlamak için "harici "C"" olarak derlenmiştir. (Ancak ikili
Bunun olacağı durumlarda uyumluluk genellikle garanti edilmez.
konu.)

Darwin

-Dusemorebits kullanarak yapıları düzeltmek için 8 bayt sınırlarında bir hizalamayı sabit kodlamayı bırakın.

Haiku

Perl şimdi Haiku R1 Alpha 4'te kutunun dışında çalışmalı.

Gece yarısı BSD

MidnightBSD'nin son sürümlerinden "libc_r" kaldırıldı ve eski sürümler daha iyi çalışıyor
"pthread" ile. İş parçacığı oluşturma artık, oluşturma hatalarını düzelten "pthread" kullanılarak etkinleştirilir.
0.4-CURRENT'te diş açma etkinleştirildi.

Solaris

Configure'da, Solaris'te desteklenmeyen bayraklarla sed komutlarını çalıştırmaktan kaçının.

VMS

· Mümkün olduğunda, dosya adlarının ve komut satırı argümanlarının durumu artık şu şekilde korunmaktadır:
adresinde "DECC$EFS_CASE_PRESERVE" ve "DECC$ARGV_PARSE_STYLE" CRTL özelliklerinin etkinleştirilmesi
başlama zamanı. İkincisi, yalnızca genişletilmiş ayrıştırma etkinleştirildiğinde etkili olur.
Perl'in çalıştırıldığı süreç.

· Genişletilmiş Dosya Adı Sözdizimi (EFS) için karakter seti artık VMS'de varsayılan olarak etkindir.
Diğer şeylerin yanı sıra, bu, dizin adlarındaki noktaların daha iyi işlenmesini sağlar, birden çok
dosya adlarında noktalar ve dosya adlarında boşluklar. Eski davranışı elde etmek için
mantıksal adı "DECC$EFS_CHARSET", "DEVRE DIŞI" olarak.

· "-Dusemymalloc=y" ile yapılandırılmış yapılardaki bağlantı düzeltildi.

· HP C++ derleyicisi ile Perl oluşturmak için deneysel destek şurada mevcuttur:
"-Dusecxx" ile yapılandırma.

· Dağıtımın üst düzey dizinindeki tüm C başlık dosyaları şimdi yüklendi
VMS üzerinde, diğer platformlarda uzun süredir devam eden bir uygulama ile tutarlılık sağlar.
Önceden yalnızca, çekirdek dışı uzantı yapılarını bozan bir alt küme kuruluyordu.
eksik dosyalara bağlı olan uzantılar.

· Alıntılar artık komut fiilinden (parametrelerden değil) komutlar için kaldırılmıştır.
"sistem", geri tepmeler veya borulu "açık" yoluyla ortaya çıktı. Daha önce, fiilden alıntılar
komutu tanıyamayacak olan DCL'ye iletildi. Ayrıca, eğer
fiil aslında bir ODS-5 birimindeki bir görüntünün yolu veya komut prosedürüdür, alıntı yaparak
artık yolun boşluk içermesine izin veriyor.

· A2P OpenVMS'deki HP C++ derleyicisi için derleme düzeltildi.

Win32

· Perl artık Microsoft'un Visual C++ 2012 derleyicisi kullanılarak aşağıdakiler belirtilerek oluşturulabilir:
CCTYPE=MSVC110 (veya Windows için ücretsiz Express sürümünü kullanıyorsanız MSVC110FREE
Masaüstü) içinde win32/Make dosyası.

· "USE_SOCKETS_AS_HANDLES" olmadan inşa etme seçeneği kaldırıldı.

· Konuları temizlerken perl'in çökmesine neden olan bir sorun düzeltildi (ana
iş parçacığı) Win32 ve muhtemelen diğer platformlarda iş parçacıklı hata ayıklama yapılarında [Perl
Sayfa #114496].

· Beklenenden daha fazla zaman alan uykuya neden olabilecek nadir bir yarış durumu ve
muhtemelen asılı bile, düzeltildi [Perl #33096].

· Win32'deki "bağlantı" şimdi $! Win32'ye dayalı daha uygun değerlere
API hata kodu. [perl #112272]

Perl artık ortam bloğunu karıştırmıyor, örneğin yeni bir alt süreç başlatırken,
ortam ASCII olmayan karakterler içerdiğinde. Bilinen sorunlar hala devam ediyor,
ancak ortam, geçerli ANSI kod sayfasının dışında karakterler içerdiğinde
(örneğin, %ENV'de Unicode ile ilgili maddeye bakın
<http://perl5.git.perl.org/perl.git/blob/HEAD:/Taşıma/todo.pod>). [perl #113536]

· Bazı Windows derleyicileri ile perl oluşturma, bir sorun nedeniyle başarısız oluyordu.
miniperl'in "glob" operatörü ("perlglob" programını kullanan) PATH'yi siliyor
ortam değişkeni [Perl #113798].

· Windows makefiles'e yeni bir makefile seçeneği, "USE_64_BIT_INT" eklendi. Ayarlamak
32-bit tamsayılar kullanmasını istiyorsanız, 64-bit perl oluştururken bunu "tanımlamak" içindir.

Perl v5.17.2'de XS modüllerinin DLL'lerinde zaten yapılmış olan makine kodu boyutu küçültmeleri,
şimdi perl DLL'nin kendisine genişletildi.

VC++ 6.0 ile oluşturma, Perl v5.17.2'de istemeden bozuldu, ancak şimdi düzeltildi
tekrar.

Çekinme

WinCE üzerine inşa etmek artık bir kez daha mümkün, ancak tam olarak için daha fazla çalışma gerekiyor.
temiz bir yapıyı geri yükleyin.

İç değişiklikler


· Yanıltıcı olarak adlandırılan "av_len()" için eşanlamlılar oluşturuldu: "av_top_index()" ve
"av_tindex". Bunların üçü de dizideki en yüksek indeksin numarasını döndürür,
içerdiği eleman sayısı değil.

· YÜKSELTME() artık bir ifade değildir. Başlangıçta bu makro (ve onun altında yatan
fonksiyonu, sv_upgrade()) boole olarak belgelendi, ancak gerçekte her zaman
hata üzerine titredi ve asla yanlış döndürmedi. 2005 yılında belgeler şu şekilde güncellendi:
geçersiz bir dönüş değeri belirtin, ancak YÜKSELTME() geriye doğru her zaman 1 döndürülerek bırakıldı
uyumluluk. Bu artık kaldırıldı ve YÜKSELTME() şimdi hayır ile bir ifade
geri dönüş değeri.

Yani bu şimdi bir sözdizimi hatası:

if (!SvUPGRADE(sv)) { vırak(...); }

Böyle bir kodunuz varsa, basitçe değiştirin

SvUPGRADE(sv);

veya muhtemelen daha eski perl'lerde derleyici uyarılarından kaçınmak için

(geçersiz)SvUPGRADE(sv);

· Perl, herhangi bir SvPOK skalerinin yükseltilmesine izin veren yeni bir yazma üzerine kopyalama mekanizmasına sahiptir.
yazıldığında kopyalanan bir skaler. Dize arabelleğindeki bir başvuru sayısı,
dize arabelleğinin kendisi. Bu özellik değil etkin by varsayılan.

Çalıştırarak bir Perl derlemesinde etkinleştirilebilir. yapılandırma ile
-Accflags=-DPERL_NEW_COPY_ON_WRITEve XS yazarlarını denemeleri için teşvik ederiz.
böyle etkin bir Perl ile kodlayın ve geri bildirim sağlayın. Maalesef henüz yok
COW ile başa çıkmak için XS kodunu güncellemek için iyi bir rehber. Böyle bir belge gelene kadar
mevcutsa, perl5-porters posta listesine bakın.

Yazma üzerine kopyalama skalerlerinin kod yollarından geçmesine izin vererek birkaç XS modülünü kırar
daha önce hiç karşılaşmadıkları.

· Yazma üzerine kopyalama artık SvFAKE ve SvREADONLY işaretlerini kullanmamaktadır. Bu nedenle, SvREADONLY
gerçek bir salt okunur SV'yi gösterir.

Yazma üzerine kopyalanan bir skaler tanımlamak için SvIsCOW makrosunu (önceki gibi) kullanın.

· "PL_glob_index" gitti.

· Özel Perl_croak_no_modify, bağlam parametresini kaldırdı. şimdi var
boş bir prototip. Genel API croak_no_modify kullanıcıları etkilenmeden kalır.

· Yazma üzerine kopyalama (paylaşılan karma anahtar) skalerleri artık salt okunur olarak işaretlenmemektedir. "SvREADONLY"
böyle bir SV'de false döndürür, ancak "SvIsCOW" yine de true döndürür.

· Yeni bir operasyon türü olan "OP_PADRANGE" tanıtıldı. Perl gözetleme deliği optimize edici,
mümkünse, bir veya daha fazlasının takip ettiği bir itme işareti için tek bir padrange op'u değiştirin
pad operasyonları ve muhtemelen ayrıca listeyi ve nextstate operasyonlarını atlama. Ek olarak, op can
"my(...) = @_" atamasının RHS'si ile ilişkili görevleri gerçekleştirin, böylece
operasyonlar da optimize edilebilir.

· Çok karakterli bir [parantez içine alınmış] karakter sınıfı içinde büyük/küçük harfe duyarsız eşleştirme
Fold artık eskisi gibi koşullarda olasılıklardan birini dışlamıyor.
[Perl #89774].

· "PL_formfeed" kaldırıldı.

· Normal ifade motoru artık hedefin sonundan bir bayt okumaz
sicim. Tüm dahili olarak iyi biçimlendirilmiş skalerler için bu asla bir
Bu değişiklik, CPAN modüllerinde dizi arabellekleriyle akıllı hileleri kolaylaştırır.
[perl #73542]

· Bir BEGIN bloğunun içinde, "PL_compcv" artık o anda derlenmekte olan alt yordama işaret ediyor,
BEGIN bloğunun kendisi yerine.

· "mg_length" kullanımdan kaldırıldı.

· "sv_len" artık her zaman bir bayt sayısı ve "sv_len_utf8" bir karakter sayısı döndürür.
Önceden "sv_len" ve "sv_len_utf8" hem hatalıydı hem de bazen geri dönüyordu
baytlar ve bazen karakterler. "sv_len_utf8" artık argümanının
UTF-8'de. Bunların hiçbiri, bağlı veya aşırı yüklenmiş değerler veya aşağıdakiler için UTF-8 önbellekleri oluşturmaz.
artık PV olmayanlar.

· "sv_mortalcopy" artık şuradan çağrıldığında paylaşılan karma anahtar skalerlerinin dize arabelleklerini kopyalıyor
XS modülleri [Perl #79824].

· Yeni "RXf_MODIFIES_VARS" bayrağı, özel düzenli ifade motorları tarafından şu şekilde ayarlanabilir:
normal ifadenin yürütülmesinin değişkenlerin
değiştirilmiş. Bu, "s///" nin belirli optimizasyonları atlamasını sağlar. Perl'in kendi düzenli
ifade motoru, bu bayrağı $REGMARK ayarlayan özel geri izleme fiilleri için ayarlar.
ve $REGERROR.

· Sözlüksel pedlere erişim için API'ler önemli ölçüde değişti.

"PADLIST"ler artık daha uzun "AV"ler, bunun yerine kendi türleri. "PADLIST"ler artık bir
Ped ve liste için "AV"ler yerine "PAD" ve "PADNAME"lerden oluşan bir "PADNAMELIST"
ped isimleri. "PAD"ler, "PADNAMELIST"ler ve "PADNAME"ler şu şekilde erişilebilir:
düz "AV" ve "SV" API'leri yerine yeni eklenen pad API'si. için bkz.
detaylar.

· Normal ifade API'sinde, numaralı yakalama geri aramaları, ne olduğunu gösteren bir dizinden geçirilir.
eşleşme değişkenine erişiliyor. "$`, $&, $&" için özel dizin değerleri vardır.
değişkenler. Daha önce aynı üç değer "${^PREMATCH}'ı almak için kullanılıyordu,
${^MATCH}, ${^POSTMATCH}" da vardır, ancak bunlara artık üç ayrı değer atanmıştır.
Perlreapi'de "Numaralı yakalama geri aramaları" konusuna bakın.

· "PL_sawampersand" daha önce "$`, $&, $&" öğelerinden herhangi birinin
görüldü; şimdi, her birinin varlığını gösteren üç adet bir bitlik bayrak içerir.
değişkenler ayrı ayrı

· "CV *" typemap girişi artık "&{}" aşırı yüklemesini ve typeglob'ları destekliyor, tıpkı
"&{...}" [perl #96872].

· Aşırı yüklemeyi gösteren "SVf_AMAGIC" bayrağı artık nesnede değil, zuladadır. o
artık bir yöntem veya @ISA değiştiğinde otomatik olarak ayarlanır, dolayısıyla anlamı
de değişti. Artık "potansiyel olarak aşırı yüklenmiş" anlamına geliyor. Aşırı yük tablosu olduğunda
hesaplandığında, aşırı yükleme yoksa bayrak otomatik olarak kapatılır, bu nedenle
fark edilir bir yavaşlama olmamalıdır.

Aşırı yükleme yöntemleri çağrıldığında artık aşırı yük tablolarının bayatlığı kontrol ediliyor,
"bless" sırasında değil.

"A" büyüsü gitti. "SVf_AMAGIC" bayrağının işlenmesindeki değişiklikler,
buna ihtiyaç var.

"PL_amagic_generation" artık gerekli olmadığı için kaldırıldı. XS modülleri için
şimdi "PL_na" için bir makro takma adı.

Geri dönüş aşırı yükleme ayarı, artık aşağıdakilerden ayrı bir saklama girişinde depolanıyor
aşırı yüklenmenin kendisi.

· Karakter işleme kodu yer yer temizlendi. Değişiklikler
operasyonel olarak görünmez.

· "Çalışma" işlevi v5.16'da işlemsiz hale getirildi. Bir "dönüş" ile basitçe devre dışı bırakıldı
Beyan; kod yerinde kaldı. Şimdi "çalışmanın" ne olduğunu destekleyen kod
yapmak kaldırıldı.

· Dişli perls altında, artık her COP için ayrılmış ayrı bir PV yoktur.
paket adını ("cop->stashpv") saklayın. Bunun yerine, bir ofset var
("cop->stashoff"), stash işaretçilerini tutan yeni "PL_stashpad" dizisine ekleyin.

· Takılabilir normal ifade API'sinde "regexp_engine" yapısı yeni bir alan elde etti
Şu anda sadece Perl'in dahili kullanımı için olan ve başlatılması gereken "op_comp"
diğer regex eklenti modülleri tarafından NULL'a.

· API'ye yeni bir işlev "alloccopstash" eklendi, ancak kabul edildi
deneysel. Perlapi'ye bakın.

· Perl, get magic'i bazen koddaki hataları gizleyecek şekilde uygulardı.
arayabilir mg_get() büyülü değerlerde çok fazla. Bu hataların gizlenmesi artık
oluşur, bu nedenle uzun süredir devam eden hatalar artık görünür hale gelebilir. Sihirle ilgili hatalar görürseniz
XS kodunda, kullandığı Perl API işlevleriyle birlikte çağırdığından emin olmak için kontrol edin.
mg_get() sadece bir kez SvGMAGICAL() değerleri.

· CV'ler için OP tahsisi artık bir levha tahsiscisi kullanıyor. Bu, bellek yönetimini basitleştirir
CV'ye tahsis edilen OP'ler için, bu nedenle bir derleme hatasından sonra temizlik yapmak daha basittir ve
daha güvenli [perl #111462][perl #112312].

· "PERL_DEBUG_READONLY_OPS", yeni levha ayırıcı ile çalışmak üzere yeniden yazılmıştır,
eskisinden daha fazla ihlal yakalamasına izin veriyor.

· Sadece "PERL_IMPLICIT_SYS" için etkinleştirilen operasyonlar için eski levha ayırıcı ve
"PERL_DEBUG_READONLY_OPS" kullanımdan kaldırıldı.

Seçilmiş Böcek Düzeltmeler


· Burada, belge sonlandırıcılar artık bir sonlandırıcı yeni satır karakterine ihtiyaç duymazlar.
bir dosyanın sonunda oluşur. Bu, bir dize değerlendirmenin sonunda zaten böyleydi
[Perl #65838].

· "-DPERL_GLOBAL_STRUCT" artık global yapıyı serbest bırakıyor sonra kullanmayı bitirdiler
bunu.

· @INC'de bir yol üzerinde sondaki bir '/' artık ek bir '/' ekine sahip olmayacak.

· ":crlf" katmanı artık okunmamış veriler kendi arabelleğine sığmadığında çalışır. [perl
Sayfa #112244].

· "ungetc()" artık UTF-8 ile kodlanmış verileri işliyor. [perl #116322].

· Çekirdek tip haritasındaki bir hata, T_BOOL çekirdek tip haritası girişiyle eşleşen tüm C tiplerine neden oldu.
OUTPUT'ta T_BOOL değişkeni kullanıldığında ayarlanmamalı, güncellenmemeli veya değiştirilmemelidir:
RETVAL için bir istisna dışında bölüm. Bir INPUT: bölümündeki T_BOOL etkilenmedi.
Bir XSUB (RETVAL) için T_BOOL dönüş türünün kullanılması etkilenmedi. Bir yan etkisi
Bu hatayı düzeltmek, OUTPUT: bölümünde bir T_BOOL belirtilmişse (önceki
SV'ye hiçbir şey yapmadı) ve XSUB'a salt okunur bir SV (değişmez) iletildi, croaks
"Salt okunur bir değerin değiştirilmesi denendi" gibi. [perl #115796]

· Birçok platformda, komut dosyası adı olarak bir dizin adı sağlamak, Perl'in yapmasına neden oldu
hiçbir şey ve başarı rapor. Artık evrensel olarak bir hata bildirmeli ve çıkmalıdır
sıfır olmayan. [perl #61362]

· "sıralama {undef} ..." ölümcül uyarılar altında artık çökmez. İçine çökmeye başlamıştı
Perlv5.16.

· Birbirlerine kutsanmış zulalar ("bless \%Foo::, 'Bar'; korusun \%Bar::, 'Foo'") hayır
daha uzun süre çift serbest bırakma ile sonuçlanır. Bu hata Perl v5.16'da oluşmaya başladı.

· Çoğunlukla önemli uyarılar ve sözdizimi içeren çok sayıda bellek sızıntısı düzeltildi
hataları.

· "'f' =~ /../g" gibi bazı başarısız normal ifade eşleşmeleri sıfırlanmıyordu
"poz". Ayrıca, "bir kez eşleşme" desenleri ("m?...?g"), çağrıldığında da onu sıfırlamadı
ikinci kez [Perl #23180].

· Eski MRO önbelleklerine neden olan "yerel *ISA" ve "yerel *Foo::" içeren birkaç hata
sabitlendi.

· Typeglob'a takma ad verildiğinde bir alt yordam tanımlamak artık eskime ile sonuçlanmaz
yöntem önbellekleri. Bu hata Perl v5.10'da tanıtıldı.

· Typeglob'un paketi açıldığında bir alt yordam içeren bir typeglob'un yerelleştirilmesi
üst zulasından silinen artık bir hata üretmiyor. Bu hata tanıtıldı
Perlv5.14.

· Bazı durumlarda, "yerel *yöntem=...", aşağıdaki durumlarda yöntem önbelleklerini sıfırlamada başarısız olur.
kapsam çıkışı.

· "/[.foo.]/" artık bir hata değil, bir uyarı veriyor (önceki gibi) ve işlem görüyor
"/[.fo]/" [Perl #115818] olarak.

· "goto $tied_var" artık ne tür bir goto'ya (alt rutin veya
etiket) bu.

· Paketleri glob ataması ("*Foo:: = *Bar::; *Bar:: = *Baz::") aracılığıyla yeniden adlandırma
"m?...?" ile kombinasyon ve "sıfırlama" artık iş parçacıklı yapıların çökmesine neden olmuyor.

· Hash'e bir liste atamayla ilgili bir takım hatalar düzeltildi. Bunların çoğu
"(1, 1, 1, 1)" gibi tekrarlanan tuşlara sahip listeleri içerir.

· "skaler(%h = (1, 1, 1, 1))" ifadesi artık 4 değil 2 döndürür.

· Liste bağlamında "%h = (1, 1, 1)" dönüş değeri yanlıştı. Daha önce bu
"(1, undef, 1)" döndürürdü, şimdi "(1, undef)" döndürür.

· Perl şimdi "($s, %h) = (1, {})" üzerinde "(%h) = için yaptığı uyarıyı veriyor"
({})", "Çift boyutlu listenin beklendiği yerde referans bulundu".

· Karmalara liste atamasında bir dizi ek Edge durumu düzeltildi. İçin
daha fazla ayrıntı bkz. taahhüt 23b7025ebc.

· Sözcük değişkenlerine uygulanan nitelikler artık bellek sızdırmıyor. [Perl #114764]

· "dökme", "git", "son", "sonraki", "yinele" veya "gerektir" ve ardından bir bareword (veya
sürüm) ve ardından bir infix operatörü artık bir sözdizimi hatası değildir. eskiden
bir terimin olduğu yerde farklı bir anlama sahip olan bu infix operatörleri ("+" gibi)
beklenen. [Perl #105924]

· "a::b .1 gerektirir" ve "a::b + 1 gerektirir" artık hatalı belirsizlik üretmiyor
uyarılar. [perl #107002]

· Sınıf yöntemi çağrılarına artık yalnızca ile başlayan dizelerde değil, herhangi bir dizede izin verilmektedir.
bir alfanümerik karakter. [perl #105922]

· "m///"de kullanılan "qr//" ile oluşturulan boş bir kalıp artık "boş" ifadesini tetiklemiyor.
kalıp, son kalıbı yeniden kullanır" davranışı. [Perl #96230]

· Yineleme sırasında bir karma bağlamak artık bir bellek sızıntısına neden olmuyor.

· Yineleme sırasında bağlı bir hash'i serbest bırakmak artık bir bellek sızıntısına neden olmaz.

· MAĞAZA'da ölen bağlı bir diziye veya karmaya liste ataması artık
bellek sızıntısı.

· İpucu karması ("%^H") bağlıysa, derleme zamanı kapsam girişi (ipucu kopyalar
hash) FETCH ölürse artık bellek sızdırmaz. [perl #107000]

· Sürekli katlama artık özel "bölünmüş " "" davranışını uygunsuz şekilde tetiklemiyor.
[perl #94490]

· "tanımlı skaler(@array)", "tanımlı do { &foo }" ve benzer yapılar artık
basit bir skaler olarak "tanımlı" argümanı. [Perl #97466]

· *DB::DB glob tanımlamayan veya bir alt yordam saplaması sağlayan özel bir hata ayıklama çalıştırma
&DB::DB için artık bir kilitlenme değil, bunun yerine bir hatayla sonuçlanıyor. [perl #114990]

· "reset """ artık dokümantasyonuyla eşleşiyor. "sıfırla" yalnızca "m?...?" desenler ne zaman
tartışmasız çağrılır. Bir argüman için boş bir dize artık hiçbir şey yapmaz. (Kullandı
bağımsız değişken olarak ele alınmamalıdır.) [Perl #97958]

· "printf", boş bir liste döndüren bir argümanla artık listenin sonunu okumuyor
yığın, düzensiz davranışa neden olur. [Perl #77094]

· "--subname" artık hatalı belirsizlik uyarıları üretmiyor. [perl #77240]

· "v10"a artık etiket veya paket adı olarak izin veriliyor. Bu yanlışlıkla kırıldığında
Perl v5.6'da v-string'ler eklendi. [perl #56880]

· "uzunluk", "pos", "substr" ve "sprintf", bağ, aşırı yükleme,
referanslar ve typeglob'lar, eğer bunların dizilmesi dahili olarak değiştiyse
UTF-8'e veya UTF-114410'den temsil. [Perl #XNUMX]

· utf8::encode artık bağlı değişkenlerde FETCH ve STORE çağırıyor. utf8::decode şimdi çağrılar
MAĞAZA (zaten FETCH'i çağırıyordu).

· "$tied =~ s/$non_utf8/$utf8/", bağlı değişken dönerse artık sonsuz döngüye girmiyor
bir Latin-1 dizesi, paylaşılan karma anahtar skaleri veya şu şekilde dizeleyen başvuru veya typeglob
ASCII veya Latin-1. Bu, v5.12'den bir gerilemeydi.

· /e olmadan "s///" artık belirli bir şeyden ne zaman vazgeçmesi gerektiğini algılamada daha iyi
optimizasyonlar, bazı hatalı durumların düzeltilmesi:

· Değişkenleri belirli yapılarda ("&&", "||", ".." ve diğerleri) eşleştirin.
yedek parça; örneğin, "s/(.)/$l{$a||$1}/g". [Perl #26986]

· Değiştirmedeki değişkenleri eşleştirmek için takma adlar.

· Değiştirmede $REGERROR veya $REGMARK. [perl #49190]

· Son başarılı kalıbın kullanılmasına neden olan boş bir kalıp ("s//$foo/"),
bu model, içindeki değişkenleri değiştiren kod blokları içerdiğinde
yedek.

· Değiştirilen ipin kusurluluğu artık ipin kusurluluğunu etkilemiyor.
"s///e" dönüş değeri.

· $| autoflush değişkeni, gerektiğinde anında oluşturulur. Bu olduysa (örn.
bir modülde veya değerlendirmede belirtilmişse) halihazırda seçili kütük tanıtıcısı bir
boş bir IO yuvası olan typeglob, çöküyordu. [Perl #115206]

· Bir dize değerlendirmenin sonundaki satır numaraları artık birer birer kapalı değildir. [Perl #114658]

· $_ öğesini bir kopyaya ayarlayan @INC filtreleri (@INC içindeki altyordamlar tarafından döndürülen altyordamlar)
skaler yazmak artık ayrıştırıcının bu dize arabelleğini yerinde değiştirmesine neden olmaz.

· "uzunluk($nesne)" artık nesnenin dizesi varsa tanımsız değeri döndürmez
undef döndüren aşırı yükleme. [Perl #115260]

· Yöntem çağrıları için saklama adı arama önbelleği olan "PL_stashcache" kullanımı
restore

Ağustos 6'de da625b78f5f133f2011 taahhüdü, yanlışlıkla görünen kodu kırdı
"PL_stashcache" içindeki değerler. Tek bir önbellek olduğu için, her şey oldukça doğru bir şekilde devam etti
onsuz çalışmak.

· "Bir referans yoluyla yerelleştirilemiyor" hatası, "yerel
Bir değer alt rutininin son satırında %$ref" göründü.
Perl v5.8.1'de "\local %$ref". Şimdi restore edildi.

· Burada belgelerin ayrıştırılması önemli ölçüde iyileştirildi, birkaç ayrıştırma hatası düzeltildi
ve çökmeler ve bir bellek sızıntısı ve altındaki yanlış sonraki satır numaralarını düzeltme
belirli koşullar.

· Bir değerlendirmenin içinde, sonlandırılmamış bir burada-belge için hata mesajında ​​artık yeni bir satır yok
ortasında [Perl #70836].

· Bir ikame modeli ("s/${s|||}//") içindeki bir ikame artık
ayrıştırıcı.

· Yorumlara izin vermek için garip bir yer olabilir, ancak "s//"" # merhaba/e" her zaman işe yaramıştır,
olmadıkça ilk #'den önce bir boş karakter olur. Şimdi bile çalışıyor
sıfırların varlığı.

· "tr///" veya "y///" içindeki geçersiz bir aralık artık bellek sızıntısına neden olmaz.

· Dize değerlendirme artık en sonunda noktalı virgülle ayrılmış alıntı benzeri bir işleci ele almıyor
("eval 'q;;'") bir sözdizimi hatası olarak.

· "uyar {$_ => 1} + 1" artık bir sözdizimi hatası değil. Ayrıştırıcının kafası karışırdı
belirli liste operatörleri, ardından anonim bir karma ve ardından bir infix operatörü ile
biçimini tekli bir operatörle paylaşan.

· Gerçek ayrıştırıcıyı döndürmek için kullanılan "(arayan $n)[6]" (değerlendirme metnini verir)
tampon. Bunu değiştirmek çökmelere neden olabilir. Şimdi her zaman bir kopya döndürür. bu
döndürülen dize artık "\n;" içermiyor sonuna kadar takıldı. Döndürülen metin de
eskiden atlanmış olan burada-belge gövdelerini içerir.

· UTF-8 konum önbelleği artık sihirli değişkenlere erişirken sıfırlanıyor,
dize arabelleği ve UTF-8 konum önbelleğinin senkronizasyondan çıkması [Perl #114410].

· Büyülü UTF-8 dizeleri için iki kez büyü çağrılmasına ilişkin çeşitli durumlar
düzeltildi.

· Bu kod ($& vb'nin bulunmadığı durumlarda)

$_ = 'x' x 1_000_000;
1 süre /(.)/;

performans nedenleriyle arabellek kopyasını atlamak için kullanılır, ancak 1 ABD doları vb.
orijinal dize değiştiyse değişiyor. Bu artık düzeltildi.

· PerlIO'nun yapabileceği gibi, Perl artık bellek yetersiz mesajlarını bildirmek için PerlIO'yu kullanmıyor
daha fazla bellek ayırmaya çalışın.

· Normal bir ifadede, bir şey "n > m" olmak üzere "{n,m}" ile ölçülürse,
muhtemelen eşleşemez. Önceden bu ölümcül bir hataydı, ancak şimdi sadece bir uyarı
(ve bir şey eşleşmeyecek). [Perl #82954].

· Daha sonra alt programlarda tanımlanan formatlar için eskiden mümkündü.
yanlış pad'deki değişkenleri kapatmak için tanımsız ve yeniden tanımlanmış (yeni tanımlanmış
alt dahil), çökmelere veya "Tuhaf kopya" hatalarına neden olur.

· Çalışma zamanında XSUB'ların yeniden tanımlanması, yanlış satır numarasıyla uyarılar üretebilir.

· %vd sprintf biçimi, alfa sürümleri için sürüm nesnelerini desteklemez. Kullandı
bir alfa sürümü geçirildiğinde biçimin kendisinin (%vd) çıktısını almak ve ayrıca bir
"printf'te geçersiz dönüştürme" uyarısı. Artık yapmıyor, ama boş üretiyor
çıktıdaki dize. Ayrıca bu durumda artık bellek sızdırmıyor.

· Ana paketteki "$obj->SUPER::method" çağrıları, SÜPER paketin
zaten başka yollarla erişildi.

· Saklama takma ("*foo:: = *bar::") artık SÜPER çağrıların değişiklikleri yok saymasına neden olmuyor
yöntemler veya @ISA veya yanlış paketi kullanın.

· Adları ::SUPER ile biten paketlerdeki yöntem çağrıları artık SÜPER olarak kabul edilmiyor
yöntem çağrıları, yöntemin bulunamamasına neden olur. Ayrıca, tanımlama
bu tür paketlerdeki alt programlar artık SÜPER yöntem çağrıları tarafından bulunmalarına neden olmaz
içeren pakette [Perl #114924].

· "\w" artık U+200C (ZERO WIDTH NON-JOINER) ve U+200D (ZERO WIDTH) kod noktalarıyla eşleşiyor
MARANGOZ). "\W" artık bunlarla eşleşmiyor. Bu değişiklik, Unicode'un düzeltilmesinden kaynaklanmaktadır.
"\w"nin neyle eşleşmesi gerektiğine ilişkin tanımları.

· "Dump LABEL" artık etiketini sızdırmıyor.

· Sürekli katlama artık "stat()" gibi işlevlerin davranışını değiştirmiyor ve
Dosya adlarını veya tanıtıcıları alabilen "truncate()". "stat 1 ? foo : bar" şimdi
argümanını bir dosya adı olarak ele alır (çünkü keyfi bir ifadedir),
kolu "foo".

· "FOO'yu kes, $len" artık "FOO"yu bir dosya adı olarak ele almaya geri dönmüyor.
dosya tanıtıcısı silindi. Bu, Perl v5.16.0'da bozuldu.

· Alt küreye ve küreden küreye atamalardan sonra alt rutin yeniden tanımlamaları artık yok
çift ​​serbest bırakmaya veya panik mesajlarına neden olur.

· "s///" artık bir değiştirme gerçekleştirirken vstring'leri düz dizelere dönüştürüyor.
sonuçtaki dize aynıdır ("s/a/a/").

· Prototip uyuşmazlığı uyarıları artık hatalı bir şekilde sabit alt öğelerin
aslında "" sahip olduklarında prototip.

· Sabit alt programlar ve ileri bildirimler artık prototip uyumsuzluğunu engellemiyor
alt adın atlanmasıyla ilgili uyarılar.

· Bir alt programdaki "undef" artık arama kontrollerini temizliyor.

· "ref" operatörü, Perl v5.16.0'da kutsanmış nesnelerde bellek sızdırmaya başladı. Bu
[Perl #114340] düzeltildi.

· "use" artık argümanlarını bir ifade olarak ayrıştırmaya çalışmaz ve "use sabiti { () yapar
};" bir sözdizimi hatası [Perl #114222].

· Yapıların hata ayıklamasında, biçimlerin içindeki "başlatılmamış" uyarılar artık onaya neden olmuyor
başarısızlıkların.

· Yapıların hata ayıklamasında, biçimlerin içine yerleştirilmiş alt rutinler artık onaya neden olmuyor
başarısızlıklar [Perl #78550].

· Biçimler ve "kullanım" ifadelerine artık biçimlerin içinde izin verilmektedir.

· "print $x" ve "sub { print $x }->()" artık her zaman aynı çıktıyı üretir. Öyleydi
değişken aktif değilse, ikincisinin $x'i kapatmayı reddetmesi mümkündür;
örneğin, şu anda çalışmakta olan bir adlandırılmış alt rutinin dışında tanımlanmışsa.

· Benzer şekilde, "print $x" ve "print değerlendirme '$x'" artık aynı çıktıyı üretir. Bu da
"my $x if 0" değişkenlerinin hata ayıklayıcıda görülmesine izin verir [Perl #114018].

· Özyinelemeli olarak adlandırılan biçimler artık kendi sözcük değişkenleri üzerinde durmazlar, ancak her biri
özyinelemeli çağrının kendi sözlükleri vardır.

· Etkin bir formatı veya onunla ilişkili tutamacı serbest bırakmaya çalışmak artık sonuç vermiyor
bir kazada.

· Biçim ayrıştırma artık kaşlı ayraçlar, noktalı virgüller ve düşük öncelik ile karıştırılmıyor
operatörler. Eskiden parantezleri biçim sınırlayıcı olarak kullanmak mümkündü ("=" yerine
ve "."), ancak yalnızca bazen. Biçimde noktalı virgül ve düşük öncelikli işleçler
argüman satırları artık ayrıştırıcıyı satırın dönüş değerini yok sayarak karıştırmıyor. İçinde
argüman satırlarını biçimlendirin, parantezler artık isimsiz karmalar için kullanılabilir.
her zaman "yap" blokları olarak ele alınır.

· Formatlar artık normal ifadelerde ve diğer alıntılarda kod bloklarının içine yerleştirilebilir
yapılar ("/(?{...})/" ve "qq/${...}/") [perl #114040].

· Derleme hatalarından sonra formatlar artık oluşturulmaz.

· Hata ayıklama yapıları altında, -Da komut satırı seçeneği Perl v5.16.0'da çökmeye başladı.
Düzeltildi [Perl #114368].

· Sahte çatallı bir işlemin zamanından önce sonlandırılmasını içeren olası bir kilitlenme senaryosu
ithreads etkinleştirilmiş bir Windows yapısındaki çocuk düzeltildi. Bu sorunu çözer
ortak sorunu t/op/fork.t Windows'ta asılı test [Perl #88840].

· "require()"dan hatalar üreten kod, potansiyel olarak bir veya iki tanesini okuyabilir.
üç bayttan daha kısa dosya adları için dosya adının başlangıcından önce bayt ve
"/\.p?\z/" ile biten. Bu şimdi düzeltildi. Bunun asla olamayacağına dikkat edin
yine de "use()" veya "require()" için verilen modül adlarıyla.

· "require()" işlevine verilen modüllerin yol adlarının işlenmesi, üzerinde iş parçacığı için güvenli hale getirildi.
sanal makine

· VMS üzerinde bloke olmayan soketler düzeltildi.

· Pod artık bir dizge değerlendirmenin dışında alıntılanan bir yapı içinde kod içinde yuvalanabilir.
Bu, yalnızca dize değerlendirmeleri [Perl #114040] içinde çalışırdı.

· "goto ''" artık boş bir etiket arıyor ve "goto olmalıdır" hatası veriyor
mesaj, programdan çıkmak yerine [Perl #111794].

· "\0"a git" artık "etiket olmalı" yerine "etiket bulunamıyor" ile ölüyor.

· "hv_store" C işlevi, "%^H" [perl #111000] üzerinde kullanıldığında çökmelere neden oluyordu.

· "cv_set_call_checker" aracılığıyla bir kapatma prototipine eklenen bir çağrı denetleyicisi artık kopyalandı
ondan klonlanan kapaklara. Yani "cv_set_call_checker" artık bir öznitelik içinde çalışıyor
bir kapatma için işleyici.

· Eskiden $^N'ye yazmanın bir etkisi yoktu. Şimdi "Bir okumanın değiştirilmesi-
yalnızca değer" varsayılan olarak, ancak bu, özel bir normal ifadeyle geçersiz kılınabilir
motor, $1 [Perl #112184] ile olduğu gibi.

· bir kontrol karakteri küresindeki "undef" ("undef *^H") artık hatalı bir uyarı vermiyor
belirsizlik hakkında [Perl #112456].

· Verimlilik adına, birçok operatör ve yerleşik işlev aynı skaleri döndürür
her seferinde. CORE:: ad alanındaki değer alt yordamları ve alt yordamları izin veriyordu
Bu uygulama detayını sızdırmak için. "print &CORE::uc("a"), &CORE::uc("b")"
"BB" yazdırmak için kullanılır. Aynı şey, bir değer alt yordamının geri dönmesiyle de olur.
"uc" dönüş değeri. Şimdi bu gibi durumlarda değer kopyalanır.

· "yöntem {}" sözdizimi, boş bir blok veya kullanılan boş bir listeyi döndüren bir blok ile
çökebilir veya yığında kalan rastgele bir değeri çağırıcı olarak kullanın. Şimdi bir üretir
hata.

· "vec" artık son derece büyük ofsetlerle (>2 GB) çalışıyor [perl #111730].

· Aşırı yükleme ayarlarında yapılan değişiklikler ve kalıtımdaki değişiklikler artık hemen yürürlüğe giriyor
aşırı yüklenmeyi etkiler. Eskiden ancak "hayırlı olsun"dan sonra yürürlüğe girerlerdi.

Bir sınıftan önce oluşturulan nesneler, herhangi bir aşırı yüklemeye sahip değillerdi.
sınıf "aşırı yüklemeyi kullan" veya @ISA yoluyla aşırı yükleme kazanmış olsa bile aşırı yüklendi
değişiklikler ve hatta "bless" sonra. Bu düzeltildi [Perl #112708].

· Aşırı yüklemeli sınıflar artık geri dönüş değerlerini devralabilir.

· Aşırı yüklenmiş nesneler varsa, aşırı yükleme 0'lık bir geri dönüş değerine uymuyordu
"+=" [Perl #111856] gibi bir atama operatörünün her iki tarafında.

· "pos" artık hatalı üretmek yerine karma ve dizi argümanlarıyla titriyor
uyarılar.

· "while(each %h)" artık "while(defined($_ = her %h))" anlamına geliyor, "readline" gibi ve
"readdir".

· CORE'daki Sub'lar:: no ile çağrıldığında "undef *_" sonrasında ad alanı artık kilitlenmiyor
argüman listesi (&CORE::parantezsiz zaman).

· "unpack" artık "'/' unpack'te sayısal bir tür izlemeli" hatası üretmiyor
hatalı olan veridir [Perl #60204].

· "join" ve "@array" artık bağlı bir $" [perl #8931] üzerinde FETCH'i yalnızca bir kez çağırır.

· Bir "CORE::GLOBAL" tarafından etkilenen çekirdek operasyonların derlenmesiyle oluşturulan bazı alt program çağrıları
geçersiz kılma işlemi iki kez op denetimi gerçekleştirdi. Kontrol her zaman saf için önemsizdir
Perl kodu, ancak özel çağrı denetleyicileri söz konusu olduğunda çift kontrol önemli olabilir.

· Çatal çevresinde eskiden var olan ve çatala bir sinyal gönderilmesine neden olabilecek bir yarış durumu mevcuttu.
ebeveyn hem ebeveyn hem de çocuk tarafından ele alınmalıdır. Sinyaller artık kısa süreliğine engellendi
Bunun olmasını önlemek için fork [Perl #82580].

· "(?{})" gibi normal ifadelerde kod bloklarının uygulanması ve
"(??{})", bir dizi hatayı ortadan kaldırmak için yoğun bir şekilde elden geçirildi. ana kullanıcı-
görünür değişiklikler şunlardır:

· Kalıplar içindeki kod blokları artık çevreleyen ile aynı geçişte ayrıştırılıyor
kod; özellikle artık dengeli diş tellerine sahip olmak gerekli değildir: bu şimdi
çalışır:

/(?{ $x='{' })/

Bu, bu hata mesajının artık oluşturulmadığı anlamına gelir:

Sıra (?{...}) sonlandırılmadı veya normal ifadede {}-dengeli değil

ancak yeni bir hata görülebilir:

Sıra (?{...}) ')' ile sonlandırılmadı

Ayrıca, çalışma zamanı kalıpları içindeki değişmez kod blokları yalnızca bir kez derlenir,
perl derleme zamanında:

benim $p için (...) {
# bu 'FOO' kod bloğu bir kez derlenir,
# çevreleyen 'for' döngüsüyle aynı anda
/$p{(?{FOO;})/;
}

· Sözcüksel değişkenler artık kapsam, özyineleme ve kapatma davranışı açısından mantıklıdır.
Özellikle, "/A(?{B})C/" (kapanış açısından) tam olarak "/A/" gibi davranır.
&& do { B } && /C/", "qr/A(?{B})C/" ise "sub {/A/ && do { B } && /C/}" gibidir.
Yani bu kod şimdi beklediğiniz gibi çalışıyor, 0 ile eşleşen üç normal ifade oluşturuyor,
1 ve 2:

benim $i için (0..2) {
@r, qr/^(??{$i})$/;
}
"1" =~ $r[1]; # maçlar

· "Yeniden 'değerlendirme' kullan" pragması artık yalnızca şu adreste tanımlanan kod blokları için gereklidir:
Çalışma süresi; özellikle aşağıda, $r modelinin metni hala
yeni kalıba enterpolasyon yapıldı ve yeniden derlendi, ancak birey derlendi
$r içindeki kod blokları yeniden derlenmek yerine yeniden kullanılır ve "yeniden değerlendirmeyi kullan"
artık gerekli değil:

benim $r = qr/abc(?{....})def/;
/xyz$r/;

· Akış kontrol operatörleri artık kilitlenmiyor. Her kod bloğu yeni bir dinamikte çalışır.
kapsam, bu nedenle "sonraki" vb. herhangi bir çevreleyen döngü görmeyecektir. "dönüş" bir değer döndürür
kod bloğundan, herhangi bir ek alt programdan değil.

· Perl normalde çalışma zamanı kalıplarının derlenmesini önbelleğe alır ve yeniden derlemez
desen değişmediyse, ancak bu şimdi gerekirse devre dışı bırakılır.
kapanışların doğru davranışı. Örneğin:

benim $kodum = '(?{$x})';
benim $x için (1) {
# her seferinde yeni $x değerini görmek için yeniden derleyin
$x =~ /$kod/;
}

· "/msix" ve "(?msix)" vb. bayrakları artık dönüş değerine yayılıyor
"(??{})"; bu şimdi çalışıyor:

"AB" =~ /a(?{'b'})/i;

· Uyarılar ve hatalar, çevreleyen koddan (veya çalışma zamanı için) geliyor gibi görünecektir.
kod blokları, bir "re_eval" yerine bir değerlendirmeden):

yeniden 'değerlendirme' kullanın; $c = '(?{uyar "foo" })'; /$c/;
/(?{ "foo" uyar })/;

daha önce verdi:

foo (re_eval 1) satır 1'de.
foo (re_eval 2) satır 1'de.

ve şimdi verir:

foo (değerlendirme 1) satır 1'de.
foo /some/prog satırında 2.

· Perl artık herhangi bir Unicode sürümünü kullanmak için yeniden derlenebilir. v5.16'da üzerinde çalıştı
Unicode 6.0 ve 6.1, ancak önceki sürümler kullanılmışsa çeşitli hatalar vardı; en
sürüm ne kadar eski olursa, o kadar fazla sorun olur.

· "vec" artık değer bağlamında [perl #9423] "başlatılmamış" uyarılar üretmiyor.

· Düzenli ifadelerde sabit dizeleri içeren bir optimizasyon ciddi sorunlara neden olabilir.
Edge durumlarda performans cezası. Bu düzeltildi [Perl #76546].

· Belirli durumlarda, normal bir ifade içindeki boş alt kalıplar dahil (örn.
"(?:)" veya "(?:|)") bazı optimizasyonları devre dışı bırakabilir. Bu düzeltildi.

· Bir dize geçirildiğinde "prototip"in ürettiği "Opnumber bulunamıyor" mesajı
"CORE::nonexistent_keyword" gibi artık UTF-8'i ve gömülü NUL'leri değişmeden geçiyor
[Perl #97478].

· "prototip" artık $1 gibi sihirli değişkenleri sihirli olmayan değişkenlerle aynı şekilde ele alıyor
CORE:: önekini kontrol ederken, onları alt program adları olarak ele almak yerine.

· İş parçacıklı perls altında, normal bir ifadedeki bir çalışma zamanı kod bloğu,
op ağacında saklanan paket adı, "arayan" da hatalı okumalara neden olur ve muhtemelen
çöküyor [Perl #113060].

· Bir kapatma prototipine atıfta bulunma ("\&{$_[1]}" bir kapatma için öznitelik işleyicide) hayır
daha uzun süre alt yordamın bir kopyası ile sonuçlanır (veya hata ayıklamada onaylama hataları
yapıları).

· "eval '__PACKAGE__'", eğer mevcut
paket atandı ("*ThisPackage:: = *ThatPackage::" örneğindeki gibi) [perl
Sayfa #78742].

· Bir paket, aradığı kodla silinirse, "arayanın" bir
silinen pakete ait yığın çerçevesi. zula varsa "arayan" çökebilir
bellek adresi bir skaler için yeniden kullanıldı ve aynı adreste bir ikame yapıldı
skaler [perl #113486].

· "UNIVERSAL::can" artık ilk argümanına farklı bir şekilde davranmıyor.
dahili olarak bir dize veya sayıdır.

· Üçüncü argümanın bir sayı olup olmadığını kontrol etmek için mod kontrolleri için "<&" ile "aç",
bir dosya tanıtıcısı mı yoksa bir tanıtıcı adı olarak mı ele alınacağını belirleme. Büyülü
$1 gibi değişkenler her zaman sayısal kontrolde başarısız oluyor ve tutamaç olarak kabul ediliyordu.
isimler.

· "uyar"ın sihirli değişkenleri ($1, bağ) ele alışı birkaç düzeltmeden geçti.
"FETCH" artık bağlı bir argümanda veya bağlı bir $@ [Perl #97480] üzerinde yalnızca bir kez çağrılıyor. bağlı
"" olarak dizgilenen nesneleri döndüren değişkenler artık yok sayılmıyor. Bağlı bir $@
bir referans döndürmek için oldu önceki Kullanıldığı zaman artık yok
görmezden geldi.

· "uyar """, artık $@'a bir sayı ile aynı şekilde davranır, ne olursa olsun
"$@=3" veya "$@="3"" yoluyla oldu. Eskiden görmezden geliyordu. Şimdi ekler
"\t...yakalandı", her zaman olduğu gibi "$@="3"".

· Kayan nokta kullanmak için kullanılan sihirli değişkenler (örneğin, "$1 + 1") üzerindeki sayısal operatörler
tamsayılı işlemlerin daha uygun olduğu durumlarda bile işlemler
64 bit platformlarda doğruluk [Perl #109542].

· Tekli olumsuzlama, dize kullanılmışsa artık bir dize sayı olarak ele almıyor
bir noktada bir sayı olarak. Dolayısıyla, $x "dogs" dizesini içeriyorsa, "-$x" döndürür
"$y=0+$x" bir noktada gerçekleşmiş olsa bile "-dogs".

· Perl v5.14'te "-'-10'", "+10" yerine "10" döndürecek şekilde düzeltildi. Ama sihirli değişkenler
(1$ bağ) şimdiye kadar sabitlenmedi [Perl #57706].

· Tekli olumsuzlama artık dahili "UTF8"den bağımsız olarak dizeleri tutarlı bir şekilde ele alıyor
bayrağı.

· Perl v5.16.0'da tanıtılan "tr/ARAMA LİSTESİ/DEĞİŞTİRMELİSTESİ/" vardır
sabitlendi. Bir karakter varsa, yalnızca ilk örneğin anlamlı olması gerekir.
" içinde birden fazla kez görünürARAMA LİSTESİ". Bazı durumlarda, son durum
öncekilerin hepsini geçersiz kılıyordu. [perl #113584]

· "qr/\87/" gibi düzenli ifadeler önceden sessizce bir NUL karakteri eklemiştir, bu nedenle
"qr/\00087/" yazılmış gibi eşleşiyor. Şimdi sanki eskisi gibi eşleşiyor
"qr/87/" olarak yazılır ve "\8" dizisinin tanınmadığı mesajını verir.

· "__SUB__" artık özel bloklarda ("BEGIN", "END" vb.) çalışıyor.

· Windows'ta iş parçacığı oluşturma, bir bilgisayar içinde yapılırsa teorik olarak çökmeye neden olabilir.
"BAŞLA" bloğu. Hala düzgün çalışmıyor, ancak artık çökmüyor [Perl
Sayfa #111610].

· "\&{''}" (boş dizeyle birlikte) artık herhangi bir alt ad gibi bir saplamayı otomatik olarak canlandırıyor ve
artık "Alt oluşturulamıyor" hatası [Perl #94476] üretmiyor.

· v5.14.0'da tanıtılan ve bazı "yeniden" çağrılarının yapıldığı bir regresyon düzeltildi.
modül $_ [Perl #113750]'yi engelleyecektir.

· "do FILE" artık dosya okunamasa bile $@'ı ayarlar veya temizler. Bu
önce $@ testinin (belgeler tarafından önerildiği gibi) her zaman
doğru sonuç.

· "each @array" yapısı için kullanılan dizi yineleyici, şu durumlarda doğru şekilde sıfırlanır:
@array temizlendi [Perl #75596]. Bu, örneğin dizi global olduğunda olur.
"@array = (...)" örneğinde olduğu gibi atanır, ancak değerlerimiz atanırlar. açısından
XS API'si, "av_clear()" öğesinin şimdi yineleyiciyi sıfırlayacağı anlamına gelir.

Bu, karma temizlendiğinde karma yineleyicinin davranışını yansıtır.

· "$class->can", "$class->isa" ve "$class->DOES" artık doğru sonuçları döndürüyor,
$class tarafından belirtilen paketin var olup olmadığına bakılmaksızın [Perl #47113].

· Gelen sinyaller artık $@ [perl #45173]'ü temizlemiyor.

· Boş bir değişken listesi [perl #113554] ile "benim ()" bildirimlerine izin verin.

· Ayrıştırma sırasında, hatalardan sonra bildirilen aboneler artık saplama bırakmaz [Perl #113712].

· Dize değerlendirme içermeyen kapanışlar, artık içeren alt programlarına bağlı değildir,
dış alt rutinler tarafından kapatılan değişkenlerin, dış alt program tarafından serbest bırakılmasına izin verilmesi
serbest bırakıldı, iç alt hala mevcut olsa bile [Perl #89544].

· Bellek içi dosya tanıtıcılarının "<&=" veya ">&=" moduyla açılarak çoğaltılması durduruldu
v5.16.0'da düzgün çalışıyor. Yeni tanıtıcının farklı bir referans vermesine neden oluyordu.
skaler değişken. Bu düzeltildi [Perl #113764].

· "qr//" ifadeleri artık özel normal ifade motorlarıyla kilitlenmiyor.
normal ifade derleme zamanında "kapalıları" ayarlayın [Perl #112962].

· "yerel silme" artık belirli sihirli diziler ve karmalarla çökmüyor [perl
Sayfa #112966].

· belirli sihirli dizilerin öğelerinde "yerel" ve sahip olmak için düzenlememek için kullanılan karmalar
öğe "yerel"den önce mevcut olmasa bile kapsam çıkışında silinen öğe.

· "skaler(yaz)" artık birden çok öğe döndürmüyor [perl #73690].

· Dizeden kayan noktaya dönüşümler artık "kullanım" altındaki belirli dizeleri yanlış ayrıştırmıyor
yerel ayar" [Perl #109318].

· Ölen @INC filtreleri artık bellek sızdırmıyor [perl #92252].

· Aşırı yüklenmiş işlemlerin uygulamaları artık doğru bağlamda çağrılmaktadır.
Bu, diğer şeylerin yanı sıra, "<>" [perl #47119] öğesinin düzgün bir şekilde geçersiz kılınabilmesini sağlar.

· "Aşırı yüklemeyi kullan" çağrılırken yalnızca "yedek" tuşunun belirtilmesi artık doğru şekilde davranıyor
[Perl #113010].

· "sub foo { my $a = 0; while ($a) { ... } }" ve "sub foo { while (0) { ... } }" şimdi
aynı şeyi [Perl #73618] döndür.

· Dize olumsuzlaması artık "integer kullan" altında aynı şekilde davranır; [Perl olmadan olduğu gibi
Sayfa #113012].

· "chr" artık -1 yerine Unicode değiştirme karakterini (U+FFFD) döndürür, ne olursa olsun
iç temsil. -1, bağımsız değişkenin bağlı olup olmadığını veya bir dize olup olmadığını sarmak için kullanılır
içten.

· Çevreleyen alt öğesi serbest bırakıldıktan sonra bir "biçim" kullanmak, aşağıdaki durumlarda Perl v5.12.0'dan itibaren çökebilir:
biçim, dış alttan sözcüksel değişkenlere başvurur.

· Çevreleyen alt tanımsız olduktan sonra bir "biçim" kullanmak, Perl v5.10.0'dan itibaren çökebilir,
biçim, dış alttan sözcüksel değişkenlere başvuruyorsa.

· Bir kapak içinde tanımlanmış bir "biçim"in kullanılması, biçim sözcüksel değişkenlere başvurur
dışarıdan, "yazma" çağrısı doğrudan içinde olmadıkça gerçekten işe yaramadı
kapatma. v5.10.0'da bile çökmeye başladı. Şimdi bu kapanışın kopyası en yakın
bu değişkenleri bulmak için çağrı yığınının üstü kullanılır.

· Özel bloklardaki değişkenleri kapatan formatlar artık bir saplama varsa çökmüyor
özel blok derlenmeden önce özel blokla aynı ada sahip.

· Ayrıştırıcı artık karışmıyor, "eval foo ()" ifadesini aşağıdaki durumlarda bir sözdizimi hatası olarak değerlendiriyor:
önünde "yazdır;" [Perl #16249].

· "syscall"ın dönüş değeri artık 64-bit platformlarda kesilmiyor [perl
Sayfa #113980].

· Sürekli katlama artık "baskı 1 ? FOO : BAR"ın FOO tutamağına yazdırmasına neden olmuyor
[Perl #78064].

· "alt ad yap" artık adlandırılmış alt yordamı çağırır ve bunun yerine döndürdüğü dosya adını kullanır
"alt ad" adlı bir dosyayı açma.

· rv2cv kontrol kancaları (XS modülleri tarafından kayıtlı) tarafından aranan alt rutinler artık alınmıştır
"foo bar" ın alt çağrı olup olmayacağını belirlerken dikkate alınır
"foo(bar)" veya ""bar"->foo" yöntem çağrısı.

· "CORE::foo::bar" artık özel olarak ele alınmıyor ve genel geçersiz kılmaların yapılmasına izin veriyor.
doğrudan "CORE::GLOBAL::uc(...)" [Perl #113016] aracılığıyla çağrılır.

· Typeglob'u tanımsız olan tanımsız bir alt çağırmak artık alışılmış olanı üretir.
"Kod referansı değil" yerine "tanımsız alt yordam çağrıldı" hatası.

· @ISA'yı içeren iki hata düzeltildi. "*ISA = *glob_without_array" ve "undef"
*ISA; @{*ISA}", gelecekte @ISA'da yapılacak değişikliklerin dahili
yöntemleri aramak için kullanılan önbellekler. *glob_without_array durumu,
Perlv5.12.

· Düzenli ifade optimizasyonları bazen "/m" ile "$" ifadesinin başarısız olmasına veya
yanlış eşleşmeler [Perl #114068].

· "__SUB__", ekteki alt program önceden bildirildiğinde artık bir "sıralama" bloğunda çalışıyor
"alt foo" ile; sözdizimi [Perl #113710].

· Unicode özellikleri yalnızca Unicode kod noktaları için geçerlidir, bu da bazı inceliklere yol açar
normal ifadeler yukarıdaki Unicode kod noktalarıyla eşleştirildiğinde. Var
Dikkatinizi buna çekmek için uyarı oluşturuldu. Ancak bu uyarı yapılıyordu.
bir program ayrıştırılırken olduğu gibi bazı durumlarda uygun olmayan şekilde oluşturulur.
"\w" ve "[:word:]" gibi Unicode olmayan eşleşmeler uyarıyı oluşturmamalıdır, çünkü
tanımları onları yalnızca Unicode kod noktalarına uygulanacak şekilde sınırlamaz. Şimdi
ileti yalnızca "\p{}" ve "\P{}" ile eşleştirildiğinde oluşturulur. bir kalır
hata, [Perl #114148], Unicode'da yalnızca tek bir öğeyle eşleşen çok az özellik için
kod noktası. Yukarıdaki bir Unicode ile eşleştirilirlerse uyarı oluşturulmaz
kod noktası.

· Karma öğelerden bahseden başlatılmamış uyarılar, yalnızca şu durumlarda öğe adından bahseder:
tek tek bir hata nedeniyle karmanın ilk kovasında değildi.

· Bir normal ifade iyileştirici hatası, çok satırlı "^" ifadesinin hatalı davranmasına neden olabilir.
""/\n\n" =~ m#\A(?:^/$)#im" eşleşmeyecek şekilde satır sonlarının varlığı
[Perl #115242].

· Liste bağlamındaki başarısız "çatal" artık yığını bozmuyor. "@a = (1, 2, çatal, 3)"
2'yi silip süpürmek ve "çatal" çağrısı başarısız olursa "(1, undef, 3)" atamak için kullanılır.

· Çoğunlukla ölen bağlı değişkenleri içeren çok sayıda bellek sızıntısı düzeltildi,
normal ifade karakter sınıfları ve kod blokları ve sözdizimi hataları.

· Bir değişkeni tutan bir değişkene normal bir ifade ("${qr//}") atamak
kayan nokta sayısı artık hata ayıklama yapılarında onaylama hatalarına neden olmaz.

· Bir sayı içeren bir skalere normal bir ifade atamak artık
rastgele sayılar üretmek için sonraki numaralandırma.

· Sihirli bir değişkene normal bir ifade atamak artık sihri silmiyor.
Bu, v5.10'dan bir gerilemeydi.

· Kutsanmış bir skalere normal bir ifade atamak artık çökmelere neden olmuyor. Bu
ayrıca v5.10'dan bir gerilemeydi.

· Artık düzleştirme ile bağlı karma ve dizi öğelerine normal ifade atanabilir
dizelere.

· Normal bir ifadeyi numaralandırmak artık başlatılmamış bir uyarıyla sonuçlanmıyor.

· Negatif dizi indeksleri artık bağlı değişkenlerin EXISTS yöntemlerinin yok sayılmasına neden olmuyor.
Bu, v5.12'dan bir gerilemeydi.

· Negatif dizi indeksleri artık nesne olmayanlara bağlı dizilerde çökmelere neden olmuyor.

· "$byte_overload .= $utf8" artık sol taraf için çift kodlanmış UTF-8 ile sonuçlanmıyor
skaler, en son aşırı yükleme başlatıldığında bir UTF-8 dizesi üretmiş oldu.

· "&alt" dizisini kullanmak yerine artık @_'nin geçerli değerini kullanır.
altyordam başlangıçta ile çağrıldı. Bu, şimdi "yerel @_ = (...); &alt'a git" anlamına gelir
çalışır [Perl #43077].

· Bir hata ayıklayıcı özyinelemeli olarak çağrılırsa, artık kendi sözcük dağarcığı üzerinde durmaz.
değişkenler. Eskiden özyineleme altında tüm çağrılar aynı sözcük dizisini paylaşırdı.
değişkenler [Perl #115742].

· Bir alt programdan dönen *_{ARRAY} artık kendiliğinden boş olmuyor.

· Bağlı bir kütüğe yazdırmak için "say" kullanılırken, "$\" değeri doğru
önceden tanımlanmamış olsa bile yerelleştirilmiştir. [Perl #119927]

Bilinen Sorunları


· HP-UX 8'de %ENV'de UTF11.00 işaretli dizeler hatalı

UTF8 işaretli dizeler ve %ENV'nin HP-UX 11.00 üzerindeki etkileşimi şu anda şu anda çok tehlikeli.
Henüz tam olarak teşhis edilmemiş bir yol. Test başarısızlıklarını bekleyin t/op/büyü.t, Ardından
geniş karakterleri ortamda saklarken bilinmeyen davranış.

Ölüm


Güney Kore, Seul'den 24 yaşındaki Hojung Yoon (AMORETTE), 8 Mayıs 2013'te uzun süre dinlenmeye gitti.
lama heykelcik ve imzalı TIMTOADY kartı ile. O parlak bir genç Perl 5 & 6'ydı.
hacker ve Seoul.pm'nin sadık bir üyesi. Perl'i programladı, Perl'le konuştu, Perl'i yedi ve
Perl'i seviyordu. Bozuk IBM dizüstü bilgisayarıyla hala Perl'de programlama yaptığına inanıyoruz.
bir yerde. O özlenecek.

Teşekkür


Perl v5.18.0, Perl v12'dan bu yana yaklaşık 5.16.0 aylık bir geliştirmeyi temsil eder ve
400,000 yazardan 2,100 dosyada yaklaşık 113 satır değişiklik içerir.

Perl, canlı bir kullanıcı topluluğu sayesinde üçüncü on yılında gelişmeye devam ediyor
ve geliştiriciler. Aşağıdaki kişilerin iyileştirmelere katkıda bulunduğu bilinmektedir:
Perl v5.18.0 oldu:

Aaron Crane, Aaron Trevena, Abhijit Menon-Sen, Adrian M. Enache, Alan Haggai Alavi,
Alexandr Ciornii, Andrew Tam, Andy Dougherty, Anton Nikishaev, Aristoteles Pagaltzis,
Augustina Blair, Bob Ernst, Brad Gilbert, Breno G. de Oliveira, Brian Carlson, Brian
Fraser, Charlie Gonzalez, Chip Salzenberg, Chris 'BinGO'lar' Williams, Christian Hansen,
Colin Kuskie, Craig A. Berry, Dagfinn Ilmari Mannsaaker, Daniel Dragan, Daniel Perrett,
Darin McBride, Dave Rolsky, David Golden, David Leadbeater, David Mitchell, David Nicol,
Dominic Hargreaves, E. Choroba, Eric Brine, Evan Miller, Peder Chrysostomos, Florian
Ragwitz, François Perrad, George Greer, Goro Fuji, H.Merijn Brand, Herbert Breunung, Hugo
van der Sanden, Igor Zaytsev, James E Keenan, Jan Dubois, Jasmine Ahuja, Jerry D. Hedden,
Jess Robinson, Jesse Luehrs, Joaquin Ferrero, Joel Berger, John Goodyear, John Peacock,
Karen Etheridge, Karl Williamson, Karthik Rajagopalan, Kent Fredric, Leon Timmermans,
Lucas Holt, Lukas Mai, Marcus Holland-Moritz, Markus Jansen, Martin Hasch, Matthew
Horsfall, Max Maischein, Michael G Schwern, Michael Schroeder, Moritz Lenz, Nicholas
Clark, Niko Tyni, Oleg Nesterov, Patrik Haeglund, Paul Green, Paul Johnson, Paul
Marquess, Peter Martini, Rafael Garcia-Suarez, Reini Urban, Renee Baecker, Rhesa
Rozendaal, Ricardo Signes, Robin Barker, Ronald J. Kimball, Ruslan Zakirov, Salvador
Fandin~o, Sawyer X, Scott Lanning, Sergey Alekseev, Shawn M Moore, Shirakata Kentaro,
Shlomi Balık, Sisyphus, Smylers, Steffen Mueller, Steve Hay, Steve Peters, Steven
Schubiger, Sullivan Beck, Sven Stricroth, Sebastien Aperghis-Tramoni, Thomas Sibley,
Tobias Leich, Tom Wyant, Tony Cook, Vadim Konovalov, Vincent Pit, Volker Schatz, Walt
Mankowski, Yves Orton, Zefram.

Yukarıdaki liste, otomatik olarak oluşturulduğundan neredeyse kesinlikle eksiktir.
sürüm kontrol geçmişi. Özellikle, (çok fazla) isimlerini içermez.
teşekkürler) Perl hata izleyicisine sorunları bildiren katkıda bulunanlar.

Bu sürümde yer alan değişikliklerin çoğu, aşağıdakilere dahil edilen CPAN modüllerinden kaynaklanmaktadır.
Perl'in çekirdeği. Perl'in gelişmesine yardımcı oldukları için tüm CPAN topluluğuna minnettarız.

Perl'e tarihsel katkıda bulunanların daha eksiksiz bir listesi için lütfen bkz. YAZARLAR
Perl kaynak dağıtımındaki dosya.

Raporlama Bugs


Bir hata olduğunu düşündüğünüzü bulursanız, son zamanlarda yayınlanan makaleleri kontrol edebilirsiniz.
comp.lang.perl.misc haber grubu ve perl hata veritabanı http://rt.perl.org/perlbug/ .
adresinde de bilgi olabilir http://www.perl.org/ , Perl Ana Sayfası.

Bildirilmemiş bir hatanız olduğunu düşünüyorsanız, lütfen aşağıdakilerle birlikte verilen perlbug programını çalıştırın.
senin yayının. Hatanızı küçük ama yeterli bir test durumuna indirdiğinizden emin olun. senin hatan
"Perl -V" çıktısıyla birlikte rapor, [e-posta korumalı] olduğu
Perl taşıma ekibi tarafından analiz edildi.

Bildirdiğiniz hatanın güvenlikle ilgili sonuçları varsa, bu da onu uygunsuz kılar.
herkese açık olarak arşivlenmiş bir posta listesine gönderin, ardından lütfen
[e-posta korumalı]. Bu, kapalı bir abonelik arşivlenmemiş postaya işaret ediyor
etkinin değerlendirilmesine yardımcı olabilecek tüm temel sorumluları içeren liste
sorunları çözmek, bir çözüm bulmak ve yamaların piyasaya sürülmesini koordine etmeye yardımcı olmak
Perl'in desteklendiği tüm platformlarda sorunu azaltın veya düzeltin. lütfen sadece
bu adresi bağımsız modüller için değil, Perl çekirdeğindeki güvenlik sorunları için kullanın
CPAN'da dağıtılır.

onworks.net hizmetlerini kullanarak perl5180delta'yı çevrimiçi kullanın


Ücretsiz Sunucular ve İş İstasyonları

Windows ve Linux uygulamalarını indirin

  • 1
    birleşik dev/dak
    birleşik dev/dak
    Gitter'de bize katılın!
    https://gitter.im/unitedrpms-people/Lobby
    URPMS deposunu etkinleştirin.
    sistem -
    https://github.com/UnitedRPMs/unitedrpms.github.io/bl...
    unitedrpms'i indirin
  • 2
    C ++ Kitaplıklarını Artırın
    C ++ Kitaplıklarını Artırın
    Boost, ücretsiz taşınabilirlik sağlar
    hakemli C++ kitaplıkları. bu
    taşınabilir kütüphanelere ağırlık verilmektedir.
    C++ Standart Kitaplığı ile iyi çalışır.
    Bakınız http://www.bo...
    Boost C++ Kitaplıklarını İndirin
  • 3
    SanalGL
    SanalGL
    VirtualGL, 3B komutları bir
    Unix/Linux OpenGL uygulaması bir
    sunucu tarafı GPU ve
    3D görüntüleri bir video akışına dönüştürdü
    hangisiyle ...
    VirtualGL'yi indirin
  • 4
    Libusb
    Libusb
    Kullanıcı alanını etkinleştirmek için kitaplık
    iletişim kurmak için uygulama programları
    USB cihazları. Kitle: Geliştiriciler, Son
    Kullanıcılar/Masaüstü. Programlama Dili: C.
    Kategoriler ...
    libusb'u indir
  • 5
    yudum
    yudum
    SWIG bir yazılım geliştirme aracıdır
    C ile yazılmış programları birbirine bağlayan ve
    Çeşitli yüksek seviyeli C++
    Programlama dilleri. SWIG ile birlikte kullanılır
    farklı...
    SWIG'i indirin
  • 6
    WooCommerce Nextjs Tepki Tepkisi
    WooCommerce Nextjs Tepki Tepkisi
    İle oluşturulmuş React WooCommerce teması
    Sonraki JS, Webpack, Babel, Node ve
    GraphQL ve Apollo kullanarak Express
    Müşteri. React'te WooCommerce Mağazası(
    içerir: Ürünler...
    WooCommerce Nextjs React Temasını İndirin
  • Daha fazla »

Linux komutları

Ad