Perl 5.36.0 ప్రోగ్రామింగ్ భాష అందుబాటులో ఉంది

ఒక సంవత్సరం అభివృద్ధి తర్వాత, పెర్ల్ ప్రోగ్రామింగ్ లాంగ్వేజ్ యొక్క కొత్త స్థిరమైన శాఖ విడుదల, 5.36, ప్రచురించబడింది. కొత్త విడుదలను సిద్ధం చేస్తున్నప్పుడు, సుమారు 250 వేల పంక్తులు కోడ్ మార్చబడ్డాయి, మార్పులు 2000 ఫైళ్లను ప్రభావితం చేశాయి, 82 డెవలపర్లు అభివృద్ధిలో పాల్గొన్నారు.

బ్రాంచ్ 5.36 తొమ్మిది సంవత్సరాల క్రితం ఆమోదించబడిన స్థిర అభివృద్ధి షెడ్యూల్‌కు అనుగుణంగా విడుదల చేయబడింది, ఇది సంవత్సరానికి ఒకసారి కొత్త స్థిరమైన శాఖలను మరియు ప్రతి మూడు నెలలకు సరిదిద్దే విడుదలలను సూచిస్తుంది. Perl 5.36.1 యొక్క మొదటి దిద్దుబాటు విడుదల దాదాపు ఒక నెలలో విడుదల చేయడానికి షెడ్యూల్ చేయబడింది, Perl 5.36.0 అమలు సమయంలో గుర్తించబడిన అత్యంత ముఖ్యమైన బగ్‌లను పరిష్కరిస్తుంది. Perl 5.36 విడుదలతో పాటు, 5.32 బ్రాంచ్‌కు మద్దతు తొలగించబడింది, ఇది క్లిష్టమైన భద్రతా సమస్యలను గుర్తించినట్లయితే మాత్రమే భవిష్యత్తులో నవీకరించబడుతుంది. 5.37 ప్రయోగాత్మక శాఖ కోసం అభివృద్ధి ప్రక్రియ కూడా ప్రారంభమైంది, దీని నుండి Perl 2023 యొక్క స్థిరమైన విడుదల మే లేదా జూన్ 5.38లో ఏర్పడుతుంది, 7.x నంబరింగ్‌కి వెళ్లాలని నిర్ణయం తీసుకోకపోతే.

కీలక మార్పులు:

  • ఫంక్షన్ సంతకాల కోసం మద్దతు స్థిరీకరించబడింది మరియు "ఉపయోగించు v5.36" ప్రాగ్మాను పేర్కొనేటప్పుడు ఇప్పుడు అందుబాటులో ఉంది, ఇది ఫంక్షన్‌లో ఉపయోగించిన వేరియబుల్స్ జాబితాను స్పష్టంగా నిర్వచించడానికి మరియు శ్రేణి నుండి విలువలను తనిఖీ చేయడం మరియు కేటాయించడం వంటి కార్యకలాపాలను ఆటోమేట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఇన్పుట్ పారామితులు. ఉదాహరణకు, గతంలో ఉపయోగించిన కోడ్: sub foo { డై @_ <= 2 తప్ప "సబ్‌రూటీన్ కోసం చాలా తక్కువ ఆర్గ్యుమెంట్‌లు" డై; నా($ఎడమ, $కుడి) = @_; $ఎడమ + $ కుడి తిరిగి; }

    సంతకాలను ఉపయోగిస్తున్నప్పుడు, దీనిని దీని ద్వారా భర్తీ చేయవచ్చు:

    ఉప foo ($ఎడమ, $కుడి) {$ఎడమ + $కుడి తిరిగి; }

    రెండు కంటే ఎక్కువ ఆర్గ్యుమెంట్‌లతో fooకి కాల్ చేయడం వలన వ్యాఖ్యాతలో లోపం ఏర్పడుతుంది. జాబితా ప్రత్యేక వేరియబుల్ "$"కి కూడా మద్దతు ఇస్తుంది, ఇది కొన్ని ఆర్గ్యుమెంట్‌లను విస్మరించడానికి మిమ్మల్ని అనుమతిస్తుంది, ఉదాహరణకు, "సబ్ ఫూ ($ఎడమ, $, $ కుడి)" మీరు మొదటి మరియు మూడవ ఆర్గ్యుమెంట్‌లను మాత్రమే కాపీ చేయడానికి అనుమతిస్తుంది వేరియబుల్స్, అయితే సరిగ్గా మూడు ఆర్గ్యుమెంట్.

    సిగ్నేచర్ సింటాక్స్ ఐచ్ఛిక ఆర్గ్యుమెంట్‌లను పేర్కొనడానికి మరియు ఆర్గ్యుమెంట్ తప్పిపోయినట్లయితే డిఫాల్ట్ విలువలను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఉదాహరణకు, "సబ్ ఫూ ($ఎడమ, $కుడి = 0)"ని పేర్కొనడం ద్వారా, రెండవ ఆర్గ్యుమెంట్ ఐచ్ఛికం అవుతుంది మరియు అది లేనట్లయితే, విలువ 0 పాస్ చేయబడుతుంది. ఉపయోగించడంతో సహా అసైన్‌మెంట్ ఆపరేషన్‌లో ఏకపక్ష వ్యక్తీకరణను పేర్కొనవచ్చు. జాబితా నుండి ఇతర వేరియబుల్స్ లేదా గ్లోబల్ వేరియబుల్స్. వేరియబుల్‌కు బదులుగా హాష్ లేదా శ్రేణిని పేర్కొనడం (ఉదాహరణకు, "సబ్ ఫూ ($ఎడమ, @కుడి)") ఒకటి లేదా అంతకంటే ఎక్కువ ఆర్గ్యుమెంట్‌లను పాస్ చేసే అవకాశం ఏర్పడుతుంది.

  • సంతకాలను ఉపయోగించి ప్రకటించబడిన ఫంక్షన్‌లలో, "@_" శ్రేణి నుండి అదనపు పరామితుల కేటాయింపుకు మద్దతు ప్రయోగాత్మకంగా ప్రకటించబడుతుంది మరియు హెచ్చరికకు దారి తీస్తుంది (కొత్త సింటాక్స్‌ని ఉపయోగించి ప్రకటించబడిన ఫంక్షన్‌లలో @_ని ఉపయోగించినట్లయితే మాత్రమే హెచ్చరిక జారీ చేయబడుతుంది). ఉదాహరణకు, ఫంక్షన్ కోసం హెచ్చరిక జారీ చేయబడుతుంది: v5.36ని ఉపయోగించండి; ఉప f ($x, $y = 123) {"మొదటి వాదన $_[0]" అని చెప్పండి; }
  • "ఉపయోగం v5.36" ప్రాగ్మాను పేర్కొనేటప్పుడు స్థిరీకరించబడింది మరియు అందుబాటులో ఉంటుంది, ఆబ్జెక్ట్ పేర్కొన్న తరగతి లేదా దాని నుండి ఉత్పన్నమైన తరగతి యొక్క ఉదాహరణ కాదా అని తనిఖీ చేయడానికి "isa" infix ఆపరేటర్. ఉదాహరణకు: if( $obj isa Package::Name ) {…}
  • "ఉపయోగం v5.36" ప్రాగ్మాను పేర్కొన్నప్పుడు, హెచ్చరికల ప్రాసెసింగ్ ప్రారంభించబడుతుంది ("హెచ్చరికలను ఉపయోగించు" మోడ్ సక్రియం చేయబడింది).
  • "ఉపయోగించు v5.36" ప్రాగ్మాను పేర్కొనేటప్పుడు, కాలింగ్ ఆబ్జెక్ట్‌ల ("ఫీచర్ పరోక్ష") యొక్క పరోక్ష సంజ్ఞామానానికి మద్దతు నిలిపివేయబడుతుంది - ఆబ్జెక్ట్‌లను కాల్ చేసే వాడుకలో లేని మార్గం, దీనిలో "->" ("పద్ధతి $ ఆబ్జెక్ట్ @పరం" బదులుగా "$object-> $మెథడ్(@పరం)"). ఉదాహరణకు, "my $cgi = కొత్త CGI"కి బదులుగా మీరు "my $cgi = CGI->new"ని ఉపయోగిస్తారు.
  • "వుపయోగ v5.36" ప్రాగ్మాను పేర్కొనేటప్పుడు, మల్టీడైమెన్షనల్ శ్రేణులు మరియు Perl 4-శైలి హ్యాష్‌లు ("ఫీచర్ మల్టీడైమెన్షనల్") ఎమ్యులేట్ చేయడానికి మద్దతు నిలిపివేయబడింది, ఇది బహుళ కీలను ఇంటర్మీడియట్ అర్రేలోకి అనువదించడానికి అనుమతిస్తుంది (ఉదాహరణకు, "$hash{1 , 2}") "$hash{join($;, 1, 2)}")గా మార్చబడింది.
  • "యూజ్ v5.36" ప్రాగ్మా స్విచ్ మరియు కేస్ స్టేట్‌మెంట్‌ల మాదిరిగానే ప్రయోగాత్మక బ్రాంచింగ్ మెకానిజం ("ఫీచర్ స్విచ్") కోసం మద్దతును నిలిపివేస్తుంది (పెర్ల్ ఇచ్చిన మరియు ఎప్పుడు కీవర్డ్‌లను ఉపయోగిస్తుంది). Perl 5.36 నుండి, ఈ లక్షణాన్ని ఉపయోగించడానికి మీరు తప్పనిసరిగా 'ఉపయోగించు ఫీచర్ "స్విచ్"'ని తప్పనిసరిగా పేర్కొనాలి మరియు "ఉపయోగ సంస్కరణ"ని పేర్కొనడం వలన అది స్వయంచాలకంగా ప్రారంభించబడదు.
  • సాధారణ వ్యక్తీకరణల లోపల స్క్వేర్ బ్రాకెట్‌లలో అదనపు అక్షర తరగతులకు డిఫాల్ట్ మద్దతుగా స్థిరీకరించబడింది మరియు అందుబాటులో ఉంటుంది. బహుళ అక్షరాలను ఖండన, మినహాయించడం మరియు సంగ్రహించడం కోసం పొడిగించిన నియమాలను ఉపయోగించి సరిపోలడానికి సామర్ధ్యం అనుమతిస్తుంది. ఉదాహరణకు, '[AZ - W]' అనేది W మినహా A నుండి Z వరకు అక్షరాలు.
  • "(?", "( )", "{ }" మరియు "[ ]" కార్యకలాపాలకు మద్దతు పాక్షికంగా స్థిరీకరించబడింది మరియు డిఫాల్ట్‌గా అందుబాటులో ఉంటుంది. మీరు "" "", "" "" మొదలైన అక్షరాలను ఉపయోగించవచ్చు. ఉదాహరణకు, "qr" "".
  • వాదనలు లేకుండా క్రమబద్ధీకరణ ఫంక్షన్‌ను కాల్ చేయడం నిషేధించబడింది, ఇది ఇప్పుడు లోపం అవుట్‌పుట్‌కు దారి తీస్తుంది. @a = క్రమబద్ధీకరించు @ఖాళీ; # continue @a = విధమైన; # లోపం @a = క్రమబద్ధీకరణ (); # లోపం విసిరివేయబడుతుంది
  • కొత్త కమాండ్ లైన్ ఫ్లాగ్ "-g" ప్రతిపాదించబడింది, ఇది లైన్ వారీగా కాకుండా మొత్తం ఫైల్‌ను డౌన్‌లోడ్ చేసే మోడ్‌ను ఎనేబుల్ చేస్తుంది. జెండా "-0777" వలె అదే ప్రభావాన్ని కలిగి ఉంటుంది.
  • యూనికోడ్ స్పెసిఫికేషన్‌కు మద్దతు వెర్షన్ 14.0కి అప్‌డేట్ చేయబడింది.
  • SIGSEGV వంటి ఇతర అలారాలను పోలిన ఇన్‌స్టంట్ ఫ్లోటింగ్ పాయింట్ మినహాయింపు (SIGFPE) అందించబడుతుంది, ఇది $SIG{FPE} ద్వారా SIGFPE సిగ్నల్‌కు కస్టమ్ హ్యాండ్లర్‌లను జోడించడానికి అనుమతిస్తుంది, ఉదాహరణకు సమస్య సంభవించిన లైన్ నంబర్‌ను అవుట్‌పుట్ చేస్తుంది.
  • ప్రాథమిక పంపిణీలో చేర్చబడిన మాడ్యూల్స్ యొక్క నవీకరించబడిన సంస్కరణలు.
  • పనితీరు ఆప్టిమైజేషన్‌లు జోడించబడ్డాయి. షేర్డ్ స్ట్రింగ్ టేబుల్‌లను ఉపయోగించకుండా, పెద్ద హాష్ కీలను మరింత సమర్థవంతంగా నిల్వ చేయగల సామర్థ్యం అందించబడుతుంది. కొత్త స్కేలార్ విలువలను సృష్టించే పనితీరు గణనీయంగా మెరుగుపడింది, ఉదాహరణకు, కింది కోడ్ ఇప్పుడు 30% వేగంగా ఉంది: $str = "A" x 64; (0..1_000_000) కోసం {@svs = స్ప్లిట్ //, $str}
  • ఇంటర్‌ప్రెటర్ కోడ్ C99 ప్రమాణంలో నిర్వచించబడిన కొన్ని నిర్మాణాలను ఉపయోగించడం ప్రారంభించింది. పెర్ల్‌ను రూపొందించడానికి ఇప్పుడు C99కి మద్దతిచ్చే కంపైలర్ అవసరం. MSVC++ (VC12కి ముందు) పాత వెర్షన్‌లలో అసెంబ్లీ మద్దతు తొలగించబడింది. Microsoft Visual Studio 2022 (MSVC++ 14.3)లో అసెంబ్లీ మద్దతు జోడించబడింది.
  • AT&T UWIN, DOS/DJGPP మరియు Novell NetWare ప్లాట్‌ఫారమ్‌లకు మద్దతు తొలగించబడింది.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి