[{"data":1,"prerenderedAt":1001},["ShallowReactive",2],{"global-navigation":3,"page-\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl31-pl":28,"surround-\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl31-pl":617,"sidebar-sei-cert-perl-coding-standard":624},[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":607,"extension":608,"meta":609,"navigation":7,"path":613,"seo":614,"stem":615,"__hash__":616},"content\u002F7.sei-cert-perl-coding-standard\u002F3.rules\u002F2.declarations-and-initialization-dcl\u002F3.dcl31-pl.md","DCL31-PL. Do not overload reserved keywords or subroutines",{"type":32,"value":33,"toc":597},"minimark",[34,38,63,66,71,81,222,228,232,235,326,330,337,341,344,411,415,443,448,486,490,569,572,593],[35,36,30],"h1",{"id":37},"dcl31-pl-do-not-overload-reserved-keywords-or-subroutines",[39,40,41,42,46,47,52,53,56,57,46,60,62],"p",{},"Perl has a large number of built-in functions; they are described on the ",[43,44,45],"code",{},"perlfunc"," manpage [ ",[48,49,51],"a",{"href":50},"\u002Fsei-cert-perl-coding-standard\u002Fback-matter\u002Faa-bibliography#AA.Bibliography-Manpages","Wall 2011"," ]. Perl also has a handful of reserved keywords such as ",[43,54,55],{},"while"," ; they are described on the ",[43,58,59],{},"perlsyn",[48,61,51],{"href":50}," ].",[39,64,65],{},"Do not use an identifier for a subroutine that has been reserved for a built-in function or keyword.",[67,68,70],"h2",{"id":69},"noncompliant-code-example","Noncompliant Code Example",[39,72,73,74,77,78,80],{},"This noncompliant code example codes a subroutine called ",[43,75,76],{},"open()"," , which clashes with the ",[43,79,76],{}," built-in function.",[82,83,85],"code-block",{"quality":84},"bad",[86,87,92],"pre",{"className":88,"code":89,"language":90,"meta":91,"style":91},"language-perl shiki shiki-themes github-light github-dark monokai","sub open {\n  my ($arg1, $arg2, $arg3) = @_;\n  print \"arg1 = $arg1\\n\";\n  print \"arg2 = $arg2\\n\";\n  print \"arg3 = $arg3\\n\";\n}\n\nopen( my $input, \"\u003C\", \"foo.txt\");     # What does this do?\n","perl","",[43,93,94,111,121,145,162,179,185,191],{"__ignoreMap":91},[95,96,99,103,107],"span",{"class":97,"line":98},"line",1,[95,100,102],{"class":101},"sq6CD","sub",[95,104,106],{"class":105},"srTi1"," open",[95,108,110],{"class":109},"sMOD_"," {\n",[95,112,114,118],{"class":97,"line":113},2,[95,115,117],{"class":116},"sC2Qs","  my",[95,119,120],{"class":109}," ($arg1, $arg2, $arg3) = @_;\n",[95,122,124,128,132,135,139,142],{"class":97,"line":123},3,[95,125,127],{"class":126},"sTrkL","  print",[95,129,131],{"class":130},"sstjo"," \"arg1 = ",[95,133,134],{"class":109},"$arg1",[95,136,138],{"class":137},"s7F3e","\\n",[95,140,141],{"class":130},"\"",[95,143,144],{"class":109},";\n",[95,146,148,150,153,156,158,160],{"class":97,"line":147},4,[95,149,127],{"class":126},[95,151,152],{"class":130}," \"arg2 = ",[95,154,155],{"class":109},"$arg2",[95,157,138],{"class":137},[95,159,141],{"class":130},[95,161,144],{"class":109},[95,163,165,167,170,173,175,177],{"class":97,"line":164},5,[95,166,127],{"class":126},[95,168,169],{"class":130}," \"arg3 = ",[95,171,172],{"class":109},"$arg3",[95,174,138],{"class":137},[95,176,141],{"class":130},[95,178,144],{"class":109},[95,180,182],{"class":97,"line":181},6,[95,183,184],{"class":109},"}\n",[95,186,188],{"class":97,"line":187},7,[95,189,190],{"emptyLinePlaceholder":7},"\n",[95,192,194,197,200,203,206,209,212,215,218],{"class":97,"line":193},8,[95,195,196],{"class":126},"open",[95,198,199],{"class":109},"( ",[95,201,202],{"class":116},"my",[95,204,205],{"class":109}," $input, ",[95,207,208],{"class":130},"\"\u003C\"",[95,210,211],{"class":109},", ",[95,213,214],{"class":130},"\"foo.txt\"",[95,216,217],{"class":109},");     ",[95,219,221],{"class":220},"s8-w5","# What does this do?\n",[39,223,224,225,227],{},"Perl (v5.12.1) actually invokes the built-in ",[43,226,76],{}," rather than the newly crafted subroutine.",[67,229,231],{"id":230},"compliant-solution","Compliant Solution",[39,233,234],{},"This compliant solution uses a different name for its subroutine; consequently, it behaves as expected.",[82,236,238],{"quality":237},"good",[86,239,241],{"className":88,"code":240,"language":90,"meta":91,"style":91},"sub my_open {\n  my ($arg1, $arg2, $arg3) = @_;\n  print \"arg1 = $arg1\\n\";\n  print \"arg2 = $arg2\\n\";\n  print \"arg3 = $arg3\\n\";\n}\n\nmy_open( my $input, \"\u003C\", \"foo.txt\");\n",[43,242,243,252,258,272,286,300,304,308],{"__ignoreMap":91},[95,244,245,247,250],{"class":97,"line":98},[95,246,102],{"class":101},[95,248,249],{"class":105}," my_open",[95,251,110],{"class":109},[95,253,254,256],{"class":97,"line":113},[95,255,117],{"class":116},[95,257,120],{"class":109},[95,259,260,262,264,266,268,270],{"class":97,"line":123},[95,261,127],{"class":126},[95,263,131],{"class":130},[95,265,134],{"class":109},[95,267,138],{"class":137},[95,269,141],{"class":130},[95,271,144],{"class":109},[95,273,274,276,278,280,282,284],{"class":97,"line":147},[95,275,127],{"class":126},[95,277,152],{"class":130},[95,279,155],{"class":109},[95,281,138],{"class":137},[95,283,141],{"class":130},[95,285,144],{"class":109},[95,287,288,290,292,294,296,298],{"class":97,"line":164},[95,289,127],{"class":126},[95,291,169],{"class":130},[95,293,172],{"class":109},[95,295,138],{"class":137},[95,297,141],{"class":130},[95,299,144],{"class":109},[95,301,302],{"class":97,"line":181},[95,303,184],{"class":109},[95,305,306],{"class":97,"line":187},[95,307,190],{"emptyLinePlaceholder":7},[95,309,310,313,315,317,319,321,323],{"class":97,"line":193},[95,311,312],{"class":109},"my_open( ",[95,314,202],{"class":116},[95,316,205],{"class":109},[95,318,208],{"class":130},[95,320,211],{"class":109},[95,322,214],{"class":130},[95,324,325],{"class":109},");\n",[67,327,329],{"id":328},"exceptions","Exceptions",[39,331,332,336],{},[333,334,335],"strong",{},"DCL31-PL-EX0"," : This rule does not apply to object methods. Object methods are easy for the parser to distinguish from built-in functions or keywords because of their distinct syntax.",[67,338,340],{"id":339},"risk-assessment","Risk Assessment",[39,342,343],{},"Using reserved keywords can lead to unexpected program behavior and surprising results.",[345,346,347,348,347,378],"table",{},"\n  ",[349,350,351,352,347],"thead",{},"\n    ",[353,354,355,356,355,360,355,363,355,366,355,369,355,372,355,375,351],"tr",{},"\n      ",[357,358,359],"th",{},"Rule",[357,361,362],{},"Severity",[357,364,365],{},"Likelihood",[357,367,368],{},"Detectable",[357,370,371],{},"Repairable",[357,373,374],{},"Priority",[357,376,377],{},"Level",[379,380,351,381,347],"tbody",{},[353,382,355,383,355,387,355,390,355,393,355,396,355,399,355,406,351],{},[384,385,386],"td",{},"DCL31-PL",[384,388,389],{},"Low",[384,391,392],{},"Probable",[384,394,395],{},"Yes",[384,397,398],{},"No",[384,400,402],{"style":401},"color: #27ae60;",[403,404,405],"b",{},"P4",[384,407,408],{"style":401},[403,409,410],{},"L3",[67,412,414],{"id":413},"automated-detection","Automated Detection",[345,416,417,425],{},[349,418,419],{},[353,420,421,423],{},[357,422],{},[357,424],{},[379,426,427,435],{},[353,428,429,432],{},[384,430,431],{},"Tool",[384,433,434],{},"Diagnostic",[353,436,437,440],{},[384,438,439],{},"Perl::Critic",[384,441,442],{},"Subroutines::ProhibitBuiltinHomonyms",[444,445,447],"h3",{"id":446},"related-guidelines","Related Guidelines",[345,449,450,458],{},[349,451,452],{},[353,453,454,456],{},[357,455],{},[357,457],{},[379,459,460,473],{},[353,461,462,467],{},[384,463,464],{},[48,465,466],{"href":17},"SEI CERT C Coding Standard",[384,468,469],{},[48,470,472],{"href":471},"\u002Fsei-cert-c-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl37-c","DCL37-C. Do not declare or define a reserved identifier",[353,474,475,480],{},[384,476,477],{},[48,478,479],{"href":20},"SEI CERT C++ Coding Standard",[384,481,482],{},[48,483,485],{"href":484},"\u002Fsei-cert-cpp-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl51-cpp","DCL51-CPP. Do not declare or define a reserved identifier",[67,487,489],{"id":488},"bibliography","Bibliography",[345,491,494,503],{"className":492},[493],"wrapped",[495,496,497,501],"colgroup",{},[498,499],"col",{"style":500},"width: 50%",[498,502],{"style":500},[379,504,505,518,533,553],{},[353,506,509,514],{"className":507},[508],"header",[357,510,511],{},[512,513],"br",{},[357,515,516],{},[512,517],{},[353,519,522,530],{"className":520},[521],"odd",[384,523,524,525,529],{},"[ ",[48,526,528],{"href":527},"\u002Fsei-cert-perl-coding-standard\u002Fback-matter\u002Faa-bibliography#AA.Bibliography-AABibliography-Conway05","Conway 2005"," ]",[384,531,532],{},"\"Homonyms,\" p. 177",[353,534,537,543],{"className":535},[536],"even",[384,538,524,539,529],{},[48,540,542],{"href":541},"\u002Fsei-cert-perl-coding-standard\u002Fback-matter\u002Faa-bibliography#AA.Bibliography-CPAN","CPAN",[384,544,545,549,550],{},[48,546,548],{"href":547},"http:\u002F\u002Fsearch.cpan.org\u002F%7Eelliotjs\u002FPerl-Critic-1.116\u002F","Elliot Shank, Perl-Critic-1.116"," ",[48,551,442],{"href":552},"http:\u002F\u002Fsearch.cpan.org\u002Fdist\u002FPerl-Critic\u002Flib\u002FPerl\u002FCritic\u002FPolicy\u002FSubroutines\u002FProhibitBuiltinHomonyms.pm",[353,554,556,560],{"className":555},[521],[384,557,524,558,529],{},[48,559,51],{"href":50},[384,561,562,565,566],{},[48,563,45],{"href":564},"http:\u002F\u002Fperldoc.perl.org\u002Fperlfunc.html"," , ",[48,567,59],{"href":568},"http:\u002F\u002Fperldoc.perl.org\u002Fperlsyn.html",[570,571],"hr",{},[39,573,574,549,581,549,587],{},[48,575,577],{"href":576},"\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl30-pl",[578,579],"img",{"src":580},"\u002Fattachments\u002F88890562\u002F88892207.png",[48,582,584],{"href":583},"\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002F",[578,585],{"src":586},"\u002Fattachments\u002F88890562\u002F88892209.png",[48,588,590],{"href":589},"\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl33-pl",[578,591],{"src":592},"\u002Fattachments\u002F88890562\u002F88892208.png",[594,595,596],"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 .s7F3e, html code.shiki .s7F3e{--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}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":91,"searchDepth":113,"depth":113,"links":598},[599,600,601,602,603,606],{"id":69,"depth":113,"text":70},{"id":230,"depth":113,"text":231},{"id":328,"depth":113,"text":329},{"id":339,"depth":113,"text":340},{"id":413,"depth":113,"text":414,"children":604},[605],{"id":446,"depth":123,"text":447},{"id":488,"depth":113,"text":489},"Perl has a large number of built-in functions; they are described on the perlfunc manpage [ Wall 2011 ]. Perl also has a handful of reserved keywords such as while ; they are described on the perlsyn manpage [ Wall 2011 ].","md",{"tags":610},[611,612],"dcl","rule","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fdeclarations-and-initialization-dcl\u002Fdcl31-pl",{"title":30,"description":607},"7.sei-cert-perl-coding-standard\u002F3.rules\u002F2.declarations-and-initialization-dcl\u002F3.dcl31-pl","pMN0WqVXtrk_7SL8K8S2rTNPSLTySXJmFoV4pC7E3lY",[618,621],{"title":619,"path":576,"stem":620,"children":-1},"DCL30-PL. Do not import deprecated modules","7.sei-cert-perl-coding-standard\u002F3.rules\u002F2.declarations-and-initialization-dcl\u002F2.dcl30-pl",{"title":622,"path":589,"stem":623,"children":-1},"DCL33-PL. Declare identifiers before using them","7.sei-cert-perl-coding-standard\u002F3.rules\u002F2.declarations-and-initialization-dcl\u002F4.dcl33-pl",[625],{"title":626,"path":627,"stem":628,"children":629},"SEI CERT Perl Coding Standard","\u002Fsei-cert-perl-coding-standard","7.sei-cert-perl-coding-standard\u002F1.index",[630,631,686,809,957],{"title":626,"path":627,"stem":628},{"title":632,"path":633,"stem":634,"children":635},"Front Matter","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F1.index",[636,637,641],{"title":632,"path":633,"stem":634},{"title":638,"path":639,"stem":640},"Deprecations","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fdeprecations","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F2.deprecations",{"title":642,"path":643,"stem":644,"children":645},"Introduction","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fintroduction","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F3.introduction\u002F01.index",[646,647,651,655,659,663,667,671,674,678,682],{"title":642,"path":643,"stem":644},{"title":648,"path":649,"stem":650},"Scope","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fscope","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F3.introduction\u002F01.scope",{"title":652,"path":653,"stem":654},"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":656,"path":657,"stem":658},"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":660,"path":661,"stem":662},"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":664,"path":665,"stem":666},"Usage","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fusage","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F3.introduction\u002F05.usage",{"title":668,"path":669,"stem":670},"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":340,"path":672,"stem":673},"\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":675,"path":676,"stem":677},"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":679,"path":680,"stem":681},"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":683,"path":684,"stem":685},"Acknowledgements","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fintroduction\u002Facknowledgements","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F3.introduction\u002F11.acknowledgements",{"title":687,"path":688,"stem":689,"children":690},"Rules","\u002Fsei-cert-perl-coding-standard\u002Frules","7.sei-cert-perl-coding-standard\u002F3.rules\u002F1.index",[691,692,701,727,737,767,771,785,795],{"title":687,"path":688,"stem":689},{"title":693,"path":694,"stem":695,"children":696},"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",[697,698,699,700],{"title":693,"path":694,"stem":695},{"title":619,"path":576,"stem":620},{"title":30,"path":613,"stem":615},{"title":622,"path":589,"stem":623},{"title":702,"path":703,"stem":704,"children":705},"Expressions (EXP)","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fexpressions-exp","7.sei-cert-perl-coding-standard\u002F3.rules\u002F3.expressions-exp\u002F1.index",[706,707,711,715,719,723],{"title":702,"path":703,"stem":704},{"title":708,"path":709,"stem":710},"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":712,"path":713,"stem":714},"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":716,"path":717,"stem":718},"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":720,"path":721,"stem":722},"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":724,"path":725,"stem":726},"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":728,"path":729,"stem":730,"children":731},"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",[732,733],{"title":728,"path":729,"stem":730},{"title":734,"path":735,"stem":736},"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":738,"path":739,"stem":740,"children":741},"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",[742,743,747,751,755,759,763],{"title":738,"path":739,"stem":740},{"title":744,"path":745,"stem":746},"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":748,"path":749,"stem":750},"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":752,"path":753,"stem":754},"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":756,"path":757,"stem":758},"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":760,"path":761,"stem":762},"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":764,"path":765,"stem":766},"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":768,"path":769,"stem":770},"Integers (INT)","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fintegers-int","7.sei-cert-perl-coding-standard\u002F3.rules\u002F6.integers-int",{"title":772,"path":773,"stem":774,"children":775},"Miscellaneous (MSC)","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fmiscellaneous-msc","7.sei-cert-perl-coding-standard\u002F3.rules\u002F7.miscellaneous-msc\u002F1.index",[776,777,781],{"title":772,"path":773,"stem":774},{"title":778,"path":779,"stem":780},"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":782,"path":783,"stem":784},"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":786,"path":787,"stem":788,"children":789},"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",[790,791],{"title":786,"path":787,"stem":788},{"title":792,"path":793,"stem":794},"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":796,"path":797,"stem":798,"children":799},"Strings (STR)","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fstrings-str","7.sei-cert-perl-coding-standard\u002F3.rules\u002F9.strings-str\u002F1.index",[800,801,805],{"title":796,"path":797,"stem":798},{"title":802,"path":803,"stem":804},"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":806,"path":807,"stem":808},"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":810,"path":811,"stem":812,"children":813},"Recommendations","\u002Fsei-cert-perl-coding-standard\u002Frecommendations","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F1.index",[814,815,844,877,890,903,916,941,954],{"title":810,"path":811,"stem":812},{"title":693,"path":816,"stem":817,"children":818},"\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",[819,820,824,828,832,836,840],{"title":693,"path":816,"stem":817},{"title":821,"path":822,"stem":823},"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":825,"path":826,"stem":827},"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":829,"path":830,"stem":831},"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":833,"path":834,"stem":835},"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":837,"path":838,"stem":839},"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":841,"path":842,"stem":843},"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":702,"path":845,"stem":846,"children":847},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fexpressions-exp","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F3.expressions-exp\u002F1.index",[848,849,853,857,861,865,869,873],{"title":702,"path":845,"stem":846},{"title":850,"path":851,"stem":852},"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":854,"path":855,"stem":856},"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":858,"path":859,"stem":860},"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":862,"path":863,"stem":864},"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":866,"path":867,"stem":868},"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":870,"path":871,"stem":872},"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":874,"path":875,"stem":876},"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":728,"path":878,"stem":879,"children":880},"\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",[881,882,886],{"title":728,"path":878,"stem":879},{"title":883,"path":884,"stem":885},"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":887,"path":888,"stem":889},"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":738,"path":891,"stem":892,"children":893},"\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",[894,895,899],{"title":738,"path":891,"stem":892},{"title":896,"path":897,"stem":898},"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":900,"path":901,"stem":902},"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":768,"path":904,"stem":905,"children":906},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fintegers-int","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F6.integers-int\u002F1.index",[907,908,912],{"title":768,"path":904,"stem":905},{"title":909,"path":910,"stem":911},"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":913,"path":914,"stem":915},"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":772,"path":917,"stem":918,"children":919},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F7.miscellaneous-msc\u002F1.index",[920,921,925,929,933,937],{"title":772,"path":917,"stem":918},{"title":922,"path":923,"stem":924},"MSC00-PL. Detect and remove dead code","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc00-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F7.miscellaneous-msc\u002F2.msc00-pl",{"title":926,"path":927,"stem":928},"MSC01-PL. Detect and remove unused variables","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc\u002Fmsc01-pl","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F7.miscellaneous-msc\u002F3.msc01-pl",{"title":930,"path":931,"stem":932},"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":934,"path":935,"stem":936},"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":938,"path":939,"stem":940},"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":786,"path":942,"stem":943,"children":944},"\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",[945,946,950],{"title":786,"path":942,"stem":943},{"title":947,"path":948,"stem":949},"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":951,"path":952,"stem":953},"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":796,"path":955,"stem":956},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fstrings-str","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F9.strings-str",{"title":958,"path":959,"stem":960,"children":961},"Back Matter","\u002Fsei-cert-perl-coding-standard\u002Fback-matter","7.sei-cert-perl-coding-standard\u002F5.back-matter\u002F1.index",[962,963,967,997],{"title":958,"path":959,"stem":960},{"title":964,"path":965,"stem":966},"AA. Bibliography","\u002Fsei-cert-perl-coding-standard\u002Fback-matter\u002Faa-bibliography","7.sei-cert-perl-coding-standard\u002F5.back-matter\u002F2.aa-bibliography",{"title":968,"path":969,"stem":970,"children":971},"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",[972,973,977,981,985,989,993],{"title":968,"path":969,"stem":970},{"title":974,"path":975,"stem":976},"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":978,"path":979,"stem":980},"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":982,"path":983,"stem":984},"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":986,"path":987,"stem":988},"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":990,"path":991,"stem":992},"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":994,"path":995,"stem":996},"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":998,"path":999,"stem":1000},"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",1775657793715]