[{"data":1,"prerenderedAt":1056},["ShallowReactive",2],{"global-navigation":3,"page-\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc00-pl":28,"surround-\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc00-pl":673,"sidebar-sei-cert-perl-coding-standard":681},[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":663,"extension":664,"meta":665,"navigation":7,"path":669,"seo":670,"stem":671,"__hash__":672},"content\u002F7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F7.miscellaneous-msc\u002F2.msc00-pl.md","MSC00-PL. Detect and remove dead code",{"type":32,"value":33,"toc":655},"minimark",[34,38,47,52,55,253,257,260,372,376,379,450,454,555,559,597,601,609,628,631,651],[35,36,30],"h1",{"id":37},"msc00-pl-detect-and-remove-dead-code",[39,40,41,42,46],"p",{},"Code that is never executed is known as ",[43,44,45],"em",{},"dead code"," . Typically, the presence of dead code indicates that a logic error has occurred as a result of changes to a program or the program's environment. To improve readability and ensure that logic errors are resolved, dead code should be identified, understood, and eliminated.",[48,49,51],"h2",{"id":50},"noncompliant-code-example","Noncompliant Code Example",[39,53,54],{},"This noncompliant code example contains code that cannot possibly execute.",[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\n  if ($name eq \"\") {\n    return $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  if (length( $name) == 0) {\n    die \"Invalid name\";  # cannot happen\n  }\n  return $name;\n}\n","perl","",[67,68,69,86,103,109,128,137,143,177,204,218,234,239,247],"code",{"__ignoreMap":65},[70,71,74,78,82],"span",{"class":72,"line":73},"line",1,[70,75,77],{"class":76},"sq6CD","sub",[70,79,81],{"class":80},"srTi1"," fix_name",[70,83,85],{"class":84},"sMOD_"," {\n",[70,87,89,93,96,100],{"class":72,"line":88},2,[70,90,92],{"class":91},"sC2Qs","  my",[70,94,95],{"class":84}," $name = ",[70,97,99],{"class":98},"sTrkL","shift",[70,101,102],{"class":84},";\n",[70,104,106],{"class":72,"line":105},3,[70,107,108],{"emptyLinePlaceholder":7},"\n",[70,110,112,115,118,121,125],{"class":72,"line":111},4,[70,113,114],{"class":91},"  if",[70,116,117],{"class":84}," ($name ",[70,119,120],{"class":98},"eq",[70,122,124],{"class":123},"sstjo"," \"\"",[70,126,127],{"class":84},") {\n",[70,129,131,134],{"class":72,"line":130},5,[70,132,133],{"class":91},"    return",[70,135,136],{"class":84}," $name;\n",[70,138,140],{"class":72,"line":139},6,[70,141,142],{"class":84},"  }\n",[70,144,146,149,152,154,158,160,164,167,170,172,175],{"class":72,"line":145},7,[70,147,148],{"class":84},"  $name =~ ",[70,150,151],{"class":98},"s",[70,153,6],{"class":123},[70,155,157],{"class":156},"sFxd3","^([a-z])",[70,159,6],{"class":123},[70,161,163],{"class":162},"sHuvb","\\U",[70,165,166],{"class":84},"$1",[70,168,169],{"class":162},"\\E",[70,171,6],{"class":123},[70,173,174],{"class":91},"g",[70,176,102],{"class":84},[70,178,180,182,184,186,189,191,194,196,198,200,202],{"class":72,"line":179},8,[70,181,148],{"class":84},[70,183,151],{"class":98},[70,185,6],{"class":123},[70,187,188],{"class":156}," ([a-z])",[70,190,6],{"class":123},[70,192,193],{"class":162}," \\U",[70,195,166],{"class":84},[70,197,169],{"class":162},[70,199,6],{"class":123},[70,201,174],{"class":91},[70,203,102],{"class":84},[70,205,207,209,212,215],{"class":72,"line":206},9,[70,208,114],{"class":91},[70,210,211],{"class":84}," (",[70,213,214],{"class":98},"length",[70,216,217],{"class":84},"( $name) == 0) {\n",[70,219,221,224,227,230],{"class":72,"line":220},10,[70,222,223],{"class":91},"    die",[70,225,226],{"class":123}," \"Invalid name\"",[70,228,229],{"class":84},";  ",[70,231,233],{"class":232},"s8-w5","# cannot happen\n",[70,235,237],{"class":72,"line":236},11,[70,238,142],{"class":84},[70,240,242,245],{"class":72,"line":241},12,[70,243,244],{"class":91},"  return",[70,246,136],{"class":84},[70,248,250],{"class":72,"line":249},13,[70,251,252],{"class":84},"}\n",[48,254,256],{"id":255},"compliant-solution","Compliant Solution",[39,258,259],{},"This compliant solution makes the dead code reachable.",[56,261,263],{"quality":262},"good",[60,264,266],{"className":62,"code":265,"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  if (length( $name) == 0) {\n    die \"Invalid name\";  # cannot happen\n  }\n  return $name;\n}\n",[67,267,268,276,286,290,314,338,348,358,362,368],{"__ignoreMap":65},[70,269,270,272,274],{"class":72,"line":73},[70,271,77],{"class":76},[70,273,81],{"class":80},[70,275,85],{"class":84},[70,277,278,280,282,284],{"class":72,"line":88},[70,279,92],{"class":91},[70,281,95],{"class":84},[70,283,99],{"class":98},[70,285,102],{"class":84},[70,287,288],{"class":72,"line":105},[70,289,108],{"emptyLinePlaceholder":7},[70,291,292,294,296,298,300,302,304,306,308,310,312],{"class":72,"line":111},[70,293,148],{"class":84},[70,295,151],{"class":98},[70,297,6],{"class":123},[70,299,157],{"class":156},[70,301,6],{"class":123},[70,303,163],{"class":162},[70,305,166],{"class":84},[70,307,169],{"class":162},[70,309,6],{"class":123},[70,311,174],{"class":91},[70,313,102],{"class":84},[70,315,316,318,320,322,324,326,328,330,332,334,336],{"class":72,"line":130},[70,317,148],{"class":84},[70,319,151],{"class":98},[70,321,6],{"class":123},[70,323,188],{"class":156},[70,325,6],{"class":123},[70,327,193],{"class":162},[70,329,166],{"class":84},[70,331,169],{"class":162},[70,333,6],{"class":123},[70,335,174],{"class":91},[70,337,102],{"class":84},[70,339,340,342,344,346],{"class":72,"line":139},[70,341,114],{"class":91},[70,343,211],{"class":84},[70,345,214],{"class":98},[70,347,217],{"class":84},[70,349,350,352,354,356],{"class":72,"line":145},[70,351,223],{"class":91},[70,353,226],{"class":123},[70,355,229],{"class":84},[70,357,233],{"class":232},[70,359,360],{"class":72,"line":179},[70,361,142],{"class":84},[70,363,364,366],{"class":72,"line":206},[70,365,244],{"class":91},[70,367,136],{"class":84},[70,369,370],{"class":72,"line":220},[70,371,252],{"class":84},[48,373,375],{"id":374},"risk-assessment","Risk Assessment",[39,377,378],{},"The presence dead code may indicate logic errors that can lead to unintended program behavior. As a result, resolving dead code can be an in-depth process requiring significant analysis.",[380,381,382,401],"table",{},[383,384,385],"thead",{},[386,387,388,391,393,395,397,399],"tr",{},[389,390],"th",{},[389,392],{},[389,394],{},[389,396],{},[389,398],{},[389,400],{},[402,403,404,425],"tbody",{},[386,405,406,410,413,416,419,422],{},[407,408,409],"td",{},"Recommendation",[407,411,412],{},"Severity",[407,414,415],{},"Likelihood",[407,417,418],{},"Remediation Cost",[407,420,421],{},"Priority",[407,423,424],{},"Level",[386,426,427,430,433,436,439,445],{},[407,428,429],{},"MSC00-PL",[407,431,432],{},"low",[407,434,435],{},"unlikely",[407,437,438],{},"high",[407,440,441],{},[442,443,444],"strong",{},"P1",[407,446,447],{},[442,448,449],{},"L3",[48,451,453],{"id":452},"automated-detection","Automated Detection",[380,455,458,467],{"className":456},[457],"wrapped",[459,460,461,465],"colgroup",{},[462,463],"col",{"style":464},"width: 50%",[462,466],{"style":464},[402,468,469,483,497,510],{},[386,470,473,478],{"className":471},[472],"header",[389,474,475],{},[39,476,477],{},"Tool",[389,479,480],{},[39,481,482],{},"Diagnostic",[386,484,487,492],{"className":485},[486],"odd",[407,488,489],{},[39,490,491],{},"Perl::Critic",[407,493,494],{},[39,495,496],{},"Subroutines::ProhibitUnusedPrivateSubroutines",[386,498,501,505],{"className":499},[500],"even",[407,502,503],{},[39,504,491],{},[407,506,507],{},[39,508,509],{},"ControlStructures::ProhibitUnreachableCode",[386,511,513,522],{"className":512},[486],[407,514,515],{},[39,516,517],{},[518,519,521],"a",{"href":520},"\u002Fsei-cert-perl-coding-standard\u002Fback-matter\u002Fbb-analyzers\u002Fsecurity-reviewer-static-reviewer","Security Reviewer - Static Reviewer",[407,523,524],{},[39,525,526,529,532,535,537,540,542,545,547,550,552],{},[442,527,528],{},"CWE561P1",[530,531],"br",{},[442,533,534],{},"PERL_D81",[530,536],{},[442,538,539],{},"CWE561P15",[530,541],{},[442,543,544],{},"CWE561P19",[530,546],{},[442,548,549],{},"CWE561P2",[530,551],{},[442,553,554],{},"CWE570P1",[48,556,558],{"id":557},"related-guidelines","Related Guidelines",[380,560,561,569],{},[383,562,563],{},[386,564,565,567],{},[389,566],{},[389,568],{},[402,570,571,584],{},[386,572,573,578],{},[407,574,575],{},[518,576,577],{"href":17},"SEI CERT C Coding Standard",[407,579,580],{},[518,581,583],{"href":582},"\u002Fsei-cert-c-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc07-c","MSC07-C. Detect and remove dead code",[386,585,586,591],{},[407,587,588],{},[518,589,590],{"href":20},"SEI CERT C++ Coding Standard",[407,592,593],{},[518,594,596],{"href":595},"\u002Fsei-cert-cpp-coding-standard\u002Fthe-void\u002Fvoid-3-recommendations\u002Fvoid-rec-49-miscellaneous-msc\u002Fvoid-msc07-cpp-detect-and-remove-dead-code","VOID MSC07-CPP. Detect and remove dead code",[48,598,600],{"id":599},"bibliography","Bibliography",[39,602,603,604,608],{},"[ ",[518,605,607],{"href":606},"\u002Fsei-cert-perl-coding-standard\u002Fback-matter\u002Faa-bibliography#AA.Bibliography-CPAN","CPAN"," ]",[39,610,611,617,618,622,623],{},[518,612,616],{"href":613,"rel":614},"http:\u002F\u002Fsearch.cpan.org\u002F%7Eelliotjs\u002FPerl-Critic-1.116\u002F",[615],"nofollow","Elliot Shank, Perl-Critic-1.116"," ",[518,619,496],{"href":620,"rel":621},"http:\u002F\u002Fsearch.cpan.org\u002Fdist\u002FPerl-Critic\u002Flib\u002FPerl\u002FCritic\u002FPolicy\u002FSubroutines\u002FProhibitUnusedPrivateSubroutines.pm",[615]," , ",[518,624,627],{"href":625,"rel":626},"http:\u002F\u002Fsearch.cpan.org\u002Fdist\u002FPerl-Critic\u002Flib\u002FPerl\u002FCritic\u002FPolicy\u002FVariables\u002FProhibitUnreachableCode.pm",[615],"Variables::ProhibitUnreachableCode",[629,630],"hr",{},[39,632,633,617,640,617,645],{},[518,634,636],{"href":635},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002F",[637,638],"img",{"src":639},"\u002Fattachments\u002F88890562\u002F88892207.png",[518,641,642],{"href":635},[637,643],{"src":644},"\u002Fattachments\u002F88890562\u002F88892209.png",[518,646,648],{"href":647},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc01-pl",[637,649],{"src":650},"\u002Fattachments\u002F88890562\u002F88892208.png",[652,653,654],"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 pre.shiki code .s8-w5, html code.shiki .s8-w5{--shiki-default:#6A737D;--shiki-dark:#6A737D;--shiki-sepia:#88846F}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":88,"depth":88,"links":656},[657,658,659,660,661,662],{"id":50,"depth":88,"text":51},{"id":255,"depth":88,"text":256},{"id":374,"depth":88,"text":375},{"id":452,"depth":88,"text":453},{"id":557,"depth":88,"text":558},{"id":599,"depth":88,"text":600},"Code that is never executed is known as dead code . Typically, the presence of dead code indicates that a logic error has occurred as a result of changes to a program or the program's environment. To improve readability and ensure that logic errors are resolved, dead code should be identified, understood, and eliminated.","md",{"tags":666},[667,668],"msc","recommendation","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc00-pl",{"title":30,"description":663},"7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F7.miscellaneous-msc\u002F2.msc00-pl","RtaUfNN5L5SnVoEq-JVEJxNwy0MxEih9wfDuTvwh7w0",[674,678],{"title":675,"path":676,"stem":677,"children":-1},"Miscellaneous (MSC)","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F7.miscellaneous-msc\u002F1.index",{"title":679,"path":647,"stem":680,"children":-1},"MSC01-PL. Detect and remove unused variables","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F7.miscellaneous-msc\u002F3.msc01-pl",[682],{"title":683,"path":684,"stem":685,"children":686},"SEI CERT Perl Coding Standard","\u002Fsei-cert-perl-coding-standard","7.sei-cert-perl-coding-standard\u002F1.index",[687,688,743,874,1014],{"title":683,"path":684,"stem":685},{"title":689,"path":690,"stem":691,"children":692},"Front Matter","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F1.index",[693,694,698],{"title":689,"path":690,"stem":691},{"title":695,"path":696,"stem":697},"Deprecations","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fdeprecations","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F2.deprecations",{"title":699,"path":700,"stem":701,"children":702},"Introduction","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fintroduction","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F3.introduction\u002F01.index",[703,704,708,712,716,720,724,728,731,735,739],{"title":699,"path":700,"stem":701},{"title":705,"path":706,"stem":707},"Scope","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fscope","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F3.introduction\u002F01.scope",{"title":709,"path":710,"stem":711},"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":713,"path":714,"stem":715},"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":717,"path":718,"stem":719},"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":721,"path":722,"stem":723},"Usage","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fusage","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F3.introduction\u002F05.usage",{"title":725,"path":726,"stem":727},"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":375,"path":729,"stem":730},"\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":732,"path":733,"stem":734},"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":736,"path":737,"stem":738},"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":740,"path":741,"stem":742},"Acknowledgements","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fintroduction\u002Facknowledgements","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F3.introduction\u002F11.acknowledgements",{"title":744,"path":745,"stem":746,"children":747},"Rules","\u002Fsei-cert-perl-coding-standard\u002Frules","7.sei-cert-perl-coding-standard\u002F3.rules\u002F1.index",[748,749,767,793,803,833,837,850,860],{"title":744,"path":745,"stem":746},{"title":750,"path":751,"stem":752,"children":753},"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",[754,755,759,763],{"title":750,"path":751,"stem":752},{"title":756,"path":757,"stem":758},"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":760,"path":761,"stem":762},"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":764,"path":765,"stem":766},"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":768,"path":769,"stem":770,"children":771},"Expressions (EXP)","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fexpressions-exp","7.sei-cert-perl-coding-standard\u002F3.rules\u002F3.expressions-exp\u002F1.index",[772,773,777,781,785,789],{"title":768,"path":769,"stem":770},{"title":774,"path":775,"stem":776},"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":778,"path":779,"stem":780},"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":782,"path":783,"stem":784},"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":786,"path":787,"stem":788},"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":790,"path":791,"stem":792},"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":794,"path":795,"stem":796,"children":797},"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",[798,799],{"title":794,"path":795,"stem":796},{"title":800,"path":801,"stem":802},"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":804,"path":805,"stem":806,"children":807},"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",[808,809,813,817,821,825,829],{"title":804,"path":805,"stem":806},{"title":810,"path":811,"stem":812},"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":814,"path":815,"stem":816},"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":818,"path":819,"stem":820},"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":822,"path":823,"stem":824},"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":826,"path":827,"stem":828},"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":830,"path":831,"stem":832},"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":834,"path":835,"stem":836},"Integers (INT)","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fintegers-int","7.sei-cert-perl-coding-standard\u002F3.rules\u002F6.integers-int",{"title":675,"path":838,"stem":839,"children":840},"\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fmiscellaneous-msc","7.sei-cert-perl-coding-standard\u002F3.rules\u002F7.miscellaneous-msc\u002F1.index",[841,842,846],{"title":675,"path":838,"stem":839},{"title":843,"path":844,"stem":845},"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":847,"path":848,"stem":849},"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":851,"path":852,"stem":853,"children":854},"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",[855,856],{"title":851,"path":852,"stem":853},{"title":857,"path":858,"stem":859},"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":861,"path":862,"stem":863,"children":864},"Strings (STR)","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fstrings-str","7.sei-cert-perl-coding-standard\u002F3.rules\u002F9.strings-str\u002F1.index",[865,866,870],{"title":861,"path":862,"stem":863},{"title":867,"path":868,"stem":869},"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":871,"path":872,"stem":873},"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":875,"path":876,"stem":877,"children":878},"Recommendations","\u002Fsei-cert-perl-coding-standard\u002Frecommendations","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F1.index",[879,880,909,942,955,968,981,998,1011],{"title":875,"path":876,"stem":877},{"title":750,"path":881,"stem":882,"children":883},"\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",[884,885,889,893,897,901,905],{"title":750,"path":881,"stem":882},{"title":886,"path":887,"stem":888},"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":890,"path":891,"stem":892},"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":894,"path":895,"stem":896},"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":898,"path":899,"stem":900},"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":902,"path":903,"stem":904},"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":906,"path":907,"stem":908},"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":768,"path":910,"stem":911,"children":912},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fexpressions-exp","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F3.expressions-exp\u002F1.index",[913,914,918,922,926,930,934,938],{"title":768,"path":910,"stem":911},{"title":915,"path":916,"stem":917},"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":919,"path":920,"stem":921},"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":923,"path":924,"stem":925},"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":927,"path":928,"stem":929},"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":931,"path":932,"stem":933},"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":935,"path":936,"stem":937},"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":939,"path":940,"stem":941},"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":794,"path":943,"stem":944,"children":945},"\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",[946,947,951],{"title":794,"path":943,"stem":944},{"title":948,"path":949,"stem":950},"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":952,"path":953,"stem":954},"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":804,"path":956,"stem":957,"children":958},"\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",[959,960,964],{"title":804,"path":956,"stem":957},{"title":961,"path":962,"stem":963},"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":965,"path":966,"stem":967},"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":834,"path":969,"stem":970,"children":971},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fintegers-int","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F6.integers-int\u002F1.index",[972,973,977],{"title":834,"path":969,"stem":970},{"title":974,"path":975,"stem":976},"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":978,"path":979,"stem":980},"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":675,"path":676,"stem":677,"children":982},[983,984,985,986,990,994],{"title":675,"path":676,"stem":677},{"title":30,"path":669,"stem":671},{"title":679,"path":647,"stem":680},{"title":987,"path":988,"stem":989},"MSC02-PL. Run programs with full warnings and strict checking","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc02-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F7.miscellaneous-msc\u002F4.msc02-pl",{"title":991,"path":992,"stem":993},"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":995,"path":996,"stem":997},"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":851,"path":999,"stem":1000,"children":1001},"\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",[1002,1003,1007],{"title":851,"path":999,"stem":1000},{"title":1004,"path":1005,"stem":1006},"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":1008,"path":1009,"stem":1010},"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":861,"path":1012,"stem":1013},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fstrings-str","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F9.strings-str",{"title":1015,"path":1016,"stem":1017,"children":1018},"Back Matter","\u002Fsei-cert-perl-coding-standard\u002Fback-matter","7.sei-cert-perl-coding-standard\u002F5.back-matter\u002F1.index",[1019,1020,1024,1052],{"title":1015,"path":1016,"stem":1017},{"title":1021,"path":1022,"stem":1023},"AA. Bibliography","\u002Fsei-cert-perl-coding-standard\u002Fback-matter\u002Faa-bibliography","7.sei-cert-perl-coding-standard\u002F5.back-matter\u002F2.aa-bibliography",{"title":1025,"path":1026,"stem":1027,"children":1028},"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",[1029,1030,1034,1038,1042,1046,1048],{"title":1025,"path":1026,"stem":1027},{"title":1031,"path":1032,"stem":1033},"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":1035,"path":1036,"stem":1037},"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":1039,"path":1040,"stem":1041},"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":1043,"path":1044,"stem":1045},"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":521,"path":520,"stem":1047},"7.sei-cert-perl-coding-standard\u002F5.back-matter\u002F3.bb-analyzers\u002F6.security-reviewer-static-reviewer",{"title":1049,"path":1050,"stem":1051},"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":1053,"path":1054,"stem":1055},"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]