Naujasis Perlas

Šiandien pilnai perėjau prie naujojo Perl
5.8.1
. Persikompiliavau mod_perl ir panašiai, tad ši
svetainė veikia būtent jau su naujuoju Perlu.

Nors ir yra angliška perldelta, štai
pagrindiniai Perl pokyčiai nuo 5.8.0 versijos:

  • Asociatyviųjų masyvų atsitiktinės tvarkos pagerinimas.
    Anksčiau asociatyviųjų masyvų (hešų) raktai būdavo saugomi ne
    visai atsitiktine tvarka, o dėl to atsirasdavo šiokių tokių saugumo
    problemų (ten viskas labai sudėtinga, bet idėja tame, jog galima kažkaip
    programėlei padaryti DOS ataką).
    Dėl šio pagerinimo gali neveikti kai kurios programos, kurios būtent
    priklausė nuo ne visai atsitiktinės hešų tvarkos (Tarkim turėtų
    skirtis Data::Dumper modulio išvedamų asociatyvaus masyvo
    raktų tvarka)

  • UTF-8 flagas nebenustatomas byloms
    automatiškai, net jei lokalė ir sako jog viskas yra UTF-8
    (Atrodo lokalės dažnai pervertina savo galimybes, ir dėl to būna
    problemų)

  • v-stings (versijų eilutės) prieš =>
    traktuojamos kaip paprastos simbolių eilutės. Tad šitas:

    %h = ( v65 => 42 );

    Iki 5.8.1 reiškė:

    %h = ( 'A' => 42 );

    O dabar reiškia:

    %h = ( 'v65' => 42 );

    Kaip turbūt ir buvo tikimasi.

  • Vėl galima naudotis „nesaugiais“ signalais. Praeitoje
    Perlo versijoje signalai (SIGHUP, SIGKILL ir panašiai) buvo padaryti
    saugiais, t.y. jų vykdymas buvo atidedamas iki paskutiniės
    operacijos užbaigimo, nes ne laiku atkeliavęs signalas galėjo nutraukti
    programą netinkamoje vietoje ir „nulaužti“ visą programą.
    Dabar galima naudoti tiek saugius signalus, tiek nesaugius, užtenka
    atitinkamai nustatyti aplinkos kintamąjį PERL_SIGNALS

  • Dabar galima pririšti su tie() ir masyvus su
    neigiamais indeksais

  • Dabar veikia ir netiesioginė lokalizacija:

     local ${$x}
    
     local @{$x}
     local %{$x}
  • Unikodo lentelės duomenų bazė atnaujinta iki 4.0.0 versijos (kuri buvo išleista visai neseniai)

  • Keletas dalykų kurių bus atsisakyta kitoje versijoje, ir dėl to atsirado naujų perspėjimų: $* kintamasis,
    5.005 versijos stiliaus threadai, pseudohešai.

  • Vienas svarbiausių pagerinimų, kuris užbaigs daugelį metų trukusius šventuosius karus map vs for: map nuo šiol
    supranta savo kontekstą ir nekonstruoja sąrašo grąžinimui, jei jo nėra kam grąžinti.
    Tai žymiai pagreitina map vartojimą tuščiame
    kontekste (tarkim map { print "$_\n" } @a)

  • Daug klaidų pataisyta MAth::BigInt modulyje. Ypač dideli greičio patobulinimai.

  • Visiškai perrašytas perldoc

  • Kai kurie pataisymai threaduose, pataisyta atminties nutekėjimo klaidos Linuxe

  • Pridėta dokumentacija: perlcheat, perlreref (lietuviškas vertimas).

  • Cygwin aplinkoje dabar veikia threadai.

  • Naujos platformos, kuriose veikia Perl: Hitachi HI-UXMPP, LynxOS, IBM’s OS/400 PASE, OpenZaurus (Sharp Zaurus PDA). Vis dar nėra PalmOS :/

2 Comments

  1. Taip, viską atnaujinau, tik pamiršau į WAP žvilgtelt ;)

    XML::Simple modulį tereikėjo perkelt ;)

    Dabar turėtų veikt.

Comments are closed.