[{"data":1,"prerenderedAt":890},["ShallowReactive",2],{"global-navigation":3,"page-\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc01-pl":28,"surround-\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc01-pl":506,"sidebar-sei-cert-perl-coding-standard":513},[4,8],{"title":5,"path":6,"_path":6,"fromAppConfig":7},"Home","\u002F",true,{"title":9,"path":10,"children":11,"_path":27,"fromAppConfig":7},"Coding Standards","\u002Fcoding-standards\u002F",[12,15,18,21,24],{"title":13,"path":14},"Android Coding Standard","\u002Fandroid-secure-coding-standard\u002F",{"title":16,"path":17},"C Coding Standard","\u002Fsei-cert-c-coding-standard\u002F",{"title":19,"path":20},"C++ Coding Standard","\u002Fsei-cert-cpp-coding-standard\u002F",{"title":22,"path":23},"Java Coding Standard","\u002Fsei-cert-oracle-coding-standard-for-java\u002F",{"title":25,"path":26},"Perl Coding Standard","\u002Fsei-cert-perl-coding-standard\u002F","\u002Fcoding-standards",{"id":29,"title":30,"body":31,"description":41,"extension":497,"meta":498,"navigation":7,"path":502,"seo":503,"stem":504,"__hash__":505},"content\u002F7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F7.miscellaneous-msc\u002F3.msc01-pl.md","MSC01-PL. Detect and remove unused variables",{"type":32,"value":33,"toc":489},"minimark",[34,38,42,47,55,193,197,200,288,292,295,361,365,393,397,436,440,448,461,464,485],[35,36,30],"h1",{"id":37},"msc01-pl-detect-and-remove-unused-variables",[39,40,41],"p",{},"The presence of unused variables may indicate significant logic errors. To prevent such errors, unused values should be identified and removed from code.",[43,44,46],"h2",{"id":45},"noncompliant-code-example","Noncompliant Code Example",[39,48,49,50,54],{},"This noncompliant code example contains a variable ",[51,52,53],"code",{},"$new_name"," that is initialized but never subsequently read.",[56,57,59],"code-block",{"quality":58},"bad",[60,61,66],"pre",{"className":62,"code":63,"language":64,"meta":65,"style":65},"language-perl shiki shiki-themes github-light github-dark monokai","sub fix_name {\n  my $name = shift;\n  my $new_name = $name;\n\n  $name =~ s\u002F^([a-z])\u002F\\U$1\\E\u002Fg;\n  $name =~ s\u002F ([a-z])\u002F \\U$1\\E\u002Fg;\n  return $name;\n}\n","perl","",[51,67,68,85,102,110,116,151,178,187],{"__ignoreMap":65},[69,70,73,77,81],"span",{"class":71,"line":72},"line",1,[69,74,76],{"class":75},"sq6CD","sub",[69,78,80],{"class":79},"srTi1"," fix_name",[69,82,84],{"class":83},"sMOD_"," {\n",[69,86,88,92,95,99],{"class":71,"line":87},2,[69,89,91],{"class":90},"sC2Qs","  my",[69,93,94],{"class":83}," $name = ",[69,96,98],{"class":97},"sTrkL","shift",[69,100,101],{"class":83},";\n",[69,103,105,107],{"class":71,"line":104},3,[69,106,91],{"class":90},[69,108,109],{"class":83}," $new_name = $name;\n",[69,111,113],{"class":71,"line":112},4,[69,114,115],{"emptyLinePlaceholder":7},"\n",[69,117,119,122,125,128,132,134,138,141,144,146,149],{"class":71,"line":118},5,[69,120,121],{"class":83},"  $name =~ ",[69,123,124],{"class":97},"s",[69,126,6],{"class":127},"sstjo",[69,129,131],{"class":130},"sFxd3","^([a-z])",[69,133,6],{"class":127},[69,135,137],{"class":136},"sHuvb","\\U",[69,139,140],{"class":83},"$1",[69,142,143],{"class":136},"\\E",[69,145,6],{"class":127},[69,147,148],{"class":90},"g",[69,150,101],{"class":83},[69,152,154,156,158,160,163,165,168,170,172,174,176],{"class":71,"line":153},6,[69,155,121],{"class":83},[69,157,124],{"class":97},[69,159,6],{"class":127},[69,161,162],{"class":130}," ([a-z])",[69,164,6],{"class":127},[69,166,167],{"class":136}," \\U",[69,169,140],{"class":83},[69,171,143],{"class":136},[69,173,6],{"class":127},[69,175,148],{"class":90},[69,177,101],{"class":83},[69,179,181,184],{"class":71,"line":180},7,[69,182,183],{"class":90},"  return",[69,185,186],{"class":83}," $name;\n",[69,188,190],{"class":71,"line":189},8,[69,191,192],{"class":83},"}\n",[43,194,196],{"id":195},"compliant-solution","Compliant Solution",[39,198,199],{},"This compliant solution eliminates the unused variable",[56,201,203],{"quality":202},"good",[60,204,206],{"className":62,"code":205,"language":64,"meta":65,"style":65},"sub fix_name {\n  my $name = shift;\n\n  $name =~ s\u002F^([a-z])\u002F\\U$1\\E\u002Fg;\n  $name =~ s\u002F ([a-z])\u002F \\U$1\\E\u002Fg;\n  return $name;\n}\n",[51,207,208,216,226,230,254,278,284],{"__ignoreMap":65},[69,209,210,212,214],{"class":71,"line":72},[69,211,76],{"class":75},[69,213,80],{"class":79},[69,215,84],{"class":83},[69,217,218,220,222,224],{"class":71,"line":87},[69,219,91],{"class":90},[69,221,94],{"class":83},[69,223,98],{"class":97},[69,225,101],{"class":83},[69,227,228],{"class":71,"line":104},[69,229,115],{"emptyLinePlaceholder":7},[69,231,232,234,236,238,240,242,244,246,248,250,252],{"class":71,"line":112},[69,233,121],{"class":83},[69,235,124],{"class":97},[69,237,6],{"class":127},[69,239,131],{"class":130},[69,241,6],{"class":127},[69,243,137],{"class":136},[69,245,140],{"class":83},[69,247,143],{"class":136},[69,249,6],{"class":127},[69,251,148],{"class":90},[69,253,101],{"class":83},[69,255,256,258,260,262,264,266,268,270,272,274,276],{"class":71,"line":118},[69,257,121],{"class":83},[69,259,124],{"class":97},[69,261,6],{"class":127},[69,263,162],{"class":130},[69,265,6],{"class":127},[69,267,167],{"class":136},[69,269,140],{"class":83},[69,271,143],{"class":136},[69,273,6],{"class":127},[69,275,148],{"class":90},[69,277,101],{"class":83},[69,279,280,282],{"class":71,"line":153},[69,281,183],{"class":90},[69,283,186],{"class":83},[69,285,286],{"class":71,"line":180},[69,287,192],{"class":83},[43,289,291],{"id":290},"risk-assessment","Risk Assessment",[39,293,294],{},"The presence of unused variables may indicate logic errors that can lead to unintended program behavior. As a result, resolving unused variables can be an in-depth process requiring significant analysis.",[296,297,298,317],"table",{},[299,300,301],"thead",{},[302,303,304,307,309,311,313,315],"tr",{},[305,306],"th",{},[305,308],{},[305,310],{},[305,312],{},[305,314],{},[305,316],{},[318,319,320,341],"tbody",{},[302,321,322,326,329,332,335,338],{},[323,324,325],"td",{},"Recommendation",[323,327,328],{},"Severity",[323,330,331],{},"Likelihood",[323,333,334],{},"Remediation Cost",[323,336,337],{},"Priority",[323,339,340],{},"Level",[302,342,343,346,349,352,355,358],{},[323,344,345],{},"MSC01-PL",[323,347,348],{},"Low",[323,350,351],{},"Unlikely",[323,353,354],{},"High",[323,356,357],{},"P1",[323,359,360],{},"L3",[43,362,364],{"id":363},"automated-detection","Automated Detection",[296,366,367,375],{},[299,368,369],{},[302,370,371,373],{},[305,372],{},[305,374],{},[318,376,377,385],{},[302,378,379,382],{},[323,380,381],{},"Tool",[323,383,384],{},"Diagnostic",[302,386,387,390],{},[323,388,389],{},"Perl::Critic",[323,391,392],{},"Variables::ProhibitUnusedVariables",[43,394,396],{"id":395},"related-guidelines","Related Guidelines",[296,398,399,407],{},[299,400,401],{},[302,402,403,405],{},[305,404],{},[305,406],{},[318,408,409,423],{},[302,410,411,417],{},[323,412,413],{},[414,415,416],"a",{"href":17},"SEI CERT C Coding Standard",[323,418,419],{},[414,420,422],{"href":421},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc13-c","MSC13-C. Detect and remove unused values",[302,424,425,430],{},[323,426,427],{},[414,428,429],{"href":20},"SEI CERT C++ Coding Standard",[323,431,432],{},[414,433,435],{"href":434},"\u002Fsei-cert-cpp-coding-standard\u002Fthe-void\u002Fvoid-3-recommendations\u002Fvoid-rec-49-miscellaneous-msc\u002Fvoid-msc13-cpp-detect-and-remove-unused-values","VOID MSC13-CPP. Detect and remove unused values",[43,437,439],{"id":438},"bibliography","Bibliography",[39,441,442,443,447],{},"[ ",[414,444,446],{"href":445},"\u002Fsei-cert-perl-coding-standard\u002Fback-matter\u002Faa-bibliography#AA.Bibliography-CPAN","CPAN"," ]",[39,449,450,456,457],{},[414,451,455],{"href":452,"rel":453},"http:\u002F\u002Fsearch.cpan.org\u002F%7Eelliotjs\u002FPerl-Critic-1.116\u002F",[454],"nofollow","Elliot Shank, Perl-Critic-1.116"," ",[414,458,392],{"href":459,"rel":460},"http:\u002F\u002Fsearch.cpan.org\u002Fdist\u002FPerl-Critic\u002Flib\u002FPerl\u002FCritic\u002FPolicy\u002FVariables\u002FProhibitUnusedVariables.pm",[454],[462,463],"hr",{},[39,465,466,456,473,456,479],{},[414,467,469],{"href":468},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc00-pl",[470,471],"img",{"src":472},"\u002Fattachments\u002F88890562\u002F88892207.png",[414,474,476],{"href":475},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002F",[470,477],{"src":478},"\u002Fattachments\u002F88890562\u002F88892209.png",[414,480,482],{"href":481},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc02-pl",[470,483],{"src":484},"\u002Fattachments\u002F88890562\u002F88892208.png",[486,487,488],"style",{},"html pre.shiki code .sq6CD, html code.shiki .sq6CD{--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .srTi1, html code.shiki .srTi1{--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E}html pre.shiki code .sMOD_, html code.shiki .sMOD_{--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .sC2Qs, html code.shiki .sC2Qs{--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .sTrkL, html code.shiki .sTrkL{--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#66D9EF}html pre.shiki code .sstjo, html code.shiki .sstjo{--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .sFxd3, html code.shiki .sFxd3{--shiki-default:#032F62;--shiki-dark:#DBEDFF;--shiki-sepia:#E6DB74}html pre.shiki code .sHuvb, html code.shiki .sHuvb{--shiki-default:#22863A;--shiki-default-font-weight:bold;--shiki-dark:#85E89D;--shiki-dark-font-weight:bold;--shiki-sepia:#AE81FF;--shiki-sepia-font-weight:inherit}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}",{"title":65,"searchDepth":87,"depth":87,"links":490},[491,492,493,494,495,496],{"id":45,"depth":87,"text":46},{"id":195,"depth":87,"text":196},{"id":290,"depth":87,"text":291},{"id":363,"depth":87,"text":364},{"id":395,"depth":87,"text":396},{"id":438,"depth":87,"text":439},"md",{"tags":499},[500,501],"msc","recommendation","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc01-pl",{"title":30,"description":41},"7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F7.miscellaneous-msc\u002F3.msc01-pl","r-9_gN6RLYazihpqh6eWMW2hxNf0UVOEtZilkxY2u0A",[507,510],{"title":508,"path":468,"stem":509,"children":-1},"MSC00-PL. Detect and remove dead code","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F7.miscellaneous-msc\u002F2.msc00-pl",{"title":511,"path":481,"stem":512,"children":-1},"MSC02-PL. Run programs with full warnings and strict checking","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F7.miscellaneous-msc\u002F4.msc02-pl",[514],{"title":515,"path":516,"stem":517,"children":518},"SEI CERT Perl Coding Standard","\u002Fsei-cert-perl-coding-standard","7.sei-cert-perl-coding-standard\u002F1.index",[519,520,575,707,846],{"title":515,"path":516,"stem":517},{"title":521,"path":522,"stem":523,"children":524},"Front Matter","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F1.index",[525,526,530],{"title":521,"path":522,"stem":523},{"title":527,"path":528,"stem":529},"Deprecations","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fdeprecations","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F2.deprecations",{"title":531,"path":532,"stem":533,"children":534},"Introduction","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fintroduction","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F3.introduction\u002F01.index",[535,536,540,544,548,552,556,560,563,567,571],{"title":531,"path":532,"stem":533},{"title":537,"path":538,"stem":539},"Scope","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fscope","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F3.introduction\u002F01.scope",{"title":541,"path":542,"stem":543},"Tool Selection and Validation","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fintroduction\u002Ftool-selection-and-validation","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F3.introduction\u002F02.tool-selection-and-validation",{"title":545,"path":546,"stem":547},"Rules versus Recommendations","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fintroduction\u002Frules-versus-recommendations","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F3.introduction\u002F03.rules-versus-recommendations",{"title":549,"path":550,"stem":551},"Development Process","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fdevelopment-process","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F3.introduction\u002F04.development-process",{"title":553,"path":554,"stem":555},"Usage","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fusage","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F3.introduction\u002F05.usage",{"title":557,"path":558,"stem":559},"System Qualities","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fsystem-qualities","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F3.introduction\u002F06.system-qualities",{"title":291,"path":561,"stem":562},"\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fintroduction\u002Frisk-assessment","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F3.introduction\u002F07.risk-assessment",{"title":564,"path":565,"stem":566},"Source Code Validation","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fsource-code-validation","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F3.introduction\u002F08.source-code-validation",{"title":568,"path":569,"stem":570},"Automatically Generated Code","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fautomatically-generated-code","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F3.introduction\u002F09.automatically-generated-code",{"title":572,"path":573,"stem":574},"Acknowledgements","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fintroduction\u002Facknowledgements","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F3.introduction\u002F11.acknowledgements",{"title":576,"path":577,"stem":578,"children":579},"Rules","\u002Fsei-cert-perl-coding-standard\u002Frules","7.sei-cert-perl-coding-standard\u002F3.rules\u002F1.index",[580,581,599,625,635,665,669,683,693],{"title":576,"path":577,"stem":578},{"title":582,"path":583,"stem":584,"children":585},"Declarations and Initialization (DCL)","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl","7.sei-cert-perl-coding-standard\u002F3.rules\u002F2.declarations-and-initialization-dcl\u002F1.index",[586,587,591,595],{"title":582,"path":583,"stem":584},{"title":588,"path":589,"stem":590},"DCL30-PL. Do not import deprecated modules","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl30-pl","7.sei-cert-perl-coding-standard\u002F3.rules\u002F2.declarations-and-initialization-dcl\u002F2.dcl30-pl",{"title":592,"path":593,"stem":594},"DCL31-PL. Do not overload reserved keywords or subroutines","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl31-pl","7.sei-cert-perl-coding-standard\u002F3.rules\u002F2.declarations-and-initialization-dcl\u002F3.dcl31-pl",{"title":596,"path":597,"stem":598},"DCL33-PL. Declare identifiers before using them","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl33-pl","7.sei-cert-perl-coding-standard\u002F3.rules\u002F2.declarations-and-initialization-dcl\u002F4.dcl33-pl",{"title":600,"path":601,"stem":602,"children":603},"Expressions (EXP)","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fexpressions-exp","7.sei-cert-perl-coding-standard\u002F3.rules\u002F3.expressions-exp\u002F1.index",[604,605,609,613,617,621],{"title":600,"path":601,"stem":602},{"title":606,"path":607,"stem":608},"EXP30-PL. Do not use deprecated or obsolete functions or modules","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp30-pl","7.sei-cert-perl-coding-standard\u002F3.rules\u002F3.expressions-exp\u002F2.exp30-pl",{"title":610,"path":611,"stem":612},"EXP31-PL. Do not suppress or ignore exceptions","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp31-pl","7.sei-cert-perl-coding-standard\u002F3.rules\u002F3.expressions-exp\u002F3.exp31-pl",{"title":614,"path":615,"stem":616},"EXP32-PL. Do not ignore function return values","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp32-pl","7.sei-cert-perl-coding-standard\u002F3.rules\u002F3.expressions-exp\u002F4.exp32-pl",{"title":618,"path":619,"stem":620},"EXP33-PL. Do not invoke a function in a context for which it is not defined","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp33-pl","7.sei-cert-perl-coding-standard\u002F3.rules\u002F3.expressions-exp\u002F5.exp33-pl",{"title":622,"path":623,"stem":624},"EXP35-PL. Use the correct operator type for comparing values","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fexpressions-exp\u002Fexp35-pl","7.sei-cert-perl-coding-standard\u002F3.rules\u002F3.expressions-exp\u002F6.exp35-pl",{"title":626,"path":627,"stem":628,"children":629},"File Input and Output (FIO)","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Ffile-input-and-output-fio","7.sei-cert-perl-coding-standard\u002F3.rules\u002F4.file-input-and-output-fio\u002F1.index",[630,631],{"title":626,"path":627,"stem":628},{"title":632,"path":633,"stem":634},"FIO30-PL. Use compatible character encodings when performing network or file I\u002FO","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Ffile-input-and-output-fio\u002Ffio30-pl","7.sei-cert-perl-coding-standard\u002F3.rules\u002F4.file-input-and-output-fio\u002F2.fio30-pl",{"title":636,"path":637,"stem":638,"children":639},"Input Validation and Data Sanitization (IDS)","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Finput-validation-and-data-sanitization-ids","7.sei-cert-perl-coding-standard\u002F3.rules\u002F5.input-validation-and-data-sanitization-ids\u002F1.index",[640,641,645,649,653,657,661],{"title":636,"path":637,"stem":638},{"title":642,"path":643,"stem":644},"IDS30-PL. Exclude user input from format strings","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Finput-validation-and-data-sanitization-ids\u002Fids30-pl","7.sei-cert-perl-coding-standard\u002F3.rules\u002F5.input-validation-and-data-sanitization-ids\u002F2.ids30-pl",{"title":646,"path":647,"stem":648},"IDS31-PL. Do not use the two-argument form of open()","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Finput-validation-and-data-sanitization-ids\u002Fids31-pl","7.sei-cert-perl-coding-standard\u002F3.rules\u002F5.input-validation-and-data-sanitization-ids\u002F3.ids31-pl",{"title":650,"path":651,"stem":652},"IDS32-PL. Validate any integer that is used as an array index","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Finput-validation-and-data-sanitization-ids\u002Fids32-pl","7.sei-cert-perl-coding-standard\u002F3.rules\u002F5.input-validation-and-data-sanitization-ids\u002F4.ids32-pl",{"title":654,"path":655,"stem":656},"IDS33-PL. Sanitize untrusted data passed across a trust boundary","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Finput-validation-and-data-sanitization-ids\u002Fids33-pl","7.sei-cert-perl-coding-standard\u002F3.rules\u002F5.input-validation-and-data-sanitization-ids\u002F5.ids33-pl",{"title":658,"path":659,"stem":660},"IDS34-PL. Do not pass untrusted, unsanitized data to a command interpreter","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Finput-validation-and-data-sanitization-ids\u002Fids34-pl","7.sei-cert-perl-coding-standard\u002F3.rules\u002F5.input-validation-and-data-sanitization-ids\u002F6.ids34-pl",{"title":662,"path":663,"stem":664},"IDS35-PL. Do not invoke the eval form with a string argument","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Finput-validation-and-data-sanitization-ids\u002Fids35-pl","7.sei-cert-perl-coding-standard\u002F3.rules\u002F5.input-validation-and-data-sanitization-ids\u002F7.ids35-pl",{"title":666,"path":667,"stem":668},"Integers (INT)","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fintegers-int","7.sei-cert-perl-coding-standard\u002F3.rules\u002F6.integers-int",{"title":670,"path":671,"stem":672,"children":673},"Miscellaneous (MSC)","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fmiscellaneous-msc","7.sei-cert-perl-coding-standard\u002F3.rules\u002F7.miscellaneous-msc\u002F1.index",[674,675,679],{"title":670,"path":671,"stem":672},{"title":676,"path":677,"stem":678},"MSC31-PL. Do not embed global statements","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fmsc31-pl","7.sei-cert-perl-coding-standard\u002F3.rules\u002F7.miscellaneous-msc\u002F2.msc31-pl",{"title":680,"path":681,"stem":682},"MSC32-PL. Do not provide a module's version value from outside the module","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fmiscellaneous-msc\u002Fmsc32-pl","7.sei-cert-perl-coding-standard\u002F3.rules\u002F7.miscellaneous-msc\u002F3.msc32-pl",{"title":684,"path":685,"stem":686,"children":687},"Object-Oriented Programming (OOP)","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fobject-oriented-programming-oop","7.sei-cert-perl-coding-standard\u002F3.rules\u002F8.object-oriented-programming-oop\u002F1.index",[688,689],{"title":684,"path":685,"stem":686},{"title":690,"path":691,"stem":692},"OOP32-PL. Prohibit indirect object call syntax","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fobject-oriented-programming-oop\u002Foop32-pl","7.sei-cert-perl-coding-standard\u002F3.rules\u002F8.object-oriented-programming-oop\u002F2.oop32-pl",{"title":694,"path":695,"stem":696,"children":697},"Strings (STR)","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fstrings-str","7.sei-cert-perl-coding-standard\u002F3.rules\u002F9.strings-str\u002F1.index",[698,699,703],{"title":694,"path":695,"stem":696},{"title":700,"path":701,"stem":702},"STR30-PL. Capture variables should be read only immediately after a successful regex match","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fstrings-str\u002Fstr30-pl","7.sei-cert-perl-coding-standard\u002F3.rules\u002F9.strings-str\u002F2.str30-pl",{"title":704,"path":705,"stem":706},"STR31-PL. Do not pass string literals to functions expecting regexes","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fstrings-str\u002Fstr31-pl","7.sei-cert-perl-coding-standard\u002F3.rules\u002F9.strings-str\u002F3.str31-pl",{"title":708,"path":709,"stem":710,"children":711},"Recommendations","\u002Fsei-cert-perl-coding-standard\u002Frecommendations","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F1.index",[712,713,742,775,788,801,814,830,843],{"title":708,"path":709,"stem":710},{"title":582,"path":714,"stem":715,"children":716},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F2.declarations-and-initialization-dcl\u002F1.index",[717,718,722,726,730,734,738],{"title":582,"path":714,"stem":715},{"title":719,"path":720,"stem":721},"DCL00-PL. Do not use subroutine prototypes","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl00-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F2.declarations-and-initialization-dcl\u002F2.dcl00-pl",{"title":723,"path":724,"stem":725},"DCL01-PL. Do not reuse variable names in subscopes","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl01-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F2.declarations-and-initialization-dcl\u002F3.dcl01-pl",{"title":727,"path":728,"stem":729},"DCL02-PL. Any modified punctuation variable should be declared local","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl02-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F2.declarations-and-initialization-dcl\u002F4.dcl02-pl",{"title":731,"path":732,"stem":733},"DCL03-PL. Do not read a foreach iterator variable after the loop has completed","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl03-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F2.declarations-and-initialization-dcl\u002F5.dcl03-pl",{"title":735,"path":736,"stem":737},"DCL04-PL. Always initialize local variables","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl04-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F2.declarations-and-initialization-dcl\u002F6.dcl04-pl",{"title":739,"path":740,"stem":741},"DCL05-PL. Prohibit Perl4 package names","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fdeclarations-and-initialization-dcl\u002Fdcl05-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F2.declarations-and-initialization-dcl\u002F7.dcl05-pl",{"title":600,"path":743,"stem":744,"children":745},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fexpressions-exp","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F3.expressions-exp\u002F1.index",[746,747,751,755,759,763,767,771],{"title":600,"path":743,"stem":744},{"title":748,"path":749,"stem":750},"EXP00-PL. Do not return undef","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fexpressions-exp\u002Fexp00-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F3.expressions-exp\u002F2.exp00-pl",{"title":752,"path":753,"stem":754},"EXP01-PL. Do not depend on the return value of functions that lack a return statement","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fexpressions-exp\u002Fexp01-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F3.expressions-exp\u002F3.exp01-pl",{"title":756,"path":757,"stem":758},"EXP03-PL. Do not diminish the benefits of constants by assuming their values in expressions","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fexpressions-exp\u002Fexp03-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F3.expressions-exp\u002F4.exp03-pl",{"title":760,"path":761,"stem":762},"EXP04-PL. Do not mix the early-precedence logical operators with late-precedence logical operators","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fexpressions-exp\u002Fexp04-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F3.expressions-exp\u002F5.exp04-pl",{"title":764,"path":765,"stem":766},"EXP06-PL. Do not use an array in an implicit scalar context","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fexpressions-exp\u002Fexp06-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F3.expressions-exp\u002F6.exp06-pl",{"title":768,"path":769,"stem":770},"EXP07-PL. Do not modify $_ in list or sorting functions","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fexpressions-exp\u002Fexp07-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F3.expressions-exp\u002F7.exp07-pl",{"title":772,"path":773,"stem":774},"EXP08-PL. Do not use the one-argument form of select()","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fexpressions-exp\u002Fexp08-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F3.expressions-exp\u002F8.exp08-pl",{"title":626,"path":776,"stem":777,"children":778},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Ffile-input-and-output-fio","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F4.file-input-and-output-fio\u002F1.index",[779,780,784],{"title":626,"path":776,"stem":777},{"title":781,"path":782,"stem":783},"FIO00-PL. Do not use bareword file handles","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Ffile-input-and-output-fio\u002Ffio00-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F4.file-input-and-output-fio\u002F2.fio00-pl",{"title":785,"path":786,"stem":787},"FIO01-PL. Do not operate on files that can be modified by untrusted users","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Ffile-input-and-output-fio\u002Ffio01-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F4.file-input-and-output-fio\u002F3.fio01-pl",{"title":636,"path":789,"stem":790,"children":791},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Finput-validation-and-data-sanitization-ids","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F5.input-validation-and-data-sanitization-ids\u002F1.index",[792,793,797],{"title":636,"path":789,"stem":790},{"title":794,"path":795,"stem":796},"IDS00-PL. Canonicalize path names before validating them","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Finput-validation-and-data-sanitization-ids\u002Fids00-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F5.input-validation-and-data-sanitization-ids\u002F2.ids00-pl",{"title":798,"path":799,"stem":800},"IDS01-PL. Use taint mode while being aware of its limitations","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Finput-validation-and-data-sanitization-ids\u002Fids01-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F5.input-validation-and-data-sanitization-ids\u002F3.ids01-pl",{"title":666,"path":802,"stem":803,"children":804},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fintegers-int","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F6.integers-int\u002F1.index",[805,806,810],{"title":666,"path":802,"stem":803},{"title":807,"path":808,"stem":809},"INT00-PL. Do not prepend leading zeroes to integer literals","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fintegers-int\u002Fint00-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F6.integers-int\u002F2.int00-pl",{"title":811,"path":812,"stem":813},"INT01-PL. Use small integers when precise computation is required","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fintegers-int\u002Fint01-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F6.integers-int\u002F3.int01-pl",{"title":670,"path":815,"stem":816,"children":817},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F7.miscellaneous-msc\u002F1.index",[818,819,820,821,822,826],{"title":670,"path":815,"stem":816},{"title":508,"path":468,"stem":509},{"title":30,"path":502,"stem":504},{"title":511,"path":481,"stem":512},{"title":823,"path":824,"stem":825},"MSC03-PL. Do not use select() to sleep","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc03-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F7.miscellaneous-msc\u002F5.msc03-pl",{"title":827,"path":828,"stem":829},"MSC04-PL. Do not use comma to separate statements","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc04-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F7.miscellaneous-msc\u002F6.msc04-pl",{"title":684,"path":831,"stem":832,"children":833},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fobject-oriented-programming-oop","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F8.object-oriented-programming-oop\u002F1.index",[834,835,839],{"title":684,"path":831,"stem":832},{"title":836,"path":837,"stem":838},"OOP00-PL. Do not signify inheritence at runtime","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fobject-oriented-programming-oop\u002Foop00-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F8.object-oriented-programming-oop\u002F2.oop00-pl",{"title":840,"path":841,"stem":842},"OOP01-PL. Do not access private variables or subroutines in other packages","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fobject-oriented-programming-oop\u002Foop01-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F8.object-oriented-programming-oop\u002F3.oop01-pl",{"title":694,"path":844,"stem":845},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fstrings-str","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F9.strings-str",{"title":847,"path":848,"stem":849,"children":850},"Back Matter","\u002Fsei-cert-perl-coding-standard\u002Fback-matter","7.sei-cert-perl-coding-standard\u002F5.back-matter\u002F1.index",[851,852,856,886],{"title":847,"path":848,"stem":849},{"title":853,"path":854,"stem":855},"AA. Bibliography","\u002Fsei-cert-perl-coding-standard\u002Fback-matter\u002Faa-bibliography","7.sei-cert-perl-coding-standard\u002F5.back-matter\u002F2.aa-bibliography",{"title":857,"path":858,"stem":859,"children":860},"BB. Analyzers","\u002Fsei-cert-perl-coding-standard\u002Fback-matter\u002Fbb-analyzers","7.sei-cert-perl-coding-standard\u002F5.back-matter\u002F3.bb-analyzers\u002F1.index",[861,862,866,870,874,878,882],{"title":857,"path":858,"stem":859},{"title":863,"path":864,"stem":865},"Critic","\u002Fsei-cert-perl-coding-standard\u002Fback-matter\u002Fbb-analyzers\u002Fcritic","7.sei-cert-perl-coding-standard\u002F5.back-matter\u002F3.bb-analyzers\u002F2.critic",{"title":867,"path":868,"stem":869},"Critic_V","\u002Fsei-cert-perl-coding-standard\u002Fback-matter\u002Fbb-analyzers\u002Fcritic_v","7.sei-cert-perl-coding-standard\u002F5.back-matter\u002F3.bb-analyzers\u002F3.critic_v",{"title":871,"path":872,"stem":873},"Lint","\u002Fsei-cert-perl-coding-standard\u002Fback-matter\u002Fbb-analyzers\u002Flint","7.sei-cert-perl-coding-standard\u002F5.back-matter\u002F3.bb-analyzers\u002F4.lint",{"title":875,"path":876,"stem":877},"Lint_V","\u002Fsei-cert-perl-coding-standard\u002Fback-matter\u002Fbb-analyzers\u002Flint_v","7.sei-cert-perl-coding-standard\u002F5.back-matter\u002F3.bb-analyzers\u002F5.lint_v",{"title":879,"path":880,"stem":881},"Security Reviewer - Static Reviewer","\u002Fsei-cert-perl-coding-standard\u002Fback-matter\u002Fbb-analyzers\u002Fsecurity-reviewer-static-reviewer","7.sei-cert-perl-coding-standard\u002F5.back-matter\u002F3.bb-analyzers\u002F6.security-reviewer-static-reviewer",{"title":883,"path":884,"stem":885},"Security Reviewer - Static Reviewer_V","\u002Fsei-cert-perl-coding-standard\u002Fback-matter\u002Fbb-analyzers\u002Fsecurity-reviewer-static-reviewer_v","7.sei-cert-perl-coding-standard\u002F5.back-matter\u002F3.bb-analyzers\u002F7.security-reviewer-static-reviewer_v",{"title":887,"path":888,"stem":889},"CC. Risk Assessments","\u002Fsei-cert-perl-coding-standard\u002Fback-matter\u002Fcc-risk-assessments","7.sei-cert-perl-coding-standard\u002F5.back-matter\u002F4.cc-risk-assessments",1775657795512]