tag:blogger.com,1999:blog-40661894359416909512024-03-12T18:13:26.379-07:00Perl Gemscfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.comBlogger50125tag:blogger.com,1999:blog-4066189435941690951.post-2530540243211456712017-02-14T07:06:00.003-08:002017-02-14T07:06:46.797-08:00What the FuzzTalk on application security presented at the NY Perl Mongers:<br />
<br />
<br />
<iframe src="//www.slideshare.net/slideshow/embed_code/key/D41pamwxvZGmRD" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/cfrenz/whatthe-fuzz" title="Whatthe fuzz" target="_blank">Whatthe fuzz</a> </strong> from <strong><a target="_blank" href="//www.slideshare.net/cfrenz">Christopher Frenz</a></strong> </div>cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com8tag:blogger.com,1999:blog-4066189435941690951.post-79709518473274151642014-04-22T19:33:00.001-07:002014-04-22T19:33:45.285-07:00Using File::Copy to Deploy Files to a Windows UNC Path<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><br />
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
Below is script that illustrates the use of File::Copy to
copy files to a UNC path on a Windows network.<span style="mso-spacerun: yes;">
</span>The example code downloads a copy of the hosts file made available by
the Malware Domain List and copies it to the appropriate directory on a Windows
machine in order to prevent the machine from being able to successfully resolve
those malicious sites.<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="mso-spacerun: yes;"><span style="font-family: Arial,Helvetica,sans-serif;">#!usr/bin/perl<br /><br />use LWP;<br />use File::Copy;<br />use strict;<br />use warnings;<br /><br />#URL of hosts file<br />my $URI = 'http://www.malwaredomainlist.com/hostslist/hosts.txt';<br /><br />#downloads host file<br />my $ua = LWP::UserAgent->new();<br />my $request = HTTP::Request->new(GET => $URI);<br />my $response = $ua->request($request);<br />my $content = $response->content();<br />#print $content;<br /><br />#writes downloaded hosts file to file<br />open(my $hosts2, ">", "hosts2.txt");<br />print $hosts2 "$content";<br />close $hosts2;<br /><br />#opens file that stores list of PC names<br />open(my $computers, "<", "computers.txt")<br /> or die "cannot open < computers.txt: $!";<br /><br />#copies file to proper location on each computer <br />while(<$computers>){<br /> my $computer=$_;<br /> print $computer;<br /> my $path1='hosts2.txt';<br /> my $path2="\\\\$computer\\C\$\\WINDOWS\\system32\\drivers\\etc\\hosts";<br /> copy("$path1","$path2") or die "Copy failed: $!";<br />}<br /><br />close $computers;</span> </span></div>
cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com3tag:blogger.com,1999:blog-4066189435941690951.post-46052590218121795322014-01-26T19:31:00.000-08:002014-01-26T19:31:24.940-08:00Did I Visit a Malicious Site?<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><br />
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
A Perl script that will download the Malware Domain List
hosts file and compare the domains listed in the file to domains present in the
Chrome History database (an SQLite DB).<span style="mso-spacerun: yes;"> </span>It
will print out a list of any domains in the History DB that are listed on
the Malware Domain list.<span style="mso-spacerun: yes;"> </span>Note: the
script assumes that a copy of the History DB is in the same directory as the
script.<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">#!usr/bin/perl</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">use
DBI;</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">use
List::MoreUtils qw(uniq);</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">use
List::Compare; </span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">use
LWP::Simple;</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">use
strict;</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">use
warnings;</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">my
@MalDomains;</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">my
@VisitedDomains;</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">#obtains
a list of malicious domains from a the malware domain list hosts file</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">my
$MalHosts = get 'http://www.malwaredomainlist.com/hostslist/hosts.txt';</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">open(
my $hosts, '<', \$MalHosts );</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">while(<$hosts>){</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>my $host=$_;<span style="mso-tab-count: 1;"> </span></span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>#remove loopback from each entry</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>if($host=~s/127\.0\.0\.1<span style="mso-spacerun: yes;"> </span>//){</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>#remove newline</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>$host =~ s/\r?\n$//;</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>push(@MalDomains, $host);</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>};</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">}</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">close
$hosts;</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">#opens
the History database and pulls out all visited domains</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">my
$dbh =
DBI->connect("dbi:SQLite:dbname=History","","");</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">my
$sth=$dbh->selectall_arrayref( "SELECT url FROM urls" );</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">foreach
my $data (@$sth) {</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;"><span style="mso-tab-count: 1;"> </span>(my $url)=@$data;</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;"><span style="mso-tab-count: 1;"> </span>#obtain domain from visited URL</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;"><span style="mso-tab-count: 1;"> </span>my $url2 =
URI->new("$url");</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>my $domain = $url2->host;</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;"><span style="mso-spacerun: yes;"> </span>push(@VisitedDomains, $domain);</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">}</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">#remove
duplicate domains to speed processing</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">my
@UVDomains = uniq(@VisitedDomains);</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">#finds
the intersection of each array</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">my
$lc = List::Compare->new(\@MalDomains, \@UVDomains);</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">my
@intersection = $lc->get_intersection;</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">print
"You browsed the following malicious domains: \n";</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">foreach(@intersection){</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;"><span style="mso-tab-count: 1;"> </span>print $_ . "\n";</span></div>
<div class="MsoNormal">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 10.0pt;">}</span></div>
cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com1tag:blogger.com,1999:blog-4066189435941690951.post-30343634986138296912014-01-24T08:42:00.000-08:002014-01-24T08:42:34.543-08:00Calling PowerShell from Within Perl<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><br />
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
Recently, I’ve been doing a bit of scripting for use inside
a Windows environment and as such became somewhat interested in some of the
functionality that is offered up by PowerShell.<span style="mso-spacerun: yes;">
</span>As a result I began experimenting with calling PowerShell commands from
within a Perl script.<span style="mso-spacerun: yes;"> </span>Below is a simple
example, that when run with appropriate privileges can take a list of PC names
and clear the security log on each PC.<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="mso-spacerun: yes;"><span style="font-size: x-small;"><span style="font-family: Arial,Helvetica,sans-serif;">use strict;<br />use warnings;<br /><br />open(my $hosts, "<", "hosts.txt")<br /> or die "cannot open < hosts.txt: $!";<br /> <br />while(<$hosts>){<br /> my $host=$_;<br /> system("powershell -Command \"& {Clear-EventLog -Logname Security -ComputerName $host;}\"");<br />}<br /><br />close $hosts;</span></span> </span></div>
cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com0tag:blogger.com,1999:blog-4066189435941690951.post-86475980341777644522013-05-23T13:48:00.000-07:002013-05-23T13:48:20.960-07:00NY Perl Mongers Talk Slides<iframe allowfullscreen="" frameborder="0" height="356" marginheight="0" marginwidth="0" mozallowfullscreen="" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/21636700" style="border-width: 1px 1px 0; border: 1px solid #CCC; margin-bottom: 5px;" webkitallowfullscreen="" width="427"> </iframe> <br />
<div style="margin-bottom: 5px;">
<b> <a href="http://www.slideshare.net/cfrenz/information-extraction-and-retreival" target="_blank" title="Information Retrieval and Extraction">Information Retrieval and Extraction</a> </b> from <b><a href="http://www.slideshare.net/cfrenz" target="_blank">cfrenz</a></b><br />
<br />
<b>Slides from a talk I recently gave at a NY Perl Mongers Meetup </b> </div>
cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com0tag:blogger.com,1999:blog-4066189435941690951.post-51318130201497488372013-04-30T19:02:00.000-07:002013-04-30T19:13:01.412-07:00Perl and Open Government<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><br />
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
<span style="font-family: inherit;">For any interested in initiatives to make government data
more accessible, I ran across an interesting API put out by Civic Impulse –
the GovTrack API (<a href="http://www.govtrack.us/developers/api">http://www.govtrack.us/developers/api</a>).<span style="mso-spacerun: yes;"> </span>The API allows queries to be made regarding many
of the bills being debated about in the US congress as well as the ability to
programmatically look up information pertaining to members of Congress.<span style="mso-spacerun: yes;"> </span>The available documentation for the API is
located at the link already provided, but a small Perl script below will
demonstrate the basics of accessing the API in Perl.</span></div>
<span style="font-family: inherit;">
</span><br />
<div class="MsoNormal">
<br /></div>
<span style="font-family: inherit;">
</span><br />
<div class="MsoNormal">
<span style="font-family: inherit;">This script will query the API for bills regarding “fracking”
in the “112” session of congress and will simply print out the retrieved
results.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">#!usr/bin/perl<br /><br />use LWP;<br />use strict;<br />use warnings;<br /><br />#sets query and congress session<br />my $query='fracking';<br />my $congress=112; <br /><br />my $ua = LWP::UserAgent->new;<br /><br />my $url="http://www.govtrack.us/api/v2/bill?q=$query&congress=$congress";<br /><br />my $response=$ua->get($url);<br />my $result=$response->content;<br />print $result;</span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--></div>
<br />
<div class="MsoNormal">
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]--><span style="font-family: "Calibri","sans-serif"; font-size: 12.0pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: EN-US; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">The
results ar<span style="font-family: inherit;">e returned in the JS</span>ON format be default, but the API does allow for
parameters to be specified for XML or CSV based results as alternatives.<span style="mso-spacerun: yes;"> </span>For the code above the returned JSON would
look as follows:</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 12.0pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: EN-US; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"> <span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">{<br /> "meta": {<br /> "limit": 100, <br /> "offset": 0, <br /> "total_count": 2<br /> }, <br /> "objects": [<br /> {<br /> "bill_resolution_type": "bill", <br /> "bill_type": "senate_bill", <br /> "bill_type_label": "S.", <br /> "congress": 112, <br /> "current_status": "referred", <br /> "current_status_date": "2012-03-28", <br /> "current_status_description": "This bill was introduced on March 28, 2012, in a previous session of Congress, but was not enacted.", <br /> "current_status_label": "Referred to Committee", <br /> "display_number": "S. 2248", <br /> "docs_house_gov_postdate": null, <br /> "id": 251518, <br /> "introduced_date": "2012-03-28", <br /> "is_alive": false, <br /> "is_current": false, <br /> "link": "http://www.govtrack.us/congress/bills/112/s2248", <br /> "major_actions": [<br /> [<br /> "datetime.datetime(2012, 3, 28, 0, 0)", <br /> 1, <br /> "Sponsor introductory remarks on measure. (CR S2166-2167)"<br /> ], <br /> [<br /> "datetime.datetime(2012, 3, 28, 0, 0)", <br /> 2, <br /> "Read twice and referred to the Committee on Energy and Natural Resources."<br /> ]<br /> ], <br /> "noun": "bill", <br /> "number": 2248, <br /> "senate_floor_schedule_postdate": null, <br /> "sliplawnum": null, <br /> "sliplawpubpriv": null, <br /> "sponsor": {<br /> "bioguideid": "I000024", <br /> "birthday": "1934-11-17", <br /> "cspanid": 5619, <br /> "firstname": "James", <br /> "gender": "male", <br /> "gender_label": "Male", <br /> "id": 300055, <br /> "lastname": "Inhofe", <br /> "link": "http://www.govtrack.us/congress/members/james_inhofe/300055", <br /> "middlename": "M.", <br /> "name": "Sen. James “Jim†Inhofe [R-OK]", <br /> "namemod": "", <br /> "nickname": "Jim", <br /> "osid": "N00005582", <br /> "pvsid": "27027", <br /> "sortname": "Inhofe, James “Jim†(Sen.) [R-OK]", <br /> "twitterid": "InhofePress", <br /> "youtubeid": "jiminhofepressoffice"<br /> }, <br /> "sponsor_role": {<br /> "congress_numbers": [<br /> 111, <br /> 112, <br /> 113<br /> ], <br /> "current": true, <br /> "description": "Senator from Oklahoma", <br /> "district": null, <br /> "enddate": "2015-01-03", <br /> "id": 4082, <br /> "party": "Republican", <br /> "person": 300055, <br /> "role_type": "senator", <br /> "role_type_label": "Senator", <br /> "senator_class": "class2", <br /> "senator_class_label": "Class 2", <br /> "startdate": "2009-01-06", <br /> "state": "OK", <br /> "title": "Sen.", <br /> "title_long": "Senator", <br /> "website": "http://www.inhofe.senate.gov"<br /> }, <br /> "thomas_link": "http://thomas.loc.gov/cgi-bin/bdquery/z?d112:s2248:", <br /> "title": "S. 2248 (112th): Fracturing Regulations are Effective in State Hands Act", <br /> "title_without_number": "Fracturing Regulations are Effective in State Hands Act", <br /> "titles": [<br /> [<br /> "short", <br /> "introduced", <br /> "Fracturing Regulations are Effective in State Hands Act"<br /> ], <br /> [<br /> "official", <br /> "introduced", <br /> "A bill to clarify that a State has the sole authority to regulate hydraulic fracturing on Federal land within the boundaries of the State."<br /> ]<br /> ]<br /> }, <br /> {<br /> "bill_resolution_type": "bill", <br /> "bill_type": "house_bill", <br /> "bill_type_label": "H.R.", <br /> "congress": 112, <br /> "current_status": "referred", <br /> "current_status_date": "2012-03-29", <br /> "current_status_description": "This bill was introduced on March 29, 2012, in a previous session of Congress, but was not enacted.", <br /> "current_status_label": "Referred to Committee", <br /> "display_number": "H.R. 4322", <br /> "docs_house_gov_postdate": null, <br /> "id": 251585, <br /> "introduced_date": "2012-03-29", <br /> "is_alive": false, <br /> "is_current": false, <br /> "link": "http://www.govtrack.us/congress/bills/112/hr4322", <br /> "major_actions": [<br /> [<br /> "datetime.datetime(2012, 3, 29, 0, 0)", <br /> 2, <br /> "Referred to the Committee on Natural Resources, and in addition to the Committees on Agriculture, Transportation and Infrastructure, and Energy and Commerce, for a period to be subsequently determined by the Speaker, in each case for consideration of such provisions as fall within the jurisdiction of the committee concerned."<br /> ]<br /> ], <br /> "noun": "bill", <br /> "number": 4322, <br /> "senate_floor_schedule_postdate": null, <br /> "sliplawnum": null, <br /> "sliplawpubpriv": null, <br /> "sponsor": {<br /> "bioguideid": "G000552", <br /> "birthday": "1953-08-18", <br /> "cspanid": 1011394, <br /> "firstname": "Louie", <br /> "gender": "male", <br /> "gender_label": "Male", <br /> "id": 400651, <br /> "lastname": "Gohmert", <br /> "link": "http://www.govtrack.us/congress/members/louie_gohmert/400651", <br /> "middlename": "B.", <br /> "name": "Rep. Louie Gohmert [R-TX1]", <br /> "namemod": "Jr.", <br /> "nickname": "", <br /> "osid": "N00026148", <br /> "pvsid": "50029", <br /> "sortname": "Gohmert, Louie (Rep.) [R-TX1]", <br /> "twitterid": "replouiegohmert", <br /> "youtubeid": "GohmertTX01"<br /> }, <br /> "sponsor_role": {<br /> "congress_numbers": [<br /> 112<br /> ], <br /> "current": false, <br /> "description": "Representative for Texas's 1st congressional district", <br /> "district": 1, <br /> "enddate": "2013-01-03", <br /> "id": 5197, <br /> "party": "Republican", <br /> "person": 400651, <br /> "role_type": "representative", <br /> "role_type_label": "Representative", <br /> "senator_class": null, <br /> "startdate": "2011-01-05", <br /> "state": "TX", <br /> "title": "Rep.", <br /> "title_long": "Representative", <br /> "website": "http://gohmert.house.gov"<br /> }, <br /> "thomas_link": "http://thomas.loc.gov/cgi-bin/bdquery/z?d112:hr4322:", <br /> "title": "H.R. 4322 (112th): Fracturing Regulations are Effective in State Hands Act", <br /> "title_without_number": "Fracturing Regulations are Effective in State Hands Act", <br /> "titles": [<br /> [<br /> "short", <br /> "introduced", <br /> "Fracturing Regulations are Effective in State Hands Act"<br /> ], <br /> [<br /> "official", <br /> "introduced", <br /> "To clarify that a State has the sole authority to regulate hydraulic fracturing on Federal land within the boundaries of the State."<br /> ]<br /> ]<br /> }<br /> ]<br />}</span></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com10tag:blogger.com,1999:blog-4066189435941690951.post-6607629527366588172013-04-26T06:28:00.000-07:002013-04-26T06:28:31.312-07:00Perl and Shodan<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><br />
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
The search engine Shodan (<a href="http://www.shodanhq.com/">http://www.shodanhq.com/</a>)
has recently drawn a lot of attention as the “scariest search engine on the
internet” since it lets you search for computers and other devices by IP, OS,
location, etc, and in doing so often reveals information that the computer
owner’s might not have ever intended to be public.<span style="mso-spacerun: yes;"> </span>For security professionals it makes for an
interesting tool for pen-testing and forensics.<span style="mso-spacerun: yes;">
</span>For any Perl developers that are interested in such work the good news
is that they have an API and they have a nice Perl tutorial already in place
documenting how to use it (<a href="http://docs.shodanhq.com/perl/tutorial.html#">http://docs.shodanhq.com/perl/tutorial.html#</a>).<span style="mso-spacerun: yes;"> </span>They also provide one sample Perl script that
lets you generate a list of IP addresses that match your query terms (<a href="http://docs.shodanhq.com/perl/examples.html">http://docs.shodanhq.com/perl/examples.html</a>).<span style="mso-spacerun: yes;"> </span>The API does make use of an API key that
requires registration to use.<span style="mso-spacerun: yes;"> </span></div>
cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com0tag:blogger.com,1999:blog-4066189435941690951.post-30100634228383155652013-04-23T19:05:00.001-07:002013-04-23T19:05:45.448-07:00Randomize the Elements of an Array<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><br />
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
Sometimes it is useful to be able to randomize the elements
of an array and this posting will demonstrate a simple way of accomplishing
that using the shuffle subroutine of the List::Util Perl module.<span style="mso-spacerun: yes;"> </span>As a sample use case let’s consider a
simplistic random password generator that was designed to generate passwords
that contain two uppercase characters, two numbers, and four lowercase
characters. A sample code snippet that would accomplish such a task might look
as follows:</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10.0pt;">#!usr/bin/perl</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10.0pt;">use
List::Util 'shuffle';</span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10.0pt;">use
strict;</span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10.0pt;">use
warnings;</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10.0pt;">#Ensure
number of each character type requirements are met</span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10.0pt;">my
@randuc=map{('A'..'Z')[rand(26)]}(1..2);</span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10.0pt;">my
@randlc=map{('a'..'z')[rand(26)]}(1..4);</span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10.0pt;">my
@randnum=map{int(rand(10))}(1..2);</span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10.0pt;">my
@pass=(@randuc, @randlc, @randnum);</span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10.0pt;">my
$passwd=join("", @pass);</span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10.0pt;">print
"$passwd \n";</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
If executed, this code would create random passwords such as
“SEadzs55”, which clearly meet the complexity requirements, but if we run the
password generator over and over again a pattern should emerge.<span style="mso-spacerun: yes;"> </span>The two upper case characters will always be
first, followed by the four lowercase characters, followed by the two
numbers.<span style="mso-spacerun: yes;"> </span>This pattern greatly reduces
the randomness of our passwords and is a common mistake you see in many random
password generators.<span style="mso-spacerun: yes;"> </span>We could greatly
improve this code by adding some additional code that will randomize the
elements of the password, so there is no definitive pattern as to the ordering
of characters.<span style="mso-spacerun: yes;"> </span>We could do this with the
following code snippet:</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10.0pt;">#Shuffles
the generated characters so uc characters not always first</span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10.0pt;">#followed
by lc characters, etc to improve randomness</span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10.0pt;">my
@mixed = shuffle(@pass);</span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10.0pt;">$passwd=join("",
@mixed);</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10.0pt;">print
"$passwd \n";</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
If we now execute the code with this addition multiple
times, will see that after each execution the ordering of the characters is
randomized, thereby improving the entropy of our password.<span style="mso-spacerun: yes;"> </span></div>
cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com1tag:blogger.com,1999:blog-4066189435941690951.post-138419474773135862012-12-17T13:01:00.000-08:002012-12-17T13:01:11.616-08:00Comparing DNS Requests with PerlI was recently helping someone troubleshoot an issue in which one of their DNS servers was returning incorrect IP information for certain domains. Below is a Perl script that makes use of the Net::DNS module to compare the resolved IP addresses for a specified list of domains from a specified list of nameservers. I have it commented out in the script below, but by uncommenting the appropriate line you can also execute a system call to flush the DNS cache of the machine before each set of DNS requests.<br />
<br />
#!usr/bin/perl<br /><br />use Net::DNS;<br />use strict;<br />use warnings;<br /><br />my @domains = ('perl.org','cpan.org','perlmonks.org','perlfoundation.org','perlweekly.com','perlbuzz.com','perlsphere.net');<br />my @DNServers = ('167.206.112.138','8.8.8.8','208.67.222.222');<br /><br />foreach my $DNS (@DNServers){<br /> #flush DNS cache by uncommenting OS specific option <br /> #system('/etc/init.d/nscd restart');<br /> #system('ipconfig /flushdns');<br /> print "Results for $DNS:\n";<br /> my $res=Net::DNS::Resolver->new;<br /> $res->nameservers($DNS);<br /> foreach my $domain(@domains){<br /> #queries server<br /> my $answer = $res->search("$domain");<br /> #extract IPs specified in A records<br /> foreach my $record ($answer->answer) {<br /> next unless $record->type eq "A";<br /> print "$domain:" . $record->address . "\n";<br /> }<br /> };<br /> print "\n\n";<br />} cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com4tag:blogger.com,1999:blog-4066189435941690951.post-63295902882382065372012-09-30T10:58:00.000-07:002012-09-30T10:58:22.905-07:00Searchable Encryption Systems<iframe src="http://www.slideshare.net/slideshow/embed_code/14527247" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="http://www.slideshare.net/cfrenz/searchable-encryption-systems" title="Searchable Encryption Systems" target="_blank">Searchable Encryption Systems</a> </strong> from <strong><a href="http://www.slideshare.net/cfrenz" target="_blank">cfrenz</a></strong> </div>cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com1tag:blogger.com,1999:blog-4066189435941690951.post-45491254318199976752012-08-29T18:16:00.000-07:002012-08-29T18:16:15.717-07:00Extract Information from JavaScript Enabled Content with Perl and V8<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><br />
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
One of the common challenges for anyone that currently
performs information extraction from Web pages is that more and more Web
content is being served up by JavaScript, which makes the content much less
accessible than for sites whose content resides solely in HTML. This is one of
the reasons that JavaScript based obfuscation is used to protect against email address
harvesting like in the HTML shown below:</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<title>Contact XYZ inc</title><br /><H1>Contact XYZ inc</H1><br><br /><p>For more information about XYZ inc, please contact us at the following Email address</p><br /><script type="text/javascript" language="javascript"><br /><!--<br />// Email obfuscator script 2.1 by Tim Williams, University of Arizona<br />// Random encryption key feature by Andrew Moulden, Site Engineering Ltd<br />// This code is freeware provided these four comment lines remain intact<br />// A wizard to generate this code is at http://www.jottings.com/obfuscator/<br />{ coded = "OKUxkq@KwtoO2K.0ko"<br /> key = "l7rE9B41VmIKiFwOLq2uUGYCQaWoMfzNASycJj3Ds8dtRkPv6XTHg0beh5xpZn"<br /> shift=coded.length<br /> link=""<br /> for (i=0; i<coded.length; i++) {<br /> if (key.indexOf(coded.charAt(i))==-1) {<br /> ltr = coded.charAt(i)<br /> link += (ltr)<br /> }<br /> else { <br /> ltr = (key.indexOf(coded.charAt(i))-shift+key.length) % key.length<br /> link += (key.charAt(ltr))<br /> }<br /> }<br />document.write("<a href='mailto:"+link+"'>"+link+"</a>")<br />}<br />//--><br /></script><noscript>Sorry, you need Javascript on to email me.</noscript></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<br />
<div class="MsoNormal">
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
</div>
<div class="MsoNormal">
When having to perform information extraction on sites that
use JavaScript to serve up content, I find the JavaScript::V8 module very
helpful.<span style="mso-spacerun: yes;"> </span>Here is a segment of Perl code
that uses the V8 JavaScript engine to extract the email address from the HTML
page shown above.<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="mso-spacerun: yes;"> #!usr/bin/perl<br /><br />use JavaScript::V8;<br />use LWP;<br />use Text::Balanced qw(extract_codeblock);<br />use strict;<br />use warnings;<br /><br /><br />#delimiter used to distinguish code blocks for use with Text::Balanced<br />my $delim='{}';<br /><br />#downloads Web page<br />my $ua=LWP::UserAgent->new;<br />my $response=$ua->get('http://localhost/email.html');<br />my $result=$response->content;<br /><br />#print "$result\n\n";<br /><br />#extracts JavaScript<br />my $js;<br />if($result=~s/.*?http:\/\/www.jottings.com\/obfuscator\/\s*\{/{/s){<br /> $js=extract_codeblock($result,$delim);<br />}<br /><br />#modified JS to make it processable by V8 module<br />$js=~s/document.write/write/;<br />$js=~s/'/\\'/g;<br /><br />#print "$js\n\n";<br /><br />#processes JS<br />my $context = JavaScript::V8::Context->new();<br />$context->bind_function(write => sub { print @_ });<br /><br />my $mail=$context->eval("$js");<br /><br />print "$mail\n\n";</span></div>
<br />
cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com1tag:blogger.com,1999:blog-4066189435941690951.post-87008405130043969452012-08-22T21:09:00.000-07:002012-08-22T21:09:07.228-07:00A GDB-like Debugger for Perl – Devel::Trepan<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
Earlier today I saw an interesting talk at a meeting of the
NY Perl Mongers in which Rocky Bernstein highlighted some of his recent work
creating a GDB-like debugger for Perl.<span style="mso-spacerun: yes;"> </span>While
Perl does ship with its own integrated debugger, which can be invoked with the –d
switch, the Devel::Trepan module demonstrated appears to have great potential
for turning into a Perl debugger that could one day rival or even exceed the
current Perl debugger.<span style="mso-spacerun: yes;"> </span>The Trepan module
borrows much of its command set from the GDB debugger, which many users who
have migrated to Perl from C\C++ might find helpful.<span style="mso-spacerun: yes;"> </span>Moreover, the debugger as demonstrated, while
still a work in progress, already appears to be functional enough to begin to
be evaluated as a serious possibility for use in debugging tasks. This is a
module that I will definitely be taking a closer look at in the near future and
one that I think would be worth it for other Perl programmers to take a look at
as well.<span style="mso-spacerun: yes;"> </span>More information on the module
can be found at <a href="https://github.com/rocky/Perl-Devel-Trepan">https://github.com/rocky/Perl-Devel-Trepan</a>.<span style="mso-spacerun: yes;"> </span></div>
cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com0tag:blogger.com,1999:blog-4066189435941690951.post-48970625101546546572012-08-16T20:46:00.000-07:002012-08-16T20:46:23.777-07:00Effectively Timeout Slow HTTP Requests with LWPx::ParanoidAgent<div style="font-family: inherit;">
One of the potential pitfalls of writing spiders or any type of application that makes use of http requests is that a slow or intermittent connection to the destination server can make your application hang. While modules such LWP do have a timeout parameter, this parameter is implemented in a way that only works well for timeouts regarding non-responsive sites. Responsive, but very slow, sites will often cause LWP to keep the connection alive and result in your application hanging up for longer than you desire. One way to deal with this issue is to consider making use of the LWPx::ParanoidAgent module. The module is a derivative of LWP, but it does not base its timeouts on time since the last socket read, its timeout counter is initiated at the same time the request is made. Thus if you specify a 10 second timeout, 10 seconds is the maximum amount of time allotted for the completion of the request. This module is used almost identically to the LWP module. For example:</div>
<br />
<div style="font-family: "Courier New",Courier,monospace;">
use LWPx::ParanoidAgent;<br /><br />my $ua=LWPx::ParanoidAgent->new;<br /><br />$ua->timeout(30); #in seconds<br /><br />my $response=$ua->get('http://potentiallyslowsite.com');<br />my $result=$response->content;</div>
<div style="font-family: "Courier New",Courier,monospace;">
<br /></div>
<div style="font-family: "Courier New",Courier,monospace;">
</div>
<div class="MsoNormal">
Another interesting feature of this module, is that it
allows you to specify whitelists and blacklists to give you control over what
links the module will actually attempt connecting to.<span style="mso-spacerun: yes;"> </span>While the near universality of LWP may often
make it the better choice, the LWPx::ParanoidAgent module is worth keeping in
mind for any project that may deal with http requests to sites with questionable network connectivity.<span style="mso-spacerun: yes;"> </span></div>
<div style="font-family: "Courier New",Courier,monospace;">
<br /></div>
cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com1tag:blogger.com,1999:blog-4066189435941690951.post-32501785000711617652012-08-10T17:56:00.000-07:002012-08-29T18:18:24.738-07:00Test and Debug Your Web Applications with Tamper Data<br />
<div class="MsoNormal">
Most Perl programmers at some point in their career are
involved in a project that includes a bit of Web development.<span style="mso-spacerun: yes;"> </span>One of the Firefox plug-ins that I occasionally
find useful for the debugging and testing of Web applications is the <a href="https://addons.mozilla.org/en-us/firefox/addon/tamper-data/">Tamper Data</a>
plug-in for Firefox.<span style="mso-spacerun: yes;"> </span>In particular, from
a debugging perspective it allows you to capture HTTP and HTTPS headers as well
as POST parameters, which can allow you to verify the requests that are being
sent to your Web application.<span style="mso-spacerun: yes;"> </span>On the
testing side, some basic security testing can be done as well, since it allows
you to modify captured HTTP/HTTPS headers and POST parameters prior to
transmission. While someone that is heavily involved in the security testing of
Web applications, would likely be better served by more robust intercepting
proxies (e.g. <a href="http://www.portswigger.net/burp/">Burp Proxy</a>, etc) it
is a nice plug-in to use to introduce people to some of the basic techniques
that can be used to test Web application security.<span style="mso-spacerun: yes;"> </span>An example of a captured Facebook login
request can be seen below.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<img alt="" height="225" src="data:image/png;base64,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" width="400" /></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Notice, how it shows the different POST parameters and their
values?<span style="mso-spacerun: yes;"> </span>Any one of these parameters in
the request could then be modified and submitted to the site.<span style="mso-spacerun: yes;"> </span>Once the “OK” button is clicked, the request
will be forwarded to the Web application, including whatever modifications that
you have made.<span style="mso-spacerun: yes;"> </span></div>
<br />
<br />
<div class="MsoNormal">
<br /></div>
<br />cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com0tag:blogger.com,1999:blog-4066189435941690951.post-54992976068101723902012-08-08T18:40:00.000-07:002012-08-10T19:05:50.793-07:00Testing Your Tests?<br />
<div class="MsoNormal">
This is an idea that I still consider in the “alpha” phase,
and one that I have not yet even begun to code a proof of concept of, but it is
an idea that I would be interested in some community feedback on.<span style="mso-spacerun: yes;"> </span>Testing has always been an integral part of
the culture of Perl and one of the great strengths of the Perl community.<span style="mso-spacerun: yes;"> </span>At a NY Perl Mongers meeting in June I saw a
preview of the YAPC talk by James Keenan on testing that I think provides a
nice introduction to testing for any that are not familiar with Perl’s Test::*
modules. Here is a link to the video of the YAPC talk if any are interested:<span style="mso-spacerun: yes;"> </span><a href="http://youtu.be/A31VhNeGaw0">http://youtu.be/A31VhNeGaw0</a>
</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
What I have been thinking about a lot lately though, is “how
do you test your tests?”<span style="mso-spacerun: yes;"> </span>In other words,
how you do you know if the tests that you put in place are truly adequate.<span style="mso-spacerun: yes;"> </span>What I have been thinking of is building a Perl program that will create let’s say 10 variants of a program that
each contain a random “mutation” of the original code.<span style="mso-spacerun: yes;"> </span>For example, let’s say that it is a math
program being developed and tested, at random points in the code a mathematical
operator (e.g. +) can be changed to another random operator (e.g. -, *, %, etc).
This process would be repeated 10X to create 10 variants of the code that each has
one random operator changed.<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Each of these variants could then be run against the testing
set.<span style="mso-spacerun: yes;"> </span>If the variants result in testing
failures in all cases, the tests probably provide sufficient coverage of the
codes functionality.<span style="mso-spacerun: yes;"> </span>If one or more of
the variants pass all tests, it is an indication that the tests are not robust
enough to adequately assess the proper functionality of the application. I’ll
try to post some proof of concept code soon.<span style="mso-spacerun: yes;">
</span>Thoughts?</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com0tag:blogger.com,1999:blog-4066189435941690951.post-53300570539099785802012-08-05T19:27:00.000-07:002012-08-05T19:52:10.397-07:00A Review of the Book "Modern Perl"<br />
<div class="MsoNormal">
I recently finished reading through a copy of Modern Perl by chromatic and think the book serves as an excellent Perl resource, albeit one
that I would not recommend as book for a first time programmer.<span style="mso-spacerun: yes;"> </span>The book Modern Perl, is one that I believe
is much more suitable for readers with at least some basic programming experience
and I think it will be of the most benefit to those that already work with
Perl, but have not kept up with the latest developments in Perl.<span style="mso-spacerun: yes;"> </span>Perl has changed quite a bit over the last
7-8 years, in ways that would pleasantly surprise those that have not been
following the evolution of Perl.<span style="mso-spacerun: yes;"> </span>I
particularly liked the conciseness of the book and how much information it managed
to cram into 181 pages, yet it is this same conciseness that I think may make
the book challenging for a programming novice.<span style="mso-spacerun: yes;">
</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
For more experienced programmers the book offers a wonderful
way to rapidly bring themselves up to speed on the more modern ways of
approaching Perl programming.<span style="mso-spacerun: yes;"> </span>Coverage
of such modern practices ranges from mentioning small changes like using cpanminus
as a way to install CPAN modules and the newer three argument syntax for
opening files to coverage of some of the major changes in Perl, such as the
development of Moose as a more modern approach to OOP.<span style="mso-spacerun: yes;"> </span>I was especially pleased to see the chapters
towards the end of the book, such as those on “Style and Efficacy”, “Managing
Real Programs”, and “What to Avoid”.<span style="mso-spacerun: yes;"> </span>These
chapters make the book one that goes beyond just teaching how to program in
Perl and turns it into one that stresses teaching the authoring of quality Perl
code.<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
I would recommend that anyone currently making use of Perl
take the time to look through a copy of Modern Perl, particularly since the
author gives you the option of downloading the book entirely for free. For more
information about Modern Perl visit - <a href="http://www.onyxneon.com/books/modern_perl/index.html">http://www.onyxneon.com/books/modern_perl/index.html</a>
</div>cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com1tag:blogger.com,1999:blog-4066189435941690951.post-82214170346622466072012-08-05T11:29:00.000-07:002012-08-11T07:05:55.886-07:00Basic Error Handling in Perl<br />
<div class="MsoNormal">
Anyone that has ever sat at a computer help desk quickly
becomes aware of just how many issues a user can have with even the seemingly
easiest and most user friendly software around.<span style="mso-spacerun: yes;">
</span>Whether it is the user that “lost” his email because he clicked on one
of the sort buttons and now can’t find today’s messages or the user who manages
to crash a calculator-like program because he decides to type “two” instead of “2”,
it becomes readily apparent that computer users will often do things that many
developers would find unthinkable.<span style="mso-spacerun: yes;"> </span>It is
important that software developers learn this lesson early in their
career.<span style="mso-spacerun: yes;"> </span>Whether for malicious reasons or
innocuous ones, your application will be abused by those that make use of
it.<span style="mso-spacerun: yes;"> </span>While some previous posts discussed
the basics of <a href="http://perlgems.blogspot.com/2012/05/brief-introduction-to-input-validation.html">input
validation</a> and some <a href="http://perlgems.blogspot.com/2012/06/using-datavalidate-modules-to-validate.html">modules
that could be used to perform input validation</a>, these are not the only
useful techniques to consider.<span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span>Error handling is also a useful technique for dealing
with potentially problematic situations that could arise.<span style="mso-spacerun: yes;"> </span>For example, perhaps your application
requires access to a file on removable media for certain functions or
connection to a certain network resource.<span style="mso-spacerun: yes;">
</span>While an “or die” type statement alone could be used to deal with the
situation, error handling may provide you with a way to allow your application
to route around the error or to at least fail gracefully.<span style="mso-spacerun: yes;"> </span>The basics of Perl error handling is the eval
statement, which is used as follows:</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="font-family: "Courier New",Courier,monospace;">
#!usr/bin/perl<br />
<br />
use strict;<br />
use warnings;<br />
<br />
my $x=5;<br />
my $y=0;<br />
<br />
eval {<br />
my $result=$x/$y;<br />
print "$result";<br />
1;<br />
} or do {<br />
print "Error: $@\n";<br />
};</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The above code works because if the code in the eval block
executes it will return true, otherwise it will return false, and cause the
code contained in the do block to execute.<span style="mso-spacerun: yes;">
</span>The above example, forces the do block to execute by intentionally
dividing by zero.<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
It is also notable that there are several Perl modules that
are highly useful for error handling as well such as <a href="http://search.cpan.org/dist/Exception-Class/lib/Exception/Class.pm">Exception::Class</a>,
<a href="http://search.cpan.org/%7Eshlomif/Error-0.17018/lib/Error.pm">Error</a>,
and <a href="http://search.cpan.org/%7Eash/TryCatch-1.003000/lib/TryCatch.pm">TryCatch</a>.<span style="mso-spacerun: yes;"> </span>These modules will be looked at in more
detail in a future installment. <span style="mso-spacerun: yes;"> </span></div>cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com0tag:blogger.com,1999:blog-4066189435941690951.post-48885555407963234802012-07-19T19:40:00.000-07:002012-07-19T19:40:13.857-07:00Static Code Analysis with Perl::Critic<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
It is very important for any group that develops software to
adhere to a set of software coding standards.<span style="mso-spacerun: yes;">
</span>These coding standards not only help to improve the readability and maintainability
of the code base, but can also help to improve the security of the resultant
applications.<span style="mso-spacerun: yes;"> </span>Any set of coding
standards should describe a set of best practices for dealing common types of
coding issues. One way to help ensure that code follows the standards dictated
by industry and organizational best practices is to make use of a static code
analyzer.<span style="mso-spacerun: yes;"> </span>For Perl, a popular static
code analyzer is the Perl::Critic module.<span style="mso-spacerun: yes;">
</span>Before we take a look at what this module does, let’s purposely create
some bad Perl code as a test case and save it as badperl.pl.<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="font-family: "Courier New",Courier,monospace;">
<span style="mso-spacerun: yes;">#!/usr/bin/perl<br /><br />$string='string';<br /><br />#assume $filename provided by user<br />open (STATFILE, "/home/user/$filename");<br /><br />#assume input provided by $user<br />system("cat $input");</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="mso-spacerun: yes;"> </span><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
</div>
<div class="MsoNormal">
Now that we have this example of some really bad Perl coding
practices lets create a few line of Perl to run our script through
Perl::Critic.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="font-family: "Courier New",Courier,monospace;">
use Perl::Critic;<br /> <br />my $file = 'badperl.pl';<br />my $critic = Perl::Critic->new();<br />my @violations = $critic->critique($file);<br />print @violations;</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
If we execute the above we will end up with output as
follows:</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="font-family: "Courier New",Courier,monospace;">
<span style="font-size: x-small;">chris@chris-Aspire-5742:~/Desktop$ perl critic.pl <br />Code before strictures are enabled at line 3, column 1. See page 429 of PBP.<br />Bareword file handle opened at line 6, column 1. See pages 202,204 of PBP.<br />Two-argument "open" used at line 6, column 1. See page 207 of PBP.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
</div>
<div class="MsoNormal">
The Perl::Critic module tells of several problems with the
first being that “use strict” was not made use of in our badperl.pl
script.<span style="mso-spacerun: yes;"> </span>Next, it informs us of some
problems with the open statement as well.<span style="mso-spacerun: yes;">
</span>The form of open used in that sample is a depreciated syntax which makes
use of global typeglobs (the Bareword error), rather than a more modern
lexically scoped file handle. <span style="mso-spacerun: yes;"> </span>Perl
Critic also points out that the older "two argument" open syntax is used rather
than the newer "three argument" syntax which can prevent some potential issues
with file names that contain special characters and thus improve the stability
and reliability of the code.<span style="mso-spacerun: yes;"> </span>Using a
static code analyzer is a strongly recommended practice and in the majority of
cases will help ensure an improvement in the overall quality and consistency of
the code, even though compliance with policies may not always be 100%
possible.<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="mso-spacerun: yes;"> </span><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
</div>
<div class="MsoNormal">
It is important to note however, that static code analyzers
are very useful tools, but that they are not able to catch every possible
coding mistake.<span style="mso-spacerun: yes;"> </span>In particular design
related errors in the code will not be picked up by static code analysis.<span style="mso-spacerun: yes;"> </span>For example, in badperl.pl the $filename is
never validated and this may provide a potential vector for a directory
traversal type attack.<span style="mso-spacerun: yes;"> </span>Likewise in the
system call, prior validation is also lacking and could allow a user to provide
something like “/etc/passwd” as $input.<span style="mso-spacerun: yes;">
</span>These issues however were not raised by this analysis, however. Remember that passing a static code analysis does not necessarily equate with secure
code.<span style="mso-spacerun: yes;"> </span></div>cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com1tag:blogger.com,1999:blog-4066189435941690951.post-22814328333585620062012-07-11T18:54:00.001-07:002012-08-10T19:08:03.626-07:00Performing Linear Regression in Perl<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
Linear regression is a very commonly used data analysis
technique that can easily be performed in Perl using the module
Statistics::Regression. This module is capable of performing multivariate
linear regressions, but this code snippet will demonstrate a simple regression
to the basic equation of a line y=mx +b, using the following data set:</div>
<div class="MsoNormal">
<br /></div>
<div align="center">
<table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; margin-left: 5.15pt; width: 161px;">
<tbody>
<tr style="height: .2in; mso-yfti-firstrow: yes; mso-yfti-irow: 0;">
<td nowrap="nowrap" style="background: #4F81BD; border-bottom: none; border-left: solid #4F81BD 1.0pt; border-right: none; border-top: solid #4F81BD 1.0pt; height: .2in; mso-border-left-alt: solid #4F81BD .5pt; mso-border-top-alt: solid #4F81BD .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.4pt;" valign="bottom" width="81">
<div align="center" class="MsoNormal" style="text-align: center;">
<b><span style="color: white; font-size: 11.0pt; mso-ascii-font-family: Calibri; mso-bidi-language: AR-SA; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;">X</span></b></div>
</td>
<td nowrap="nowrap" style="background: #4F81BD; border-bottom: none; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: solid #4F81BD 1.0pt; height: .2in; mso-border-right-alt: solid #4F81BD .5pt; mso-border-top-alt: solid #4F81BD .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.4pt;" valign="bottom" width="81">
<div align="center" class="MsoNormal" style="text-align: center;">
<b><span style="color: white; font-size: 11.0pt; mso-ascii-font-family: Calibri; mso-bidi-language: AR-SA; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;">Y</span></b></div>
</td>
</tr>
<tr style="height: .2in; mso-yfti-irow: 1;">
<td nowrap="nowrap" style="border-bottom: none; border-left: solid #4F81BD 1.0pt; border-right: none; border-top: solid #4F81BD 1.0pt; height: .2in; mso-border-left-alt: solid #4F81BD .5pt; mso-border-top-alt: solid #4F81BD .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.4pt;" valign="bottom" width="81">
<div align="center" class="MsoNormal" style="text-align: center;">
<span style="color: black; font-size: 11.0pt; mso-ascii-font-family: Calibri; mso-bidi-language: AR-SA; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;">1</span></div>
</td>
<td nowrap="nowrap" style="border-bottom: none; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: solid #4F81BD 1.0pt; height: .2in; mso-border-right-alt: solid #4F81BD .5pt; mso-border-top-alt: solid #4F81BD .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.4pt;" valign="bottom" width="81">
<div align="center" class="MsoNormal" style="text-align: center;">
<span style="color: black; font-size: 11.0pt; mso-ascii-font-family: Calibri; mso-bidi-language: AR-SA; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;">1.3</span></div>
</td>
</tr>
<tr style="height: .2in; mso-yfti-irow: 2;">
<td nowrap="nowrap" style="border-bottom: none; border-left: solid #4F81BD 1.0pt; border-right: none; border-top: solid #4F81BD 1.0pt; height: .2in; mso-border-left-alt: solid #4F81BD .5pt; mso-border-top-alt: solid #4F81BD .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.4pt;" valign="bottom" width="81">
<div align="center" class="MsoNormal" style="text-align: center;">
<span style="color: black; font-size: 11.0pt; mso-ascii-font-family: Calibri; mso-bidi-language: AR-SA; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;">2</span></div>
</td>
<td nowrap="nowrap" style="border-bottom: none; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: solid #4F81BD 1.0pt; height: .2in; mso-border-right-alt: solid #4F81BD .5pt; mso-border-top-alt: solid #4F81BD .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.4pt;" valign="bottom" width="81">
<div align="center" class="MsoNormal" style="text-align: center;">
<span style="color: black; font-size: 11.0pt; mso-ascii-font-family: Calibri; mso-bidi-language: AR-SA; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;">2.9</span></div>
</td>
</tr>
<tr style="height: .2in; mso-yfti-irow: 3;">
<td nowrap="nowrap" style="border-bottom: none; border-left: solid #4F81BD 1.0pt; border-right: none; border-top: solid #4F81BD 1.0pt; height: .2in; mso-border-left-alt: solid #4F81BD .5pt; mso-border-top-alt: solid #4F81BD .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.4pt;" valign="bottom" width="81">
<div align="center" class="MsoNormal" style="text-align: center;">
<span style="color: black; font-size: 11.0pt; mso-ascii-font-family: Calibri; mso-bidi-language: AR-SA; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;">3</span></div>
</td>
<td nowrap="nowrap" style="border-bottom: none; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: solid #4F81BD 1.0pt; height: .2in; mso-border-right-alt: solid #4F81BD .5pt; mso-border-top-alt: solid #4F81BD .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.4pt;" valign="bottom" width="81">
<div align="center" class="MsoNormal" style="text-align: center;">
<span style="color: black; font-size: 11.0pt; mso-ascii-font-family: Calibri; mso-bidi-language: AR-SA; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;">4.2</span></div>
</td>
</tr>
<tr style="height: .2in; mso-yfti-irow: 4; mso-yfti-lastrow: yes;">
<td nowrap="nowrap" style="border-right: none; border: solid #4F81BD 1.0pt; height: .2in; mso-border-bottom-alt: solid #4F81BD .5pt; mso-border-left-alt: solid #4F81BD .5pt; mso-border-top-alt: solid #4F81BD .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.4pt;" valign="bottom" width="81">
<div align="center" class="MsoNormal" style="text-align: center;">
<span style="color: black; font-size: 11.0pt; mso-ascii-font-family: Calibri; mso-bidi-language: AR-SA; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;">4</span></div>
</td>
<td nowrap="nowrap" style="border-left: none; border: solid #4F81BD 1.0pt; height: .2in; mso-border-bottom-alt: solid #4F81BD .5pt; mso-border-right-alt: solid #4F81BD .5pt; mso-border-top-alt: solid #4F81BD .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 48.4pt;" valign="bottom" width="81">
<div align="center" class="MsoNormal" style="text-align: center;">
<span style="color: black; font-size: 11.0pt; mso-ascii-font-family: Calibri; mso-bidi-language: AR-SA; mso-fareast-font-family: "Times New Roman"; mso-hansi-font-family: Calibri;">5.4</span></div>
</td>
</tr>
</tbody></table>
</div>
<div class="MsoNormal">
<span style="font-family: "Courier New",Courier,monospace;">#!usr/bin/perl</span><br style="font-family: "Courier New",Courier,monospace;" /><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">use Statistics::Regression;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">use strict;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">use warnings;</span><br style="font-family: "Courier New",Courier,monospace;" /><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">my $reg=Statistics::Regression->new(</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> "Title", ["Intercept", "Slope"]</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> );</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> </span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">#the use of 1.0 in the includes allows</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">#for the computation of a y intercept </span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">$reg->include(1.3, [1.0, 1.0]);</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">$reg->include(2.9, [1.0, 2.0]);</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">$reg->include(4.2, [1.0, 3.0]);</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">$reg->include(5.4, [1.0, 4.0]);</span><br style="font-family: "Courier New",Courier,monospace;" /><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">$reg->print;</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
To understand how the module works, let’s consider the
equation in a more multivariate form by rewriting it as y=bx<sub>1</sub> + mx<sub>2</sub>.<span style="mso-spacerun: yes;"> </span>Considering the equation in this form, will
make the “include” statements that provide the data points to the module much
easier to understand.<span style="mso-spacerun: yes;"> </span>The include
statements could be considered as using the following data entry format:</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
$reg->include(y, [x<sub>1</sub>, x<sub>2</sub>]);</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Thus by always putting 1.0 in the x<sub>1</sub> position it
allows for the computation of a Y-intercept since it is telling the regression
module that the x<sub>1</sub> variable does not influence the outcome of bx<sub>1</sub>,
whereas the x<sub>2</sub> values correspond to the X values, since we want mx<sub>2</sub>
to change with a change in X. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
A look at the output generated by the Perl module
demonstrates the following results:</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="font-family: "Courier New",Courier,monospace;">
****************************************************************</div>
<div class="MsoNormal" style="font-family: "Courier New",Courier,monospace;">
Regression 'Title'</div>
<div class="MsoNormal" style="font-family: "Courier New",Courier,monospace;">
****************************************************************</div>
<div class="MsoNormal" style="font-family: "Courier New",Courier,monospace;">
Name<span style="mso-spacerun: yes;">
</span>Theta<span style="mso-spacerun: yes;"> </span>StdErr<span style="mso-spacerun: yes;"> </span>T-stat</div>
<div class="MsoNormal" style="font-family: "Courier New",Courier,monospace;">
[0='Intercept']<span style="mso-spacerun: yes;">
</span>0.0500<span style="mso-spacerun: yes;"> </span>0.1775<span style="mso-spacerun: yes;"> </span>0.28</div>
<div class="MsoNormal" style="font-family: "Courier New",Courier,monospace;">
[1='Slope']<span style="mso-spacerun: yes;">
</span>1.3600<span style="mso-spacerun: yes;"> </span>0.0648<span style="mso-spacerun: yes;"> </span>20.99</div>
<div class="MsoNormal" style="font-family: "Courier New",Courier,monospace;">
<br /></div>
<div class="MsoNormal" style="font-family: "Courier New",Courier,monospace;">
R^2= 0.995, N= 4, K= 2</div>
<div class="MsoNormal" style="font-family: "Courier New",Courier,monospace;">
****************************************************************</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The plot of the line that would result from the regression
is as follows:</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<img alt="" src="data:image/png;base64,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" /></div><br />
<a href="http://gan.doubleclick.net/gan_click?lid=41000000033320172&pubid=21000000000567502"><img src="http://gan.doubleclick.net/gan_impression?lid=41000000033320172&pubid=21000000000567502" border=0 alt="Kobo Wifi eReader"></a>cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com3tag:blogger.com,1999:blog-4066189435941690951.post-73842536716882929822012-07-01T19:37:00.005-07:002012-07-01T19:37:58.274-07:00Split an Array into Two Equal Parts<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
This is a small snippet of Perl code which demonstrates a
quick and easy way to take an array that contains an even number of elements
and split it up into two smaller arrays.<span style="mso-spacerun: yes;">
</span>Assuming the array values are read left to right, the array called @Left
will store the first half of the array elements, while the array called @Right
will store the second half of the array elements.<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="font-family: "Courier New",Courier,monospace;">
<span>#!usr/bin/perl<br />use strict;<br />use warnings;<br /><br />#generate 10 random numbers between 0 and 9<br />my $range=10;<br />my @nums = map { int(rand($range)) } ( 1..10 );<br /><br />#splits array in half<br />my @Left = @nums;<br />my @Right = splice @Left, scalar(@nums)/2;<br /><br />#formats data to visually show split<br />my $Lefthalf=join('',@Left);<br />my $Righthalf=join('',@Right);<br />print "$Lefthalf\n";<br />print "$Righthalf\n";</span></div>cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com0tag:blogger.com,1999:blog-4066189435941690951.post-29035113920923275582012-06-21T17:15:00.000-07:002012-06-21T17:15:51.372-07:00A Simple Perl-Based RSS to Email Program<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
While many sites offer RSS feeds as a means of keeping up to
date with new content, not everyone is as familiar with RSS and RSS feed
readers as they are with Email and Email clients.<span style="mso-spacerun: yes;"> </span>To deal with this issue, here is a small Perl
code snippet which will download an RSS feed, parse out the title and the
description associated with each RSS entry, and email out the extracted
information.<span style="mso-spacerun: yes;"> </span>In the interest of
simplicity for the sample code, it extracts the item titles and description
from every element in the feed, but with a little modification it could be
adapted to only utilize the most recent feed entries. <span style="mso-spacerun: yes;"> </span>Running the script periodically to check for
new RSS entries could be easily handled via cron jobs or other job scheduler.<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The Email sending portion of the code was tested using
Gmail.<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span> <span style="font-family: "Courier New",Courier,monospace;">#!usr/bin/perl</span><br style="font-family: "Courier New",Courier,monospace;" /><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">use Email::Sender::Simple qw(sendmail);</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">use Email::Sender::Transport::SMTP::TLS;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">use Email::Simple;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">use Email::Simple::Creator;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">use XML::RSS::Parser;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">use LWP;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">use strict;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">use warnings;</span><br style="font-family: "Courier New",Courier,monospace;" /><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">my $feedurl='http://feeds.feedburner.com/SansInstituteNewsbites?format=xml';</span><br style="font-family: "Courier New",Courier,monospace;" /><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">my $ua=LWP::UserAgent->new;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">my $response=$ua->get($feedurl);</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">my $rss=$response->content;</span><br style="font-family: "Courier New",Courier,monospace;" /><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">my $parser= new XML::RSS::Parser;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">my $feed=$parser->parse_string($rss);</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">my $feed_title = $feed->query('/channel/title');</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">my $message = $feed_title->text_content;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">my $count = $feed->item_count;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">$message.=" ($count)\n";</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">foreach my $i ( $feed->query('//item') ) { </span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> my $node = $i->query('title');</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> $message.= ' '.$node->text_content . "\n";</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> $node = $i->query('description');</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> $message.=' '.$node->text_content;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> $message.= "\n\n"; </span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">}</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">#strips out feed specific html tags because I chose to send plain text email</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">$message=~s/((<p>)|(<\/p>))//gio;</span><br style="font-family: "Courier New",Courier,monospace;" /><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">my $transport = Email::Sender::Transport::SMTP::TLS->new(</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> host => 'smtp.gmail.com',</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> port => 587,</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> username => 'somebody@gmail.com',</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> password => 'password'</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">);</span><br style="font-family: "Courier New",Courier,monospace;" /><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">my $email = Email::Simple->create(</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> header => [</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> To => '"Somebody" <somebody@gmail.com>',</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> From => '"Somebody Else" <s_else@gmail.com>',</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> Subject => "The Latest Updates",</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> ],</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> body => "$message",</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">);</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">sendmail($email, {transport => $transport});</span><br style="font-family: "Courier New",Courier,monospace;" /></span></div>cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com1tag:blogger.com,1999:blog-4066189435941690951.post-79135931260094157732012-06-19T19:55:00.001-07:002012-08-29T18:20:56.491-07:00Companies That Use Perl<div class="MsoNormal">
I recently saw this site mentioned in one of the LinkedIn
Perl forums and thought it provides an interesting way to promote Perl.<span style="mso-spacerun: yes;"> </span>It is a listing of many of the companies in
the Los Angeles area that make use of Perl for major product development- <a href="http://perl.la/">http://perl.la/</a> One thing that I think is also
interesting about this site is the way they present the list of companies.<span style="mso-spacerun: yes;"> </span>While I can think of many reasons a “text-like”
list of hyperlinks (used by other such lists) can be advantageous, the graphical
way perl.la displays its data is probably an interface with more marketing
appeal.<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The list contains a number of companies that should be
widely recognizable to those that are not already involved in the Perl
community or even a computer related occupation – companies like CBS television,
DreamWorks, Ticketmaster, and Experian.<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Seeing this site also made me think of some other lists of
companies that use Perl such as these from the Perl 5 Wiki and other sources:</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
A list of companies using Perl - <a href="https://www.socialtext.net/perl5/Companies%20using%20Perl">https://www.socialtext.net/perl5/Companies%20using%20Perl</a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
A list of applications written in Perl - <a href="https://www.socialtext.net/perl5/applications">https://www.socialtext.net/perl5/applications</a>
</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
A list of companies that use Catalyst - <a href="http://wiki.catalystframework.org/wiki/sitesrunningcatalyst">http://wiki.catalystframework.org/wiki/sitesrunningcatalyst</a>
</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
A list of companies that use Moose - <a href="http://moose.iinteractive.com/about.html">http://moose.iinteractive.com/about.html</a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
A list of companies that use Mojolicious - <a href="https://github.com/kraih/mojo/wiki/Projects-and-Companies-Using-Mojolicious">https://github.com/kraih/mojo/wiki/Projects-and-Companies-Using-Mojolicious</a>
</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Perl is clearly still thriving!!!</div>
cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com2tag:blogger.com,1999:blog-4066189435941690951.post-15383809286272020362012-06-12T15:44:00.000-07:002012-06-12T15:44:46.691-07:00A Perl PDL Demonstration Using the Hill Cipher Algorithm<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
PDL is an excellent Perl module for anyone seeking to do any
type of numerical computing that involves matrix math. <span style="mso-spacerun: yes;"> </span>As an illustration of this, let’s take a look
at a PDL implementation of a simple encryption algorithm that uses matrix math,
the Hill Cipher.<span style="mso-spacerun: yes;"> </span>As a starting point, the
Hill Cipher assigns each letter in the alphabet a numerical value (e.g. a=0,
b=1, c=2, … z=25).<span style="mso-spacerun: yes;"> </span>The cipher works by
taking n plain text letters and converting them to their numeric representation.<span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;">In the example code a n of 3 is used. </span>We will refer to this set of numerically represented
plain text letters as P. It then takes an nXn matrix, which is used as an encryption
key (K), and performs the following matrix math operation to yield the
numerical representation of n cipher text letters (C).<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
C=P x K mod 26</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
If you look at the Perl code below, notice how easy PDL
makes this operation.<span style="mso-spacerun: yes;"> </span>There is no need
to loop through the elements of an array and perform mathematical operations on
each element.<span style="mso-spacerun: yes;"> </span>One can simply process
entire matrices as a single entity and as such this is one of the features that
makes PDL such a huge asset to anyone that performs numerical computing in
Perl.<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The reverse of this process is performed by taking the
inverse matrix (K1) and performing the following math operation:</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
P=C x K1 mod 26</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
As a means of testing the example code, a known set of values
from the book “Cryptography and Network Security” by William Stallings are used.<span style="mso-spacerun: yes;"> </span>If run as is, the sample code should result
in the cipher text RRLMWBKASPDH after encryption and the decryption should
return the original plain text value.<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span><span style="font-family: "Courier New",Courier,monospace;">#usr/bin/perl</span><br style="font-family: "Courier New",Courier,monospace;" /><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">use PDL;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">use strict;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">use warnings;</span><br style="font-family: "Courier New",Courier,monospace;" /><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">my @letters = ('a'..'z');</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">my (%encoding,%encoding2);</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">my $i=0;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">foreach my $letter (@letters){</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> $encoding{$letter}=$i;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> $encoding2{$i}=$letter;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> $i++;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">}</span><br style="font-family: "Courier New",Courier,monospace;" /><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">#encryption</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">my $plaintext='paymoremoney'; #length=multiple of 3</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">$plaintext=lc($plaintext);</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">my $ciphertext='';</span><br style="font-family: "Courier New",Courier,monospace;" /><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">#encryption key</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">my $k = pdl [[17,17,5],[21,18,21],[2,2,19]];</span><br style="font-family: "Courier New",Courier,monospace;" /><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">while($plaintext=~/(\w)(\w)(\w)/g){</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> my $x=$encoding{$1};</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> my $y=$encoding{$2};</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> my $z=$encoding{$3};</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> my $p= pdl [$x,$y,$z];</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> my $c= $p x $k % 26;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> foreach (0 .. $c->nelem-1){</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> my $j=$c->flat->index($_);</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> $ciphertext.=$encoding2{$j};</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> }</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">}</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">print uc($ciphertext)."\n\n";</span><br style="font-family: "Courier New",Courier,monospace;" /><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">#decryption</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">$plaintext='';</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">#inverse matrix</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">#hardcoded and not computed to simplify example code</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">my $k1= pdl [[4,9,15],[15,17,6],[24,0,17]];</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">while($ciphertext=~/(\w)(\w)(\w)/g){</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> my $x=$encoding{$1};</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> my $y=$encoding{$2};</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> my $z=$encoding{$3};</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> my $c= pdl [$x,$y,$z];</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> my $p= $c x $k1 % 26;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> foreach (0 .. $p->nelem-1){</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> my $j=$p->flat->index($_);</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> $plaintext.=$encoding2{$j};</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> }</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">}</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">print $plaintext;</span></span></div>cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com0tag:blogger.com,1999:blog-4066189435941690951.post-48461071318929701022012-06-08T20:17:00.000-07:002012-08-08T17:42:39.613-07:00Retrieve Windows System Information with Perl<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
For anyone that has to troubleshoot Windows systems, being
able to quickly and easily identify information about the computer such as OS
info, drive information, network settings, and so on, can be a real time
saver.<span style="mso-spacerun: yes;"> </span>This Perl script makes use of
several Win32 modules to determine information about the installed operating
system, the computer name, processor information, RAM information, drive
information, and computer network settings.<span style="mso-spacerun: yes;">
</span>When running the script, you may want to take advantage of redirection
to save the output to a file since it can be a bit on the lengthy side if the
computer has multiple processors, multiple network adapters, etc.<span style="mso-spacerun: yes;"> </span>To take advantage of redirection run the
script as follows:</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
perl WinInfo.pl > output.txt</div>
<div class="MsoNormal">
<br /></div>
<span style="font-family: "Calibri","sans-serif"; font-size: 12.0pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: EN-US; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">This
will save the output of the script to a file called output.txt. </span><br />
<br />
<span style="font-family: "Calibri","sans-serif"; font-size: 12pt;">use Win32;<br />use Win32::SystemInfo;<br />use Win32::DriveInfo;<br />use Win32::IPConfig;<br />use strict;<br />use warnings;<br /><br />print "OS Information\n";<br />my $computer=Win32::NodeName();<br />print "The computer name is $computer\n";<br /><br />my $domain=Win32::DomainName();<br />print "The computer is a member of the $domain domain/workgroup\n";<br /><br />my $OS=Win32::GetOSDisplayName();<br />print "The OS is $OS\n";<br /><br />my $fs=Win32::FsType();<br />print "The filesytem is $fs\n";<br /><br />my $user=Win32::LoginName();<br />print "The current user is $user\n";<br /><br />my $admin=Win32::IsAdminUser();<br />if($admin!=0){<br /> print "$user is running this script as admin\n\n\n";<br />}<br />else{<br /> print "$user is not running this script as admin\n\n\n";<br />}<br /><br />print "Processor and RAM Information\n";<br />my %processor;<br />Win32::SystemInfo::ProcessorInfo(%processor);<br />for (my $i=0;$i<$processor{NumProcessors};$i++) {<br /> print "Processor$i\n";<br /> print "Processor Name: " . $processor{"Processor$i"}{ProcessorName} . "\n";<br /> print "Processor Info: " . $processor{"Processor$i"}{Identifier} . "\n";<br /> print "Processor Speed: " . $processor{"Processor$i"}{MHZ} . "MHz\n\n"; <br />}<br /><br />my %memory;<br />Win32::SystemInfo::MemoryStatus(%memory, 'GB');<br />print "The computer has $memory{TotalPhys} GB of RAM\n\n\n";<br /><br />my %dtypes=(0 => "Undertmined",<br />1 => "Does Not Exist",<br />2 => "Removable",<br />3 => "Hardrive",<br />4 => "Network",<br />5 => "CDROM",<br />6 => "RAM Disk");<br /><br />print "Drive Information\n";<br />my @drives = Win32::DriveInfo::DrivesInUse();<br />foreach my $drive (@drives){<br /> my $type=Win32::DriveInfo::DriveType($drive);<br /> print "Drive $drive is a $dtypes{$type}\n";<br /> <br />}<br /><br />print "\n\nNetwork Information";<br />my $ipconfig = Win32::IPConfig->new($computer)<br /> or die "Unable to connect to $computer\n";<br />foreach my $adapter ($ipconfig->get_adapters) {<br /> print "\nAdapter '", $adapter->get_name, "':\n";<br /><br /> print "Description=", $adapter->get_description, "\n";<br /><br /> print "DHCP enabled=",<br /> $adapter->is_dhcp_enabled ? "Yes" : "No", "\n";<br /><br /> my @ipaddresses = $adapter->get_ipaddresses;<br /> print "IP addresses=@ipaddresses (", scalar @ipaddresses, ")\n";<br /><br /> my @subnet_masks = $adapter->get_subnet_masks;<br /> print "subnet masks=@subnet_masks (", scalar @subnet_masks, ")\n";<br /><br /> my @gateways = $adapter->get_gateways;<br /> print "gateways=@gateways (", scalar @gateways, ")\n";<br /><br /> print "domain=", $adapter->get_domain, "\n";<br /><br /> my @dns = $adapter->get_dns;<br /> print "dns=@dns (", scalar @dns, ")\n";<br /><br /> my @wins = $adapter->get_wins;<br /> print "wins=@wins (", scalar @wins, ")\n";<br />}</span>
<br />
<a href="http://gan.doubleclick.net/gan_click?lid=41000000030269652&pubid=21000000000567502"><img src="http://gan.doubleclick.net/gan_impression?lid=41000000030269652&pubid=21000000000567502" border=0 alt="Kobo has over 2 million ebooks to choose from!"></a>cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com4tag:blogger.com,1999:blog-4066189435941690951.post-36283985642881529322012-06-06T13:10:00.003-07:002012-08-29T18:21:45.115-07:00Using Data::Validate Modules to Validate Application Data<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
In an earlier approach I provided <a href="http://perlgems.blogspot.com/2012/05/brief-introduction-to-input-validation.html">A
Brief Introduction to Input Validation</a> where the basic concepts of
whitelisting and blacklisting were introduced to readers.<span style="mso-spacerun: yes;"> </span>While every programmer should be familiar
with the idea of writing input validation filters it can often be challenging
to develop a filter that minimizes both the numbers of false positives as well
as the number of false negatives, and thus it often pays to use well tested
routines for input validation where feasible.<span style="mso-spacerun: yes;">
</span><span style="mso-spacerun: yes;"> </span>CPAN contains many such routines
that can usually be located by searching CPAN for terms like Valid, Validate,
Validator, and Validation.<span style="mso-spacerun: yes;"> </span>One CPAN
namespace in particular that has many useful routines is the Data::Validate
namespace, which contains routines for validating numbers, IP addresses, email
addresses, URLs and more.<span style="mso-spacerun: yes;"> </span>In the code
snippet below we will take a look at the Data::Validate::IP (<a href="http://search.cpan.org/%7Eneely/Data-Validate-IP-0.14/lib/Data/Validate/IP.pm">http://search.cpan.org/~neely/Data-Validate-IP-0.14/lib/Data/Validate/IP.pm</a>)
and the Data::Validate::Email (<a href="http://search.cpan.org/%7Esonnen/Data-Validate-Email-0.04/Email.pm">http://search.cpan.org/~sonnen/Data-Validate-Email-0.04/Email.pm</a>)
Perl modules.<span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span> #!usr/bin/perl<br /><br />use strict;<br />use warnings;<br /><br />use Data::Validate::IP qw(is_ipv4);<br /><br />my @IPs=('192.168.1.5','127.0.0.1','116.12.54.257','abc.123.123.123');<br />foreach my $IP (@IPs){<br /> if(is_ipv4($IP)){<br /> print "$IP is a valid ipv4 address\n";<br /> }<br /> else{<br /> print "$IP is invalid\n";<br /> }<br />}<br /><br />use Data::Validate::Email qw(is_email);<br />my @Emails=('someone@example.com','someone&example.net','someone@example.123','someone@example.info');<br />foreach my $Email (@Emails){<br /> if(is_email($Email)){<br /> print "$Email is a valid Email address\n";<br /> }<br /> else{<br /> print "$Email is invalid\n";<br /> }<br />}</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span> </span><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
</div>
<div class="MsoNormal">
Once you select a validation method for your application it
is also imperative that you take the time to test your validation routine to
make sure that valid inputs are properly passed on to the application and that
any invalid inputs are flagged as such.<span style="mso-spacerun: yes;"> </span>Such
testing should involve both use cases as well as “abuse” cases designed to try
to bypass the filter.<span style="mso-spacerun: yes;"> </span>The need for
testing is especially true if you decide to implement your own validation
routine as it is not always easy to think off all the possible ways somewhat
could attempt to format an input string.<span style="mso-spacerun: yes;">
</span>Remember that input validation is typically an application’s front line
defense in that it exists to minimize the risk of improper or malicious data
from ever being processed by the application.<span style="mso-spacerun: yes;">
</span></div><br />cfrenzhttp://www.blogger.com/profile/15399048188784702551noreply@blogger.com1