Perl 7 артка карай шайкештикти бузбастан Perl 5тин өнүгүшүн үзгүлтүксүз улантат

Perl Долбоорунун Жетектөөчү Кеңеши Perl 5 тармагын мындан ары өнүктүрүү жана Perl 7 филиалын түзүү боюнча пландарды белгиледи.Талкуулоонун жүрүшүндө Башкаруу Кеңеши Perl 5 үчүн мурдатан жазылган код менен шайкештикти бузууга жол берилбейт деп макулдашты. кемчиликти оңдоо үчүн шайкештик керек. Кеңеш ошондой эле тилди өнүктүрүп, жаңы функцияларды интенсивдүү түрдө илгерилетүү керек деген тыянакка келди, ошол эле учурда пайда болгон инновацияларга жетүүнү жеңилдетип, кабыл алууну кубаттайт.

Перл 7 бутагына демейки боюнча артка карай шайкештикти бузган өзгөртүүлөрдү киргизүүгө уруксат берүүнүн баштапкы ниетинен айырмаланып, жаңы план Perl 5 бутагын учурдагы код менен артка шайкештикти бузбастан Perl 7ге акырындык менен өткөрүү болуп саналат. Perl 7.0 чыгаруу концептуалдык жактан кийинки Perl 5.xx бутагынан эч кандай айырмаланбайт.

Perl 5тин жаңы релиздерин иштеп чыгуу мурункудай эле уланат - эски код менен шайкеш келбеген тармакка кошулган жаңы функциялар, мурункудай эле, "пайдалануу версиясы" же "функцияны колдонуу" прагмасы ачык көрсөтүлгөн учурда гана киргизилет. коддо. Мисалы, Perl 5.010 "айтуу" деген жаңы ачкыч сөздү киргизди, бирок учурдагы код "айтуу" деп аталган функцияларды колдоно алгандыктан, жаңы ачкыч сөздү колдоо "пайдалануу" өзгөчөлүгү "айтуу" прагмасын ачык көрсөтүү менен гана иштетилди.

Мурунку релиздерде иштетилгенде катага алып келген тилге кошулган жаңы синтаксис атайын прагмаларды көрсөтүүнү талап кылбастан дароо жеткиликтүү болуп калат. Мисалы, Perl 5.36 бир эле учурда бир нече тизме маанилерин иштетүү үчүн жөнөкөйлөштүрүлгөн синтаксисин киргизет (“foreach my ($key, $value) (%hash) {”), ал дароо жеткиликтүү болот, атүгүл “коддо” жок болсо да. v5.36” прагманы колдонуңуз.

Учурдагы формасында Perl 5.36 5.36 өз ара аракеттенүүнү бузуучу өзгөчөлүктү иштетүү үчүн "пайдалануу v13" прагмасын колдонот ('айтуу', 'стат', 'current_sub', 'fc', 'lexical_subs', 'signatures', 'isa' ', ' bareword_filehandles', 'bitwise', 'evalbytes', 'postderef_qq', 'unicode_eval' жана 'unicode_strings'), демейки боюнча "колдонуу катуу" жана "эскертүүлөрдү колдонуу" режимдерин иштетиңиз жана мурунку кыйыр белгилерди колдоону өчүрүңүз объекттерди чакыруу («- >» ордуна боштук колдонулганда) жана Perl 4 стилиндеги көп өлчөмдүү массивдерди жана хэштерди («$hash{1, 2}»).

Жетиштүү өзгөртүүлөр топтолгондо, Perl 5.x кийинки релизинин ордуна Perl 7.0 версиясы түзүлөт, ал абалдын бир түрү болуп калат, бирок Perl 5 менен толук артка шайкеш келет. Өзгөртүүлөрдү жана орнотууларды иштетүү үчүн шайкештикти бузуу үчүн, кодго "пайдалануу v7" прагмасын так кошушуңуз керек болот. . Ошол. "пайдалануу v7" прагмасы бар кодду "заманбап Perl" катары кароого болот, мында тилде шайкештикти бузуучу өзгөртүүлөр бар, ал эми жок болсо - "консервативдик Perl", мурунку релиздерге толугу менен артка шайкеш келет.

Source: opennet.ru

Комментарий кошуу