The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

PAVADINIMAS (NAME)

perldelta - kas naujo perl v5.8.3 versijoje

APRAŠYMAS (DESCRIPTION)

Šiame dokumente yra aprašomi perlo 5.8.2 ir 5.8.3 versijų skirtumai

Jeigu jūs atnaujinate perlo versiją iš ankstesnės (tarkim 5.6.1) versijos, pirma perskaitykite perl58delta, kur yra aprašyti pokyčiai tarp 5.6.0 ir 5.8.0, perl581delta bei perl582delta, kuriose aprašyti skirtumai tarp 5.8.0, 5.8.1 ir 5.8.2 versijų.

Nesuderinami pokyčiai

Nėra nesuderinamų su 5.8.2 versija pokyčių.

Patobulinimai branduolyje

Pririštiems per tie mechanizmą asociatyviesiems masyvams (hešams) dabar galima aprašyti metodą SCALAR. Jis yra iškviečiamas tada kai pririštas hešas yra naudojamas skaliariniame kontekste, kaip kad

    if (%tied_hash) {
        ...
    }

Iki šiol tokiu atveju %tied_hash grąžindavo tai kas būtų buvę grąžinama prieš pririšant hešą (taigi dažniausiai 0). Šiuo metu nesant aprašyto SCALAR metodo grąžinama TRUE, jei veiksmas vyksta each iteracijoje arba iškviečiamas FIRSTKEY metodas, patikrinantis ar hešas nėra tuščias (perlas užtikrina kad kitas each taipogi prasidės FIRSTKEY iškvietimu). Plačiau apie tai skaitykite "SCALAR" in perltie dokumentaciją.

Moduliai ir pragmos
CGI
Cwd
Digest
Digest::MD5
Encode
ExtUtils::MakeMaker

Dabar gali sugeneruoti SIGNATURE bylą jei yra įdiegtas Module::Signature modulis. Tereikia metodui WriteMakefile() perduoti (SIGN => 1). (Modulį patobulino Autrijus Tang gavęs The Perl Foundation stipendiją)

File::Spec
FindBin

Dabar yra funkcija again kuri išsprendžia problemas, kurios iškyla kai moduliai, esantys skirtingose direktorijose nori pasinaudoti FindBin.

List::Util

Dabar nuorodas (references) galima paversti į skirtąsias tik skaitymui (read-only).

Math::BigInt
PodParser
Pod::Perldoc
POSIX
Unicode::Collate
Unicode::Normalize
Test::Harness
threads::shared

cond_wait turi naują dviejų argumentų formą. Pridėta cond_timedwait.

Pagalbinių programų patobulinimai

find2perl dabar pagal nutylėjimą įjungia -print raktą. Iki šiol jį reikėdavo nurodyti komandinėje eilutėje.

Atsirado nauja pagalbinė programa prove, kuria galima nesunkiai paleisti atskirus regresijos testus per komandinę eilutę. prove yra Test::Harness modulio dalis, tad senesnių perlo versijų vartotojai ją gali gauti per CPAN.

Nauja dokumentacija

Kai kuriose vietose dokumentacija buvo šiek tiek patobulinta ir standartizuota.

Patobulinta specialius kodo blokus (BEGIN, CHECK, INIT, END) aprašanti dokumentacija.

Kodo greičio patobulinimai
Įdiegimo ir tinkinimo (konfigūravimo) patobulinimai

Perlas dabar veikia OpenVMS I64 platformoje

Rinktiniai riktų pataisymai

Panaudojus substr() UTF8 simbolių eilutei ir paskui bandant ją pasiekti kartais būdavo grąžinamos šiūkšlės. Tai buvo todėl, kad į laikinąją atmintinę būdavo įrašomi neteisingi simbolių nuotoliai nuo eilutės pradžios. Šis riktas pataisytas.

$a .. $b dabar turėtų veikti kaip ir tikėtasi jei $a ar $b reikšmės yra undef.

Dabar be problemų galima naudoti unikodinius asociatyviųjų masyvų (hešų) raktus.

$^E nuskaitymas dabar išsaugo $!. Anksčiau C kodas, kuris slepiasi po $^E neišsaugodavo errno, taigi bandant nuskaityti $^E galėjo netikėtai pasikeisti errno ir tuo pačiu $!.

Grįžtamosios funkcijos (vėl) veikia su C++. 5.8.2 versijoje vienas klaidos pataisymas netyčia sugadino kai kurių C++ rašytų Perlo modulių kompiliavimą.

Nauji arba pakeisti diagnostinai pranešimai
Pakitęs C kodas

Asociatyviųjų masyvų (hešų) kodas buvo sumažintas išimant kai kuriuos pasikartojančius kodo fragmentus. Išorinė kodo sąsaja nepasikeitė, tad be aukščiau išvardintų riktų pataisymų niekas neturėjo pasikeisti.

hv_clear_placeholders dabar yra perlo API dalis.

Aptvarkytos kai kurios C makro funkcijos. Ypač tos, kurios sukuria laikinus vietinius kintamuosius - dabar jos turėtų atsargiau parinkti šiems kintamiesiems vardą taip išvengiant riktų susijusių su skirtingais kintamaisiais turinčiais tuos pačius vardus.

signal.h dabar visada įtraukiamas.

Tinkinimas ir kompiliavimas

Configure dabar iškviečia grįžtamąsias funkcijas (callbacks) nepaisydamas kintamojo kuriam jis yra kviečiamas reikšmės. Anksčiau šios funkcijos buvo iškviečiamos tik case $variable $define) šakai. Šis pokytis turėtų liesti tik platformų programuotojus, kurie rašo konfigūracines hints bylas.

Nauji testai
Žinomos problemos

Turime krūvą nepataisytų riktų. Riktų taisymas ir tvarkymas nėra pats įdomiausias darbas, ypač bendruomenei kuri viską daro be atlygio.

Perl5 programuotojų komanda šiuo metu daro kai kuriuos patobulinimus, kurie turėtų padėti išspręsti šias problemas 2004-ųjų metų pradžioje.

Problemos specifinės kuriai nors platformai
Pranešimai apie riktus

Jeigu manote jog radote riktą, peržvelkite paskutines temas comp.lang.perl.misc naujienų grupėje jei perlo riktų duomenų bazę adresu http://bugs.perl.org. Papildomos informacijos taip pat gali būti ir pagrindinėje perlo svetainėje http://www.perl.org.

Jeigu manote kad radote rktą, kurio dar niekas neaptiko, pasinaudokite perlbug programa, kuri yra perlo dalis. Pasistenkite kuo labiau sumažinti kodo ištrauką, kuria parodomas riktas. Jūsų rikto aprašymas, kartu su perl -V rezultatu, bus išsiųstas adresu perlbug@perl.org ir išanalizuotas perlo programuotojų komandos. Visus perlo riktus galite matyti adresu at http://bugs.perl.org/

TAIP PAT ŽIŪRĖKITE (SEE ALSO)

Changes byla labai detaliai aprašo visus pokyčius.

INSTALL byla aprašo kaip įdiegti perlą.

README byloje yra aprašyti bendri dalykai.

Artistic ir Copying bylose yra informacija apie perlo autorines teises.