[{"data":1,"prerenderedAt":1173},["ShallowReactive",2],{"global-navigation":3,"page-\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Ffile-input-and-output-fio\u002Ffio00-pl":28,"surround-\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Ffile-input-and-output-fio\u002Ffio00-pl":790,"sidebar-sei-cert-perl-coding-standard":798},[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":781,"meta":782,"navigation":7,"path":786,"seo":787,"stem":788,"__hash__":789},"content\u002F7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F4.file-input-and-output-fio\u002F2.fio00-pl.md","FIO00-PL. Do not use bareword file handles",{"type":32,"value":33,"toc":773},"minimark",[34,38,42,47,50,225,228,231,257,264,298,312,316,319,474,493,497,504,562,566,630,634,674,678,745,748,769],[35,36,30],"h1",{"id":37},"fio00-pl-do-not-use-bareword-file-handles",[39,40,41],"p",{},"File handles are traditionally package variables that represent file descriptors. Unlike other variables, file handles are typically not prefixed with punctuation. All barewords are subject to being interpreted by the parser differently than the developer intended, but bareword file handles are particularly fraught with peril. Consequently, file handles should never be stored as barewords.",[43,44,46],"h2",{"id":45},"noncompliant-code-example","Noncompliant Code Example",[39,48,49],{},"Suppose we maintain some simple code that makes the mistake of using bareword file handles.",[51,52,54],"code-block",{"quality":53},"bad",[55,56,61],"pre",{"className":57,"code":58,"language":59,"meta":60,"style":60},"language-perl shiki shiki-themes github-light github-dark monokai","open( GOOD, \"\u003C\", \"good.txt\");\nmy $good_data = \u003CGOOD>;\nprint \"GOOD: $good_data\";\nprint \"\\n\";\n{\n  open( BAD, \"\u003C\", \"bad.txt\");\n  my $bad_data = \u003CBAD>;\n  print \"BAD: $bad_data\";\n  print \"\\n\";\n}\nmy $more_good_data = \u003CGOOD>;\nprint \"MORE GOOD: $more_good_data\";\n","perl","",[62,63,64,90,100,118,134,140,158,167,183,196,202,210],"code",{"__ignoreMap":60},[65,66,69,73,77,81,84,87],"span",{"class":67,"line":68},"line",1,[65,70,72],{"class":71},"sTrkL","open",[65,74,76],{"class":75},"sMOD_","( GOOD, ",[65,78,80],{"class":79},"sstjo","\"\u003C\"",[65,82,83],{"class":75},", ",[65,85,86],{"class":79},"\"good.txt\"",[65,88,89],{"class":75},");\n",[65,91,93,97],{"class":67,"line":92},2,[65,94,96],{"class":95},"sC2Qs","my",[65,98,99],{"class":75}," $good_data = \u003CGOOD>;\n",[65,101,103,106,109,112,115],{"class":67,"line":102},3,[65,104,105],{"class":71},"print",[65,107,108],{"class":79}," \"GOOD: ",[65,110,111],{"class":75},"$good_data",[65,113,114],{"class":79},"\"",[65,116,117],{"class":75},";\n",[65,119,121,123,126,130,132],{"class":67,"line":120},4,[65,122,105],{"class":71},[65,124,125],{"class":79}," \"",[65,127,129],{"class":128},"s7F3e","\\n",[65,131,114],{"class":79},[65,133,117],{"class":75},[65,135,137],{"class":67,"line":136},5,[65,138,139],{"class":75},"{\n",[65,141,143,146,149,151,153,156],{"class":67,"line":142},6,[65,144,145],{"class":71},"  open",[65,147,148],{"class":75},"( BAD, ",[65,150,80],{"class":79},[65,152,83],{"class":75},[65,154,155],{"class":79},"\"bad.txt\"",[65,157,89],{"class":75},[65,159,161,164],{"class":67,"line":160},7,[65,162,163],{"class":95},"  my",[65,165,166],{"class":75}," $bad_data = \u003CBAD>;\n",[65,168,170,173,176,179,181],{"class":67,"line":169},8,[65,171,172],{"class":71},"  print",[65,174,175],{"class":79}," \"BAD: ",[65,177,178],{"class":75},"$bad_data",[65,180,114],{"class":79},[65,182,117],{"class":75},[65,184,186,188,190,192,194],{"class":67,"line":185},9,[65,187,172],{"class":71},[65,189,125],{"class":79},[65,191,129],{"class":128},[65,193,114],{"class":79},[65,195,117],{"class":75},[65,197,199],{"class":67,"line":198},10,[65,200,201],{"class":75},"}\n",[65,203,205,207],{"class":67,"line":204},11,[65,206,96],{"class":95},[65,208,209],{"class":75}," $more_good_data = \u003CGOOD>;\n",[65,211,213,215,218,221,223],{"class":67,"line":212},12,[65,214,105],{"class":71},[65,216,217],{"class":79}," \"MORE GOOD: ",[65,219,220],{"class":75},"$more_good_data",[65,222,114],{"class":79},[65,224,117],{"class":75},[39,226,227],{},"This code works as expected. It reads and prints a line of good text, followed by a line of bad text, followed by a second line of good text.",[39,229,230],{},"But during maintenance, someone (undoubtedly with the best of intentions) adds this function:",[51,232,233],{"quality":53},[55,234,236],{"className":57,"code":235,"language":59,"meta":60,"style":60},"sub BAD {return GOOD;}\n",[62,237,238],{"__ignoreMap":60},[65,239,240,244,248,251,254],{"class":67,"line":68},[65,241,243],{"class":242},"sq6CD","sub",[65,245,247],{"class":246},"srTi1"," BAD",[65,249,250],{"class":75}," {",[65,252,253],{"class":95},"return",[65,255,256],{"class":75}," GOOD;}\n",[39,258,259,260,263],{},"This function completely changes the behavior of the subsequent code. The ",[62,261,262],{},"BAD"," bareword is now interpreted as a subroutine call, not a file handle.",[39,265,266,267,270,271,274,275,278,279,281,282,285,286,288,289,291,292,294,295,297],{},"The program, as before, first opens ",[62,268,269],{},"good.txt"," , storing it in the ",[62,272,273],{},"GOOD"," file handle, which is a package variable. It next opens ",[62,276,277],{},"bad.txt"," , but instead of storing the descriptor in a ",[62,280,262],{}," file handle, it stores the descriptor in the file handle returned by the ",[62,283,284],{},"BAD()"," subroutine, which returns ",[62,287,273],{}," . Consequently, the ",[62,290,273],{}," file handle now points to the descriptor for ",[62,293,277],{}," , not ",[62,296,269],{}," .",[39,299,300,301,303,304,306,307,309,310,297],{},"The program then tries to read from the ",[62,302,262],{}," file handle, but this attempted read produces nothing because this file handle was never actually opened. Nonetheless, the program then reads a line from the ",[62,305,273],{}," file handle and echoes it—which turns out to be from ",[62,308,277],{}," rather than ",[62,311,269],{},[43,313,315],{"id":314},"compliant-solution","Compliant Solution",[39,317,318],{},"This compliant solution protects the file descriptors by using anonymous scalars rather than bareword file handles.",[51,320,322],{"quality":321},"good",[55,323,325],{"className":57,"code":324,"language":59,"meta":60,"style":60},"sub BAD {return GOOD;}\n\nopen( my $GOOD, \"\u003C\", \"good.txt\");\nmy $good_data = \u003C$GOOD>;\nprint \"GOOD: $good_data\";\nprint \"\\n\";\n{\n  open( my $BAD, \"\u003C\", \"bad.txt\");\n  my $bad_data = \u003C$BAD>;\n  print \"BAD: $bad_data\";\n  print \"\\n\";\n}\nmy $more_good_data = \u003C$GOOD>;\nprint \"MORE GOOD: $more_good_data\";\n",[62,326,327,339,344,364,371,383,395,399,418,425,437,449,453,461],{"__ignoreMap":60},[65,328,329,331,333,335,337],{"class":67,"line":68},[65,330,243],{"class":242},[65,332,247],{"class":246},[65,334,250],{"class":75},[65,336,253],{"class":95},[65,338,256],{"class":75},[65,340,341],{"class":67,"line":92},[65,342,343],{"emptyLinePlaceholder":7},"\n",[65,345,346,348,351,353,356,358,360,362],{"class":67,"line":102},[65,347,72],{"class":71},[65,349,350],{"class":75},"( ",[65,352,96],{"class":95},[65,354,355],{"class":75}," $GOOD, ",[65,357,80],{"class":79},[65,359,83],{"class":75},[65,361,86],{"class":79},[65,363,89],{"class":75},[65,365,366,368],{"class":67,"line":120},[65,367,96],{"class":95},[65,369,370],{"class":75}," $good_data = \u003C$GOOD>;\n",[65,372,373,375,377,379,381],{"class":67,"line":136},[65,374,105],{"class":71},[65,376,108],{"class":79},[65,378,111],{"class":75},[65,380,114],{"class":79},[65,382,117],{"class":75},[65,384,385,387,389,391,393],{"class":67,"line":142},[65,386,105],{"class":71},[65,388,125],{"class":79},[65,390,129],{"class":128},[65,392,114],{"class":79},[65,394,117],{"class":75},[65,396,397],{"class":67,"line":160},[65,398,139],{"class":75},[65,400,401,403,405,407,410,412,414,416],{"class":67,"line":169},[65,402,145],{"class":71},[65,404,350],{"class":75},[65,406,96],{"class":95},[65,408,409],{"class":75}," $BAD, ",[65,411,80],{"class":79},[65,413,83],{"class":75},[65,415,155],{"class":79},[65,417,89],{"class":75},[65,419,420,422],{"class":67,"line":185},[65,421,163],{"class":95},[65,423,424],{"class":75}," $bad_data = \u003C$BAD>;\n",[65,426,427,429,431,433,435],{"class":67,"line":198},[65,428,172],{"class":71},[65,430,175],{"class":79},[65,432,178],{"class":75},[65,434,114],{"class":79},[65,436,117],{"class":75},[65,438,439,441,443,445,447],{"class":67,"line":204},[65,440,172],{"class":71},[65,442,125],{"class":79},[65,444,129],{"class":128},[65,446,114],{"class":79},[65,448,117],{"class":75},[65,450,451],{"class":67,"line":212},[65,452,201],{"class":75},[65,454,456,458],{"class":67,"line":455},13,[65,457,96],{"class":95},[65,459,460],{"class":75}," $more_good_data = \u003C$GOOD>;\n",[65,462,464,466,468,470,472],{"class":67,"line":463},14,[65,465,105],{"class":71},[65,467,217],{"class":79},[65,469,220],{"class":75},[65,471,114],{"class":79},[65,473,117],{"class":75},[39,475,476,477,480,481,483,484,486,487,489,490,492],{},"Consequently, the original behavior of this program is restored. Because the ",[62,478,479],{},"$BAD"," variable is declared with ",[62,482,96],{}," , it is a lexical variable rather than a package variable and is unaffected by the ",[62,485,262],{}," subroutine. So this program once again prints two lines from the ",[62,488,269],{}," file and one from the ",[62,491,277],{}," file, and never confuses the two.",[43,494,496],{"id":495},"exceptions","Exceptions",[39,498,499,503],{},[500,501,502],"strong",{},"FIO00:EX0"," : The following barewords are built-in to Perl and are exceptions to this rule:",[505,506,507,518],"table",{},[508,509,510],"thead",{},[511,512,513,516],"tr",{},[514,515],"th",{},[514,517],{},[519,520,521,530,538,546,554],"tbody",{},[511,522,523,527],{},[524,525,526],"td",{},"ENV",[524,528,529],{},"STDIN",[511,531,532,535],{},[524,533,534],{},"INC",[524,536,537],{},"STDOUT",[511,539,540,543],{},[524,541,542],{},"ARGV",[524,544,545],{},"STDERR",[511,547,548,551],{},[524,549,550],{},"ARGVOUT",[524,552,553],{},"_",[511,555,556,559],{},[524,557,558],{},"SIG",[524,560,561],{},"DATA",[43,563,565],{"id":564},"risk-assessment","Risk Assessment",[505,567,568,584],{},[508,569,570],{},[511,571,572,574,576,578,580,582],{},[514,573],{},[514,575],{},[514,577],{},[514,579],{},[514,581],{},[514,583],{},[519,585,586,606],{},[511,587,588,591,594,597,600,603],{},[524,589,590],{},"Recommendation",[524,592,593],{},"Severity",[524,595,596],{},"Likelihood",[524,598,599],{},"Remediation Cost",[524,601,602],{},"Priority",[524,604,605],{},"Level",[511,607,608,611,614,617,620,625],{},[524,609,610],{},"FIO00-PL",[524,612,613],{},"medium",[524,615,616],{},"probable",[524,618,619],{},"low",[524,621,622],{},[500,623,624],{},"P12",[524,626,627],{},[500,628,629],{},"L1",[43,631,633],{"id":632},"automated-detection","Automated Detection",[505,635,636,644],{},[508,637,638],{},[511,639,640,642],{},[514,641],{},[514,643],{},[519,645,646,654,662],{},[511,647,648,651],{},[524,649,650],{},"Tool",[524,652,653],{},"Diagnostic",[511,655,656,659],{},[524,657,658],{},"Perl::Critic",[524,660,661],{},"InputOutput::ProhibitBarewordFileHandles",[511,663,664,671],{},[524,665,666],{},[667,668,670],"a",{"href":669},"\u002Fsei-cert-perl-coding-standard\u002Fback-matter\u002Fbb-analyzers\u002Fsecurity-reviewer-static-reviewer","Security Reviewer - Static Reviewer",[524,672,673],{},"PERL_S83",[43,675,677],{"id":676},"bibliography","Bibliography",[505,679,680,688],{},[508,681,682],{},[511,683,684,686],{},[514,685],{},[514,687],{},[519,689,690,703,725],{},[511,691,692,700],{},[524,693,694,695,699],{},"[ ",[667,696,698],{"href":697},"\u002Fsei-cert-perl-coding-standard\u002Fback-matter\u002Faa-bibliography#AA.Bibliography-Conway05","Conway 2005"," ]",[524,701,702],{},"\"Filehandles,\" p. 202",[511,704,705,711],{},[524,706,694,707,699],{},[667,708,710],{"href":709},"\u002Fsei-cert-perl-coding-standard\u002Fback-matter\u002Faa-bibliography#AA.Bibliography-CPAN","CPAN",[524,712,713,714,720,721],{},"Jeffrey Thalhammer, ",[667,715,719],{"href":716,"rel":717},"http:\u002F\u002Fsearch.cpan.org\u002F%7Eelliotjs\u002FPerl-Critic-1.116\u002F",[718],"nofollow","Perl-Critic-1.118"," , ",[667,722,661],{"href":723,"rel":724},"http:\u002F\u002Fsearch.cpan.org\u002Fdist\u002FPerl-Critic\u002Flib\u002FPerl\u002FCritic\u002FPolicy\u002FInputOutput\u002FProhibitBarewordFileHandles.pm",[718],[511,726,727,733],{},[524,728,694,729,699],{},[667,730,732],{"href":731},"\u002Fsei-cert-perl-coding-standard\u002Fback-matter\u002Faa-bibliography#AA.Bibliography-Manpages","Wall 2011",[524,734,735,720,740],{},[667,736,739],{"href":737,"rel":738},"http:\u002F\u002Fperldoc.perl.org\u002Fperlfunc.html",[718],"perlfunc",[667,741,744],{"href":742,"rel":743},"http:\u002F\u002Fperldoc.perl.org\u002Fperlvar.html",[718],"perlvar",[746,747],"hr",{},[39,749,750,757,758,757,763],{},[667,751,753],{"href":752},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Ffile-input-and-output-fio\u002F",[754,755],"img",{"src":756},"\u002Fattachments\u002F88890562\u002F88892207.png"," ",[667,759,760],{"href":752},[754,761],{"src":762},"\u002Fattachments\u002F88890562\u002F88892209.png",[667,764,766],{"href":765},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Ffile-input-and-output-fio\u002Ffio01-pl",[754,767],{"src":768},"\u002Fattachments\u002F88890562\u002F88892208.png",[770,771,772],"style",{},"html pre.shiki code .sTrkL, html code.shiki .sTrkL{--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#66D9EF}html pre.shiki code .sMOD_, html code.shiki .sMOD_{--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .sstjo, html code.shiki .sstjo{--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .sC2Qs, html code.shiki .sC2Qs{--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .s7F3e, html code.shiki .s7F3e{--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}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);}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}",{"title":60,"searchDepth":92,"depth":92,"links":774},[775,776,777,778,779,780],{"id":45,"depth":92,"text":46},{"id":314,"depth":92,"text":315},{"id":495,"depth":92,"text":496},{"id":564,"depth":92,"text":565},{"id":632,"depth":92,"text":633},{"id":676,"depth":92,"text":677},"md",{"tags":783},[784,785],"recommendation","fio","\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Ffile-input-and-output-fio\u002Ffio00-pl",{"title":30,"description":41},"7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F4.file-input-and-output-fio\u002F2.fio00-pl","LkSISV9gXlLylWfYJk11hVqjl-f8OZLYXvjQowgsOWE",[791,795],{"title":792,"path":793,"stem":794,"children":-1},"File Input and Output (FIO)","\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",{"title":796,"path":765,"stem":797,"children":-1},"FIO01-PL. Do not operate on files that can be modified by untrusted users","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F4.file-input-and-output-fio\u002F3.fio01-pl",[799],{"title":800,"path":801,"stem":802,"children":803},"SEI CERT Perl Coding Standard","\u002Fsei-cert-perl-coding-standard","7.sei-cert-perl-coding-standard\u002F1.index",[804,805,860,991,1131],{"title":800,"path":801,"stem":802},{"title":806,"path":807,"stem":808,"children":809},"Front Matter","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F1.index",[810,811,815],{"title":806,"path":807,"stem":808},{"title":812,"path":813,"stem":814},"Deprecations","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fdeprecations","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F2.deprecations",{"title":816,"path":817,"stem":818,"children":819},"Introduction","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fintroduction","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F3.introduction\u002F01.index",[820,821,825,829,833,837,841,845,848,852,856],{"title":816,"path":817,"stem":818},{"title":822,"path":823,"stem":824},"Scope","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fscope","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F3.introduction\u002F01.scope",{"title":826,"path":827,"stem":828},"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":830,"path":831,"stem":832},"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":834,"path":835,"stem":836},"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":838,"path":839,"stem":840},"Usage","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fintroduction\u002Fusage","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F3.introduction\u002F05.usage",{"title":842,"path":843,"stem":844},"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":565,"path":846,"stem":847},"\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":849,"path":850,"stem":851},"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":853,"path":854,"stem":855},"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":857,"path":858,"stem":859},"Acknowledgements","\u002Fsei-cert-perl-coding-standard\u002Ffront-matter\u002Fintroduction\u002Facknowledgements","7.sei-cert-perl-coding-standard\u002F2.front-matter\u002F3.introduction\u002F11.acknowledgements",{"title":861,"path":862,"stem":863,"children":864},"Rules","\u002Fsei-cert-perl-coding-standard\u002Frules","7.sei-cert-perl-coding-standard\u002F3.rules\u002F1.index",[865,866,884,910,919,949,953,967,977],{"title":861,"path":862,"stem":863},{"title":867,"path":868,"stem":869,"children":870},"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",[871,872,876,880],{"title":867,"path":868,"stem":869},{"title":873,"path":874,"stem":875},"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":877,"path":878,"stem":879},"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":881,"path":882,"stem":883},"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":885,"path":886,"stem":887,"children":888},"Expressions (EXP)","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fexpressions-exp","7.sei-cert-perl-coding-standard\u002F3.rules\u002F3.expressions-exp\u002F1.index",[889,890,894,898,902,906],{"title":885,"path":886,"stem":887},{"title":891,"path":892,"stem":893},"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":895,"path":896,"stem":897},"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":899,"path":900,"stem":901},"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":903,"path":904,"stem":905},"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":907,"path":908,"stem":909},"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":792,"path":911,"stem":912,"children":913},"\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",[914,915],{"title":792,"path":911,"stem":912},{"title":916,"path":917,"stem":918},"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":920,"path":921,"stem":922,"children":923},"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",[924,925,929,933,937,941,945],{"title":920,"path":921,"stem":922},{"title":926,"path":927,"stem":928},"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":930,"path":931,"stem":932},"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":934,"path":935,"stem":936},"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":938,"path":939,"stem":940},"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":942,"path":943,"stem":944},"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":946,"path":947,"stem":948},"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":950,"path":951,"stem":952},"Integers (INT)","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fintegers-int","7.sei-cert-perl-coding-standard\u002F3.rules\u002F6.integers-int",{"title":954,"path":955,"stem":956,"children":957},"Miscellaneous (MSC)","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fmiscellaneous-msc","7.sei-cert-perl-coding-standard\u002F3.rules\u002F7.miscellaneous-msc\u002F1.index",[958,959,963],{"title":954,"path":955,"stem":956},{"title":960,"path":961,"stem":962},"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":964,"path":965,"stem":966},"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":968,"path":969,"stem":970,"children":971},"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",[972,973],{"title":968,"path":969,"stem":970},{"title":974,"path":975,"stem":976},"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":978,"path":979,"stem":980,"children":981},"Strings (STR)","\u002Fsei-cert-perl-coding-standard\u002Frules\u002Fstrings-str","7.sei-cert-perl-coding-standard\u002F3.rules\u002F9.strings-str\u002F1.index",[982,983,987],{"title":978,"path":979,"stem":980},{"title":984,"path":985,"stem":986},"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":988,"path":989,"stem":990},"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":992,"path":993,"stem":994,"children":995},"Recommendations","\u002Fsei-cert-perl-coding-standard\u002Frecommendations","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F1.index",[996,997,1026,1059,1064,1077,1090,1115,1128],{"title":992,"path":993,"stem":994},{"title":867,"path":998,"stem":999,"children":1000},"\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",[1001,1002,1006,1010,1014,1018,1022],{"title":867,"path":998,"stem":999},{"title":1003,"path":1004,"stem":1005},"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":1007,"path":1008,"stem":1009},"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":1011,"path":1012,"stem":1013},"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":1015,"path":1016,"stem":1017},"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":1019,"path":1020,"stem":1021},"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":1023,"path":1024,"stem":1025},"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":885,"path":1027,"stem":1028,"children":1029},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fexpressions-exp","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F3.expressions-exp\u002F1.index",[1030,1031,1035,1039,1043,1047,1051,1055],{"title":885,"path":1027,"stem":1028},{"title":1032,"path":1033,"stem":1034},"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":1036,"path":1037,"stem":1038},"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":1040,"path":1041,"stem":1042},"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":1044,"path":1045,"stem":1046},"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":1048,"path":1049,"stem":1050},"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":1052,"path":1053,"stem":1054},"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":1056,"path":1057,"stem":1058},"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":792,"path":793,"stem":794,"children":1060},[1061,1062,1063],{"title":792,"path":793,"stem":794},{"title":30,"path":786,"stem":788},{"title":796,"path":765,"stem":797},{"title":920,"path":1065,"stem":1066,"children":1067},"\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",[1068,1069,1073],{"title":920,"path":1065,"stem":1066},{"title":1070,"path":1071,"stem":1072},"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":1074,"path":1075,"stem":1076},"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":950,"path":1078,"stem":1079,"children":1080},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fintegers-int","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F6.integers-int\u002F1.index",[1081,1082,1086],{"title":950,"path":1078,"stem":1079},{"title":1083,"path":1084,"stem":1085},"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":1087,"path":1088,"stem":1089},"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":954,"path":1091,"stem":1092,"children":1093},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fmiscellaneous-msc","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F7.miscellaneous-msc\u002F1.index",[1094,1095,1099,1103,1107,1111],{"title":954,"path":1091,"stem":1092},{"title":1096,"path":1097,"stem":1098},"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":1100,"path":1101,"stem":1102},"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":1104,"path":1105,"stem":1106},"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":1108,"path":1109,"stem":1110},"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":1112,"path":1113,"stem":1114},"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":968,"path":1116,"stem":1117,"children":1118},"\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",[1119,1120,1124],{"title":968,"path":1116,"stem":1117},{"title":1121,"path":1122,"stem":1123},"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":1125,"path":1126,"stem":1127},"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":978,"path":1129,"stem":1130},"\u002Fsei-cert-perl-coding-standard\u002Frecommendations\u002Fstrings-str","7.sei-cert-perl-coding-standard\u002F4.recommendations\u002F9.strings-str",{"title":1132,"path":1133,"stem":1134,"children":1135},"Back Matter","\u002Fsei-cert-perl-coding-standard\u002Fback-matter","7.sei-cert-perl-coding-standard\u002F5.back-matter\u002F1.index",[1136,1137,1141,1169],{"title":1132,"path":1133,"stem":1134},{"title":1138,"path":1139,"stem":1140},"AA. Bibliography","\u002Fsei-cert-perl-coding-standard\u002Fback-matter\u002Faa-bibliography","7.sei-cert-perl-coding-standard\u002F5.back-matter\u002F2.aa-bibliography",{"title":1142,"path":1143,"stem":1144,"children":1145},"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",[1146,1147,1151,1155,1159,1163,1165],{"title":1142,"path":1143,"stem":1144},{"title":1148,"path":1149,"stem":1150},"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":1152,"path":1153,"stem":1154},"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":1156,"path":1157,"stem":1158},"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":1160,"path":1161,"stem":1162},"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":670,"path":669,"stem":1164},"7.sei-cert-perl-coding-standard\u002F5.back-matter\u002F3.bb-analyzers\u002F6.security-reviewer-static-reviewer",{"title":1166,"path":1167,"stem":1168},"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":1170,"path":1171,"stem":1172},"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",1775657796055]