<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.wiki.mohid.com/index.php?action=history&amp;feed=atom&amp;title=Perl</id>
		<title>Perl - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://www.wiki.mohid.com/index.php?action=history&amp;feed=atom&amp;title=Perl"/>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Perl&amp;action=history"/>
		<updated>2026-04-04T20:40:31Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Perl&amp;diff=2782&amp;oldid=prev</id>
		<title>Guillaume: /* Sample files */</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Perl&amp;diff=2782&amp;oldid=prev"/>
				<updated>2010-01-20T13:45:22Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Sample files&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 13:45, 20 January 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l136&quot; &gt;Line 136:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 136:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; exit(0);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; exit(0);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Example:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Example:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;gt; perl &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;rename&lt;/del&gt;.pl &amp;quot;s/_/-/g&amp;quot; test_file_.txt&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;gt; perl &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;perlrename&lt;/ins&gt;.pl &amp;quot;s/_/-/g&amp;quot; test_file_.txt&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;gt; dir&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;gt; dir&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;gt;&amp;#160; &amp;#160; &amp;#160; test-file-.txt&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;gt;&amp;#160; &amp;#160; &amp;#160; test-file-.txt&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Now install it in c:/Perl/bin and it'll be universally accessible&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &amp;gt; perlrename.pl &amp;quot;s/_/-/g&amp;quot; test_file_.txt&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &amp;gt; for /F %i in ('dir /B *.eps') do @perlrename.pl &amp;quot;s/_/-/g&amp;quot; %i&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Example of a script skeleton ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Example of a script skeleton ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Guillaume</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Perl&amp;diff=2781&amp;oldid=prev</id>
		<title>Guillaume: /* Sample files */</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Perl&amp;diff=2781&amp;oldid=prev"/>
				<updated>2010-01-20T13:33:51Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Sample files&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 13:33, 20 January 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l114&quot; &gt;Line 114:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 114:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Sample files==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Sample files==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;===Rename files with a regexp===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; #!/usr/local/bin/perl&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; #&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; # Usage: rename perlexpr [files]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; ($regexp = shift @ARGV) || die &amp;quot;Usage:&amp;#160; rename perlexpr [filenames]\n&amp;quot;;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; if (!@ARGV) {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;#160; &amp;#160; @ARGV = &amp;lt;STDIN&amp;gt;;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;#160; &amp;#160; chomp(@ARGV);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; }&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; foreach $_ (@ARGV) {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;#160; &amp;#160; $old_name = $_;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;#160; &amp;#160; eval $regexp;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;#160; &amp;#160; die $@ if $@;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;#160; &amp;#160; rename($old_name, $_) unless $old_name eq $_;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; }&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; exit(0);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Example:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &amp;gt; perl rename.pl &amp;quot;s/_/-/g&amp;quot; test_file_.txt&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &amp;gt; dir&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &amp;gt;&amp;#160; &amp;#160; &amp;#160; test-file-.txt&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Example of a script skeleton ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Example of a script skeleton ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;[perl,Y]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;[perl,Y]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Guillaume</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Perl&amp;diff=756&amp;oldid=prev</id>
		<title>Guillaume: 1 revision</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Perl&amp;diff=756&amp;oldid=prev"/>
				<updated>2008-12-03T10:39:01Z</updated>
		
		<summary type="html">&lt;p&gt;1 revision&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 10:39, 3 December 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='en'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Guillaume</name></author>	</entry>

	<entry>
		<id>http://www.wiki.mohid.com/index.php?title=Perl&amp;diff=755&amp;oldid=prev</id>
		<title>89.180.146.64: /* ConvertToHDF5 */</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.mohid.com/index.php?title=Perl&amp;diff=755&amp;oldid=prev"/>
				<updated>2008-03-15T01:15:48Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;ConvertToHDF5&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Perl is a powerful and versatile scripting language that comes in handy when bot-working is needed on any operating system.&lt;br /&gt;
&lt;br /&gt;
==Installing==&lt;br /&gt;
To use the perl scripting language, first you need to install it on your operating system.&lt;br /&gt;
*To install packages type:&lt;br /&gt;
 &amp;gt;perl -MCPAN -e shell&lt;br /&gt;
 CPAN&amp;gt; install ''packagename''&lt;br /&gt;
 CPAN&amp;gt; force install ''packagename''&lt;br /&gt;
(ex: install Date::Calc). '''Warning''': under windows use a .NET environment command prompt!!&lt;br /&gt;
*To run a perl script type:&lt;br /&gt;
 &amp;gt;perl ''scriptfile''&lt;br /&gt;
(ex: perl test.pl).&lt;br /&gt;
&lt;br /&gt;
===Installing for windows===&lt;br /&gt;
If you are one of the unlucky Visual Studio 2005 owners, then you'd better install the [http://sourceforge.net/project/showfiles.php?group_id=158775&amp;amp;package_id=178025 CamelPack] or else you won't be able to install perl modules from CPAN. Microsoft did there a hard blow against the Perl community.&lt;br /&gt;
&lt;br /&gt;
===Common extensions===&lt;br /&gt;
Here are the common extensions used:&lt;br /&gt;
&lt;br /&gt;
 use Net::FTP;&lt;br /&gt;
 use Net::SMTP;&lt;br /&gt;
 use IO::File;&lt;br /&gt;
 use Date::Calc;&lt;br /&gt;
 use NetCDF;&lt;br /&gt;
&lt;br /&gt;
===PPM===&lt;br /&gt;
The Perl Package Manager is here to help installing and managing Perl packages. The greatest asset of Perls longevity is its package repository with over 6500 packages!&lt;br /&gt;
Here are some of the commands that best explain how to use ppm:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ppm list&lt;br /&gt;
will list installed packages.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ppm help&lt;br /&gt;
 &amp;gt; ppm help ''command''&lt;br /&gt;
will return help manual.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ppm search ''pattern''&lt;br /&gt;
 &amp;gt; ppm search *&lt;br /&gt;
will return a numbered list of downloadable packages matching ''pattern''.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ppm describe ''pkg''&lt;br /&gt;
 &amp;gt; ppm describe ''module''&lt;br /&gt;
 &amp;gt; ppm describe ''url''&lt;br /&gt;
 &amp;gt; ppm describe ''number''&lt;br /&gt;
will describe the selected package. Note that ''number'' is the package number taken from the last search.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ppm install ''pkg''&lt;br /&gt;
 &amp;gt; ppm install ''module''&lt;br /&gt;
 &amp;gt; ppm install ''url''&lt;br /&gt;
 &amp;gt; ppm install ''number''&lt;br /&gt;
will install the desired package. Note that ''number'' is the package number taken from the last search.&lt;br /&gt;
==Variables, arrays and hashes==&lt;br /&gt;
===Variables===&lt;br /&gt;
===Arrays===&lt;br /&gt;
===Hashes===&lt;br /&gt;
Here's a sample hash construction&lt;br /&gt;
    %hash = (&lt;br /&gt;
        key1 =&amp;gt; 'value1',&lt;br /&gt;
        key2 =&amp;gt; 'value2',&lt;br /&gt;
        key3 =&amp;gt; 'value3',&lt;br /&gt;
    );&lt;br /&gt;
Here's a simple hash entry definition&lt;br /&gt;
 $hash{$key} = $value;&lt;br /&gt;
&lt;br /&gt;
==Flow control==&lt;br /&gt;
===For===&lt;br /&gt;
===While===&lt;br /&gt;
 while ( ($key, $value) = each(%$nc_ref) ) {&lt;br /&gt;
    print &amp;quot;$key =&amp;gt; $value \n&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===Foreach===&lt;br /&gt;
 foreach $thing (@list){&lt;br /&gt;
     $machine = $thing;&lt;br /&gt;
     $filesize = $thingy;&lt;br /&gt;
     $filename = $thingabob;&lt;br /&gt;
     write;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==[[Regexp]]==&lt;br /&gt;
&lt;br /&gt;
===matching===&lt;br /&gt;
Returns true if ''pattern'' is found in ''$sample''&lt;br /&gt;
 $sample =~ m/pattern/&lt;br /&gt;
&lt;br /&gt;
===Substituting===&lt;br /&gt;
Substitutes the ''pattern'' with ''newtext'' in every occurence of string ''sample'' and writes the changes into ''sample''.&lt;br /&gt;
 $sample =~ s/pattern/newtext/g&lt;br /&gt;
&lt;br /&gt;
===Translate===&lt;br /&gt;
Translates an ascii letter for another. It applies to patterns as well.&lt;br /&gt;
 $sample =~ tr/,\./; /g&lt;br /&gt;
The above examples changes the commas(,) for semi-colons(;) and points(.) for spaces( ).&lt;br /&gt;
&lt;br /&gt;
==[[Perl one-liners|One-Liners]]==&lt;br /&gt;
Perl is mighty powerful from the shell command line, simply by invoking [[Perl one-liners|one-liners]] and [[pipes]].&lt;br /&gt;
&lt;br /&gt;
==Formatting text output==&lt;br /&gt;
This snippet typifies how to format text in perl.&lt;br /&gt;
*'''&amp;gt;''' justifies right&lt;br /&gt;
*'''&amp;lt;''' justifies left&lt;br /&gt;
*'''|''' justifies center&lt;br /&gt;
 format =&lt;br /&gt;
 @&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; @&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; @&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
 $machine, $filesize, $filename&lt;br /&gt;
 .&lt;br /&gt;
&lt;br /&gt;
 foreach $thing (@list){&lt;br /&gt;
     $machine = $$thing[0];&lt;br /&gt;
     $filesize = $$thing[1];&lt;br /&gt;
     $filename = $$thing[2];&lt;br /&gt;
     write;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Sample files==&lt;br /&gt;
=== Example of a script skeleton ===&lt;br /&gt;
&amp;lt;code&amp;gt;[perl,Y]&lt;br /&gt;
 #!/usr/bin/perl -w&lt;br /&gt;
 use strict;&lt;br /&gt;
 &lt;br /&gt;
 ##&lt;br /&gt;
 ## Usage Information&lt;br /&gt;
 ##&lt;br /&gt;
 &lt;br /&gt;
 my $usage = &amp;lt;&amp;lt;EOF;&lt;br /&gt;
  &lt;br /&gt;
 $0 &amp;lt;argument1&amp;gt; &amp;lt;argument2&amp;gt; &lt;br /&gt;
 This script does this and needs &amp;lt;arguments&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 EOF&lt;br /&gt;
  &lt;br /&gt;
 ##&lt;br /&gt;
 ## Parse Arguments&lt;br /&gt;
 ##&lt;br /&gt;
 &lt;br /&gt;
 if ($#ARGV &amp;lt; 1) {&lt;br /&gt;
     print $usage;&lt;br /&gt;
     exit 1;&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 my $arg1 = shfit(@ARGV);&lt;br /&gt;
 my $arg2 = shfit(@ARGV);&lt;br /&gt;
 &lt;br /&gt;
 ##&lt;br /&gt;
 ## Begin&lt;br /&gt;
 ##&lt;br /&gt;
 &lt;br /&gt;
 $stat = system(&amp;quot;ls *&amp;quot;);&lt;br /&gt;
 &amp;amp;DieNice ($stat, &amp;quot;ERROR on ls *&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 ##&lt;br /&gt;
 ## Subroutines&lt;br /&gt;
 ##&lt;br /&gt;
 &lt;br /&gt;
 sub DieNice {&lt;br /&gt;
    &lt;br /&gt;
    my ($stat, $msg) = @_;&lt;br /&gt;
    die &amp;quot;$msg \n&amp;quot; if ($stat !=0);&lt;br /&gt;
    &lt;br /&gt;
 };&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Manipulate [[netcdf]] files===&lt;br /&gt;
&amp;lt;code&amp;gt;[perl,Y]&lt;br /&gt;
 #!/usr/bin/perl -w&lt;br /&gt;
 #&lt;br /&gt;
 #netcdf rivers {&lt;br /&gt;
 #dimensions:&lt;br /&gt;
 #        river = 3 ;&lt;br /&gt;
 #        time = UNLIMITED ; // (366 currently)&lt;br /&gt;
 #variables:&lt;br /&gt;
 #        int river(river) ;&lt;br /&gt;
 #                river:title = &amp;quot;Number of river&amp;quot; ;&lt;br /&gt;
 #                river:long_name = &amp;quot;1:Loire 2:Gironde 3:Adour&amp;quot; ;&lt;br /&gt;
 #        float time(time) ;&lt;br /&gt;
 #                time:units = &amp;quot;seconds since 2004-01-01 00:00:00&amp;quot; ;&lt;br /&gt;
 #                time:title = &amp;quot;Time&amp;quot; ;&lt;br /&gt;
 #        float runoff(time, river) ;&lt;br /&gt;
 #                runoff:long_name = &amp;quot;Runoff of the river&amp;quot; ;&lt;br /&gt;
 #                runoff:units = &amp;quot;m3s-1&amp;quot; ;&lt;br /&gt;
 #        float temperature(time, river) ;&lt;br /&gt;
 #                temperature:long_name = &amp;quot;Temperature&amp;quot; ;&lt;br /&gt;
 #                temperature:units = &amp;quot;.C&amp;quot; ;&lt;br /&gt;
 #        float salinity(time, river) ;&lt;br /&gt;
 #                salinity:long_name = &amp;quot;Salinity&amp;quot; ;&lt;br /&gt;
 #                salinity:units = &amp;quot;PSU&amp;quot; ;&lt;br /&gt;
 #&lt;br /&gt;
 #// global attributes:&lt;br /&gt;
 #                :title = &amp;quot;Runoff data&amp;quot; ;&lt;br /&gt;
 #                :institution = &amp;quot;GIP MERCATOR OCEAN&amp;quot; ;&lt;br /&gt;
 #                :references = &amp;quot;http://www.mercator-ocean.fr&amp;quot; ;&lt;br /&gt;
 #}&lt;br /&gt;
 #---------------------------------&lt;br /&gt;
 &lt;br /&gt;
 use NetCDF;&lt;br /&gt;
 use strict;&lt;br /&gt;
 &lt;br /&gt;
 # Input netcdf filename&lt;br /&gt;
 my $infile = &amp;quot;rivers.nc&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 #Two dimensions: time(366) and rivers(3). Stride one river at a time.&lt;br /&gt;
 my %riv = (&lt;br /&gt;
     Loire =&amp;gt; 0,&lt;br /&gt;
     Gironde =&amp;gt; 1,&lt;br /&gt;
     Adour =&amp;gt; 2,&lt;br /&gt;
 );&lt;br /&gt;
 &lt;br /&gt;
 # Choose between Loire, Gironde or Adour&lt;br /&gt;
 my $key = 'Gironde';&lt;br /&gt;
 print &amp;quot;Doing river $key\n\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 my $len=366;&lt;br /&gt;
 my @start = (0, 0);&lt;br /&gt;
 my @count = ($len, 3);&lt;br /&gt;
 my @slice =();&lt;br /&gt;
 for (my $i=0; $i&amp;lt;$len; $i++) {&lt;br /&gt;
     push (@slice, $i*3 + $riv{$key});&lt;br /&gt;
 }&lt;br /&gt;
 print &amp;quot;@slice\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 # Open netcdf file in read-only mode&lt;br /&gt;
 my $ncid = NetCDF::open($infile, NetCDF::NOWRITE);&lt;br /&gt;
 print &amp;quot;ncid: $ncid\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 # Dimensions&lt;br /&gt;
 my $d_rivid = NetCDF::dimid($ncid, 'river');&lt;br /&gt;
 print &amp;quot;d_rivid: $d_rivid\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 my $d_timeid = NetCDF::dimid($ncid, 'time');&lt;br /&gt;
 print &amp;quot;d_timeid: $d_timeid\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 # Variables&lt;br /&gt;
 my @river = ();&lt;br /&gt;
 my $rivid = readvar($ncid, 'river', (0), (3), \@river);&lt;br /&gt;
 print &amp;quot;@river\n\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 my @time = ();&lt;br /&gt;
 my $timeid = readvar($ncid, 'time', (0), (366), \@time);&lt;br /&gt;
 #print &amp;quot;@time\n\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 my @runoff = ();&lt;br /&gt;
 my $runoffid = readvar($ncid, 'runoff', \@start, \@count, \@runoff);&lt;br /&gt;
 my @runoff_s = @runoff[@slice];&lt;br /&gt;
 print &amp;quot;@runoff_s\n\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 my @temperature = ();&lt;br /&gt;
 my $temperatureid = readvar($ncid, 'temperature', \@start, \@count, \@temperature);&lt;br /&gt;
 my @temperature_s = @temperature[@slice];&lt;br /&gt;
 print &amp;quot;@temperature_s\n\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 my @salinity = ();&lt;br /&gt;
 my $salinityid = readvar($ncid, 'salinity', \@start, \@count, \@salinity);&lt;br /&gt;
 my @salinity_s = @salinity[@slice];&lt;br /&gt;
 print &amp;quot;@salinity_s\n\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 # Creating time in days variables&lt;br /&gt;
 my @timeday = ();&lt;br /&gt;
 for (my $i=0; $i&amp;lt;$len; $i++) {&lt;br /&gt;
     push (@timeday,$time[$i]/86400);&lt;br /&gt;
 }&lt;br /&gt;
 print &amp;quot;@timeday\n\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 # Close netcdf file&lt;br /&gt;
 NetCDF::close($ncid);&lt;br /&gt;
 &lt;br /&gt;
 # Write the TimeSeries dat file&lt;br /&gt;
 writetimeserie (&lt;br /&gt;
 &lt;br /&gt;
     $key, &lt;br /&gt;
     \@timeday, &lt;br /&gt;
     \@runoff_s,  &lt;br /&gt;
     \@temperature_s, &lt;br /&gt;
     \@salinity_s,&lt;br /&gt;
 &lt;br /&gt;
 );&lt;br /&gt;
 &lt;br /&gt;
 sub readvar {&lt;br /&gt;
 # syntax: &lt;br /&gt;
 #       my var = &amp;quot;&amp;quot;;&lt;br /&gt;
 #       my varid = readvar($ncid, $varname, \@start, \@count, \@var);&lt;br /&gt;
 &lt;br /&gt;
     my $ncid = shift;&lt;br /&gt;
     my $varname = shift;&lt;br /&gt;
     my $start = shift;&lt;br /&gt;
     my $count = shift;&lt;br /&gt;
     my $var_ref = shift;&lt;br /&gt;
 &lt;br /&gt;
     my $varid = NetCDF::varid($ncid, $varname);&lt;br /&gt;
     print &amp;quot;${varname}id: $varid\n&amp;quot;;&lt;br /&gt;
     my @tempvar = (0,0);&lt;br /&gt;
     my $status = NetCDF::varget($ncid, $varid, $start, $count, \@tempvar);&lt;br /&gt;
     print &amp;quot;Status: $status\n&amp;quot;;&lt;br /&gt;
     #print &amp;quot;@tempvar\n&amp;quot;;&lt;br /&gt;
     #Copy array&lt;br /&gt;
     @$var_ref = @tempvar;&lt;br /&gt;
 &lt;br /&gt;
     return $varid;&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 sub writetimeserie {&lt;br /&gt;
 # Syntax:&lt;br /&gt;
 #   writetimeserie($rivername, \@timedays, \@runoff,  \@temperature, \@salinity);&lt;br /&gt;
 &lt;br /&gt;
     my $rivername = shift;&lt;br /&gt;
     my $timev = shift;&lt;br /&gt;
     my $runv = shift;&lt;br /&gt;
     my $tempv = shift;&lt;br /&gt;
     my $saltv = shift;&lt;br /&gt;
 &lt;br /&gt;
     print &amp;quot;$#$timev\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
     #Open file to write&lt;br /&gt;
     $rivername.=&amp;quot;.srw&amp;quot;;&lt;br /&gt;
     open(FILE, &amp;quot;&amp;gt;$rivername&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
     print FILE &amp;quot;TIME_UNITS  :   DAYS\n&amp;quot;;    &lt;br /&gt;
     print FILE &amp;quot;SERIE_INITIAL_DATA  :   2004    1   1   0   0   0\n\n&amp;quot;;&lt;br /&gt;
     &lt;br /&gt;
     my $time = 'Tempo';&lt;br /&gt;
     my $flow = ' Flow';&lt;br /&gt;
     my $temp = '    T';&lt;br /&gt;
     my $salt = '    S';    &lt;br /&gt;
     print FILE &amp;quot;$time $flow $temp $salt\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
     $time = ' dias';&lt;br /&gt;
     $flow = ' m3/s';&lt;br /&gt;
     $temp = '    C';&lt;br /&gt;
     $salt = '  psu';&lt;br /&gt;
     print FILE &amp;quot;$time $flow $temp $salt\n&amp;quot;;&lt;br /&gt;
     &lt;br /&gt;
     print FILE &amp;quot;\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
     $time = '    1';&lt;br /&gt;
     $flow = '    2';&lt;br /&gt;
     $temp = '    3';&lt;br /&gt;
     $salt = '    4';&lt;br /&gt;
     print FILE &amp;quot;$time $flow $temp $salt\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
     print FILE &amp;quot;\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
     $time = 'Tempo';&lt;br /&gt;
     $flow = ' Flow';&lt;br /&gt;
     $temp = '    T';&lt;br /&gt;
     $salt = '    S';&lt;br /&gt;
     print FILE &amp;quot;$time $flow $temp $salt\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
     print FILE &amp;quot;&amp;lt;BeginTimeSerie&amp;gt;\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
     $time = '99';&lt;br /&gt;
     $flow = 99;&lt;br /&gt;
     $temp = 99;&lt;br /&gt;
     $salt = 99;&lt;br /&gt;
 &lt;br /&gt;
 format FILE =&lt;br /&gt;
 @&amp;lt;&amp;lt;&amp;lt;&amp;lt; @###.##### @###.# @###.#&lt;br /&gt;
 $time, $flow, $temp, $salt&lt;br /&gt;
 .&lt;br /&gt;
 &lt;br /&gt;
     for (my $i=0; $i&amp;lt;$#$timev+1; $i++){ &lt;br /&gt;
 &lt;br /&gt;
         $time = $$timev[$i];&lt;br /&gt;
         $flow = $$runv[$i];&lt;br /&gt;
         $temp = $$tempv[$i];&lt;br /&gt;
         $salt = $$saltv[$i];&lt;br /&gt;
         write FILE;&lt;br /&gt;
 &lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     print FILE &amp;quot;&amp;lt;EndTimeSerie&amp;gt;\n&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
     # Close file&lt;br /&gt;
     close(FILE);&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Substitute pattern in file===&lt;br /&gt;
 #!/usr/local/bin/perl&lt;br /&gt;
 #This program substitutes the pattern &amp;quot;dd-mm-yyyy hh:mm:ss&amp;quot; from &lt;br /&gt;
 #argument file with &amp;quot;dd, mm, yyyy, hh, mm, ss&amp;quot;.&lt;br /&gt;
 #The new text is then written in an output file.&lt;br /&gt;
 &lt;br /&gt;
 open FILE, &amp;quot;&amp;lt; @ARGV[0]&amp;quot;;&lt;br /&gt;
 @text=&amp;lt;FILE&amp;gt;;&lt;br /&gt;
 close FILE;&lt;br /&gt;
 &lt;br /&gt;
 foreach $line (@text)&lt;br /&gt;
 {&lt;br /&gt;
       $line =~ s/(\S{1,2})-(\S{1,2})-(\S{4}) (\S{2}):(\S{2}):(\S{2})/$1, $2, $3, $4, $5, $6/g;&lt;br /&gt;
       push @newdata, $line;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 open FILE, &amp;quot;&amp;gt; new_$ARGV[0]&amp;quot;;&lt;br /&gt;
 print FILE @newdata;&lt;br /&gt;
 close FILE;&lt;br /&gt;
&lt;br /&gt;
===Send an e-mail===&lt;br /&gt;
Here's a script that allows one to send e-mails.&lt;br /&gt;
&amp;lt;code&amp;gt;[perl,Y]&lt;br /&gt;
 use Net::SMTP;&lt;br /&gt;
 &lt;br /&gt;
 $HOST = 'mail.ist.utl.pt';&lt;br /&gt;
 $FROM = 'my_address';&lt;br /&gt;
 $TO = 'his_address';&lt;br /&gt;
 $SUBJECT = 'SMTP perl test';&lt;br /&gt;
 @MESSAGE = ( 	&lt;br /&gt;
                &amp;quot;JAPH\n&amp;quot;,&lt;br /&gt;
 		&amp;quot;Maretec team\n&amp;quot;,&lt;br /&gt;
 	    ); &lt;br /&gt;
 $smtp = Net::SMTP -&amp;gt; new(	Host =&amp;gt; $HOST,&lt;br /&gt;
 				Hello =&amp;gt; $FROM,&lt;br /&gt;
 				Timeout =&amp;gt; 60,&lt;br /&gt;
 				Debug =&amp;gt; 1&lt;br /&gt;
 			);&lt;br /&gt;
 $smtp -&amp;gt; mail($FROM);&lt;br /&gt;
 $smtp -&amp;gt; to($TO);&lt;br /&gt;
 @mail_content = (	&amp;quot;Subject: &amp;quot;.$SUBJECT.&amp;quot;\n&amp;quot;,&lt;br /&gt;
 			&amp;quot;From: $FROM\n&amp;quot;,&lt;br /&gt;
 			&amp;quot;To: $TO\n&amp;quot;,&lt;br /&gt;
 			&amp;quot;\n&amp;quot;&lt;br /&gt;
 		);&lt;br /&gt;
 push(@mail_content,@MESSAGE);&lt;br /&gt;
 $smtp -&amp;gt; data(@mail_content);&lt;br /&gt;
 $smtp -&amp;gt; quit();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===FTP access===&lt;br /&gt;
Here's a script to download from a remote ftp server&lt;br /&gt;
&amp;lt;code&amp;gt;[perl,Y]&lt;br /&gt;
 use Net::FTP;&lt;br /&gt;
 &lt;br /&gt;
 $SERVER = 'your.server';&lt;br /&gt;
 $USER = 'you';&lt;br /&gt;
 $PASSW = 'yourpass';&lt;br /&gt;
 $FTP_DIR = 'yourdir';&lt;br /&gt;
 &lt;br /&gt;
 # Login and cd ( select binary mode ).&lt;br /&gt;
 $ftp = Net::FTP-&amp;gt;new(&amp;quot;$SERVER&amp;quot;) || die &amp;quot;Can't communicate with $SERVER!&amp;quot;;&lt;br /&gt;
 $ftp-&amp;gt;login($USER, $PASSW) || die &amp;quot;Can't login $USER,$PASSW!&amp;quot;;&lt;br /&gt;
 $ftp-&amp;gt;binary || die &amp;quot;Can't change mode!&amp;quot;;&lt;br /&gt;
 $ftp-&amp;gt;cwd($FTP_DIR) || die &amp;quot;can't open $FTP_DIR&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 # Get the files list of the ftp.&lt;br /&gt;
 my @files = $ftp-&amp;gt;ls();&lt;br /&gt;
 &lt;br /&gt;
 # Download the files list.&lt;br /&gt;
 foreach $file (@files){&lt;br /&gt;
 	$ftp-&amp;gt;get($file) || die &amp;quot;Can't download $file: &amp;quot;.$ftp-&amp;gt;message.&amp;quot;\n&amp;quot;;&lt;br /&gt;
 	print &amp;quot;Downloaded $file\n&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
 $ftp-&amp;gt;quit();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===rename files===&lt;br /&gt;
Here's a sample file that renames all the files containing ''.f90'' to ''.F90''&lt;br /&gt;
&amp;lt;code&amp;gt;[perl,Y]&lt;br /&gt;
 #!/usr/local/bin/perl&lt;br /&gt;
 #&lt;br /&gt;
 # Program to substitute $ren to $to for all files in the directory&lt;br /&gt;
 #&lt;br /&gt;
 &lt;br /&gt;
 use strict;&lt;br /&gt;
 &lt;br /&gt;
 $ren = &amp;quot;.f90&amp;quot;;&lt;br /&gt;
 $to = &amp;quot;.F90&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 opendir(DIR,&amp;quot;.&amp;quot;);&lt;br /&gt;
 @text = readdir(DIR);&lt;br /&gt;
 foreach $line (@text)&lt;br /&gt;
 {&lt;br /&gt;
 	if ($line =~ /$ren/)&lt;br /&gt;
 	{&lt;br /&gt;
 		@words = split(/ /, $line);&lt;br /&gt;
 		foreach $word (@words)&lt;br /&gt;
 		{&lt;br /&gt;
 			if ($word =~ /$ren/)&lt;br /&gt;
 			{				&lt;br /&gt;
 				$word =~ s/\n//;&lt;br /&gt;
 				push (@files, $word);&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 closedir(DIR);&lt;br /&gt;
 &lt;br /&gt;
 foreach $file (@files)&lt;br /&gt;
 {&lt;br /&gt;
 	$file2 = $file;&lt;br /&gt;
 	$file2 =~  s/$ren/$to/;&lt;br /&gt;
 	rename($file, $file2) || die &amp;quot;Can't rename &amp;quot;.$file;&lt;br /&gt;
 	print &amp;quot;Changed &amp;quot;.$file.&amp;quot; to &amp;quot;.$file2.&amp;quot;\n&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ConvertToHDF5===&lt;br /&gt;
Here's another sample file that I use to automatically [[ConvertToHDF5]] all the compressed [[netcdf]] files in a given repository:&lt;br /&gt;
&amp;lt;code&amp;gt;[perl,Y]&lt;br /&gt;
 #!/usr/local/bin/perl&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 &lt;br /&gt;
 use strict;&lt;br /&gt;
  &lt;br /&gt;
 $DATE = '20060628';&lt;br /&gt;
 $IST = 'ist_meteog-mercatorPsy2v2r1v_R';&lt;br /&gt;
 $FOLDER = $IST . $DATE;&lt;br /&gt;
 $GZIP = gzip;&lt;br /&gt;
 $NC = &amp;quot;.nc&amp;quot;;&lt;br /&gt;
 $CONVERT = &amp;quot;ConvertToHDF5&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 # 1 Uncompress them ###############&lt;br /&gt;
 &lt;br /&gt;
 chdir($FOLDER) or die &amp;quot;Can't chdir to &amp;quot;.$DIR;&lt;br /&gt;
 print 'Uncrunching ...\n';&lt;br /&gt;
 @args = ($GZIP, &amp;quot;-d&amp;quot;, &amp;quot;\*\.gz&amp;quot;);&lt;br /&gt;
 system(@args) == 0 or print &amp;quot;system @args failed: $?\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 opendir(DIR, &amp;quot;.&amp;quot;);&lt;br /&gt;
 @text = readdir(DIR);&lt;br /&gt;
 foreach $line (@text)&lt;br /&gt;
 {&lt;br /&gt;
 	if ($line =~ /$NC/)&lt;br /&gt;
 	{&lt;br /&gt;
 		@words = split(/ /, $line);&lt;br /&gt;
 		foreach $word (@words)&lt;br /&gt;
 		{&lt;br /&gt;
  			if ($word =~ /$ren/)&lt;br /&gt;
 			{				&lt;br /&gt;
 				$word =~ s/\n//;&lt;br /&gt;
 				push (@files, $word);&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 print &amp;quot;Fetched &amp;quot;.@files.&amp;quot; files.\n&amp;quot;;&lt;br /&gt;
 chdir(&amp;quot;..&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 # 2 Generate ConvertToHDF5Action ###############&lt;br /&gt;
 &lt;br /&gt;
 $action = 'ConvertToHDF5Action.dat';&lt;br /&gt;
 open(FILE, &amp;quot;&amp;gt;$action&amp;quot;);&lt;br /&gt;
 my $TXT = &amp;lt;&amp;lt; EndOfTXT;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;begin_file&amp;gt;&lt;br /&gt;
 ACTION                    : CONVERT MERCATOR FORMAT&lt;br /&gt;
 OUTPUTFILENAME            : $FOLDER/MercatorR$DATE.hdf5&lt;br /&gt;
 OUTPUT_GRID_FILENAME      : $FOLDER/MercatorGridR$DATE.dat&lt;br /&gt;
 INPUT_GRID_FILENAME       : GridFiles/ist_meteog-gridT.nc&lt;br /&gt;
 INPUT_GRID_FILENAME_U     : GridFiles/ist_meteog-gridU.nc&lt;br /&gt;
 INPUT_GRID_FILENAME_V     : GridFiles/ist_meteog-gridV.nc&lt;br /&gt;
 OUTPUT_GEOMETRY_FILENAME  : $FOLDER/MercatorGeometryR$DATE.dat&lt;br /&gt;
 &amp;lt;&amp;lt;begin_input_files&amp;gt;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 EndOfTXT;&lt;br /&gt;
 &lt;br /&gt;
 print FILE $TXT;&lt;br /&gt;
 &lt;br /&gt;
 foreach $file (@files)&lt;br /&gt;
 {&lt;br /&gt;
 	print FILE $FOLDER.&amp;quot;\/&amp;quot;.$file.&amp;quot;\n&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
 print FILE &amp;quot;&amp;lt;&amp;lt;end_input_files&amp;gt;&amp;gt;\n&amp;quot;;&lt;br /&gt;
 print FILE &amp;quot;&amp;lt;end_file&amp;gt;\n&amp;quot;;&lt;br /&gt;
 close(FILE);&lt;br /&gt;
 &lt;br /&gt;
 # 3 Run ConvertToHDF5 ###############&lt;br /&gt;
 &lt;br /&gt;
 print &amp;quot;Converting to HDF5...\n&amp;quot;;&lt;br /&gt;
 @args = ($CONVERT);&lt;br /&gt;
 system(@args) == 0 or die &amp;quot;system @args failed: $?&amp;quot;;&lt;br /&gt;
 print &amp;quot;Done &amp;quot;.@files.&amp;quot; files.\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 # 4 Compress them back again ####################&lt;br /&gt;
  &lt;br /&gt;
 chdir($FOLDER) or die &amp;quot;Can't chdir to &amp;quot;.$DIR;&lt;br /&gt;
 print &amp;quot;Crunching back up...\n&amp;quot;;&lt;br /&gt;
 @args = ($GZIP, &amp;quot;\*\.nc&amp;quot;);&lt;br /&gt;
 system(@args) == 0 or die &amp;quot;system @args failed: $?&amp;quot;;&lt;br /&gt;
 print &amp;quot;Finished &amp;quot;.@files.&amp;quot; files.\n&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
#The wikipedia [http://en.wikipedia.org/wiki/Perl_programming_language article].&lt;br /&gt;
#A popular [http://www.comp.leeds.ac.uk/Perl/start.html tutorial].&lt;br /&gt;
[[Category:Technology]]&lt;br /&gt;
[[Category:Perl]]&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Script]]&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Windows]]&lt;/div&gt;</summary>
		<author><name>89.180.146.64</name></author>	</entry>

	</feed>
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
  ga('create', 'UA-56589921-5', 'auto');
  ga('send', 'pageview');
</script>