<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>迷途知返 &#187; Linux</title>
	<atom:link href="http://pwwang.com/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://pwwang.com</link>
	<description>专注技术,用心生活!</description>
	<lastBuildDate>Wed, 08 Feb 2012 09:37:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>linux下列举特定时间段文件的命令</title>
		<link>http://pwwang.com/2010/06/24/linux_ls_time_limit/</link>
		<comments>http://pwwang.com/2010/06/24/linux_ls_time_limit/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 09:24:07 +0000</pubDate>
		<dc:creator>pwwang</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://pwwang.com/?p=951</guid>
		<description><![CDATA[&#160;我们知道在linux下，ls，或者ll（ls -l）可以列出目录下的文件，加上grep可以对文件名进行过滤

可以如果我们要列出特定时间段创建的文件呢？

让awk大发神威吧。

<span class="readmore"><a href="http://pwwang.com/2010/06/24/linux_ls_time_limit/" title="linux下列举特定时间段文件的命令">Read More: 171 Words Totally</a></span>]]></description>
			<content:encoded><![CDATA[<p>&nbsp;我们知道在linux下，ls，或者ll（ls -l）可以列出目录下的文件，加上grep可以对文件名进行过滤</p>
<p>可以如果我们要列出特定时间段创建的文件呢？</p>
<p>让awk大发神威吧。</p>
<p>&nbsp;</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #660033;">-l</span> <span style="color: #660033;">--time-style</span>=+<span style="color: #000000; font-weight: bold;">%</span>Y<span style="color: #000000; font-weight: bold;">%</span>m<span style="color: #000000; font-weight: bold;">%</span>d<span style="color: #000000; font-weight: bold;">%</span>H<span style="color: #000000; font-weight: bold;">%</span>M <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'$6 &gt; &quot;201006241251&quot;'</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'$6 &lt; &quot;201006241255&quot;'</span></pre></div></div>

<p>&nbsp;</p>
<p>不得不说， 需要灵活的头脑啊！</p>
]]></content:encoded>
			<wfw:commentRss>http://pwwang.com/2010/06/24/linux_ls_time_limit/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>自己常用的linux的自定义命令</title>
		<link>http://pwwang.com/2009/01/02/%e8%87%aa%e5%b7%b1%e5%b8%b8%e7%94%a8%e7%9a%84linux%e7%9a%84%e8%87%aa%e5%ae%9a%e4%b9%89%e5%91%bd%e4%bb%a4/</link>
		<comments>http://pwwang.com/2009/01/02/%e8%87%aa%e5%b7%b1%e5%b8%b8%e7%94%a8%e7%9a%84linux%e7%9a%84%e8%87%aa%e5%ae%9a%e4%b9%89%e5%91%bd%e4%bb%a4/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 03:20:12 +0000</pubDate>
		<dc:creator>pwwang</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://pwwang.com/?p=381</guid>
		<description><![CDATA[&#160;

有时候有些命令不好记， 我会写一些bash或者perl，保存这些命令， 然后取个好记的名字直接使用。 一般我喜欢在自己的目录下建立一个.bin目录(不是bin，前面有个点，这样这个目录就是隐藏的，防止被误删)， 然后把这个目录加到$path里， 修改用户目录下的.bashrc和.bash_profile都可以实现。具体做法是这样的（以.bash_profile为例）：

&#160;

<span class="readmore"><a href="http://pwwang.com/2009/01/02/%e8%87%aa%e5%b7%b1%e5%b8%b8%e7%94%a8%e7%9a%84linux%e7%9a%84%e8%87%aa%e5%ae%9a%e4%b9%89%e5%91%bd%e4%bb%a4/" title="自己常用的linux的自定义命令">Read More: 692 Words Totally</a></span>]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<div>有时候有些命令不好记， 我会写一些bash或者perl，保存这些命令， 然后取个好记的名字直接使用。 一般我喜欢在自己的目录下建立一个.bin目录(不是bin，前面有个点，这样这个目录就是隐藏的，防止被误删)， 然后把这个目录加到$path里， 修改用户目录下的.bashrc和.bash_profile都可以实现。具体做法是这样的（以.bash_profile为例）：</div>
<div>&nbsp;</div>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #7a0874; font-weight: bold;">cd</span>
$ <span style="color: #c20cb9; font-weight: bold;">mkdir</span> .bin
$ <span style="color: #c20cb9; font-weight: bold;">vi</span> .bash_profile</pre></div></div>

<div>其中有这么一行： <span style="color: rgb(0, 0, 255);">PATH=$PATH:$HOME/bin</span></div>
<div>在这行下面加一行：<span style="color: rgb(128, 0, 0);">PATH=$PATH:~/.bin</span></div>
<div>其中~/表示用户目录。</div>
<div>然后保存退出（:wq!或者&lt;SHIFT&gt;+&lt;Z&gt;+&lt;Z&gt;）</div>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #7a0874; font-weight: bold;">source</span> .bash_profile</pre></div></div>

<div>&nbsp;</div>
<div>然后重新登录用户就生效了。</div>
<div>&nbsp;</div>
<div>下面说介绍一下常用的自定义命令：</div>
<div><span>1.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><strong>findit &lt;str&gt;</strong> 查找当前目录下文件名中包含str或者文件内容中包含str的文件</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
<span style="color: #c20cb9; font-weight: bold;">find</span> .<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #660033;">-name</span> <span style="color: #ff0000;">&quot;*$1*&quot;</span>
<span style="color: #c20cb9; font-weight: bold;">find</span> .<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #660033;">-type</span> f <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">xargs</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">&quot;$1&quot;</span></pre></div></div>

</div>
<div><span>2.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><strong>filecount [&lt;file&gt;]</strong> 查看当前目录下文件数，或者file（包含通配符）模式的文件名的文件数</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
<span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #660033;">-l</span> <span style="color: #007800;">$1</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">&quot;^-&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">wc</span> <span style="color: #660033;">-l</span></pre></div></div>

</div>
<div><span>3.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><strong>dircount [&lt;dir&gt;]</strong> 同上，查看目录的数目</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
<span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #660033;">-l</span> <span style="color: #007800;">$1</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">&quot;^d&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">wc</span> <span style="color: #660033;">-l</span></pre></div></div>

<div><span>4.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><strong>everysize</strong> 查看该目录下每个目录及文件所占的空间大小</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
<span style="color: #c20cb9; font-weight: bold;">du</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #660033;">-sh</span></pre></div></div>

</div>
<div><span>5.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><strong>exInOne&nbsp;&nbsp;&nbsp;</strong> 见<a href="http://pwwang.com/?p=374" rel="bookmark" title="Permanent Link: linux下通用解压缩程序Perl版"><font face="Times New Roman" color="#3465a4" size="2">linux下通用解压缩程序Perl版</font></a></div>
<p><span>6.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><strong>smartrename&nbsp;</strong>&nbsp;&nbsp; 见<a href="http://pwwang.com/?p=22" rel="bookmark" title="Permanent Link: Linux下的批量改名工具Perl版"><font face="Times New Roman" color="#3465a4" size="2">Linux下的批量改名工具Perl版</font></a></p>
</div>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://pwwang.com/2009/01/02/%e8%87%aa%e5%b7%b1%e5%b8%b8%e7%94%a8%e7%9a%84linux%e7%9a%84%e8%87%aa%e5%ae%9a%e4%b9%89%e5%91%bd%e4%bb%a4/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>linux下通用解压缩程序Perl版</title>
		<link>http://pwwang.com/2009/01/01/linux%e4%b8%8b%e9%80%9a%e7%94%a8%e8%a7%a3%e5%8e%8b%e7%bc%a9%e7%a8%8b%e5%ba%8fperl%e7%89%88/</link>
		<comments>http://pwwang.com/2009/01/01/linux%e4%b8%8b%e9%80%9a%e7%94%a8%e8%a7%a3%e5%8e%8b%e7%bc%a9%e7%a8%8b%e5%ba%8fperl%e7%89%88/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 03:31:25 +0000</pubDate>
		<dc:creator>pwwang</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://pwwang.com/?p=374</guid>
		<description><![CDATA[&#160;

无意中看到有人贴linux中常用的解压缩命令的用法，通常最后都有一个程序叫做sEx， 叫super extractor， 我去SF上下下来看了一下，也是perl写的， 不过真的只是一个通用的解压的程序， 压缩并没有实现， 于是自己动手把通用的解压缩都实现了，供自己用，也供大家方便。

不过说实话， 我用的压缩格式并不多， 并不需要用太多的命令，一般用tar（只归档，不压缩），tar.gz，rar（windows用得多）。

<span class="readmore"><a href="http://pwwang.com/2009/01/01/linux%e4%b8%8b%e9%80%9a%e7%94%a8%e8%a7%a3%e5%8e%8b%e7%bc%a9%e7%a8%8b%e5%ba%8fperl%e7%89%88/" title="linux下通用解压缩程序Perl版">Read More: 2906 Words Totally</a></span>]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>无意中看到有人贴linux中常用的解压缩命令的用法，通常最后都有一个程序叫做sEx， 叫super extractor， 我去SF上下下来看了一下，也是perl写的， 不过真的只是一个通用的解压的程序， 压缩并没有实现， 于是自己动手把通用的解压缩都实现了，供自己用，也供大家方便。</p>
<p>不过说实话， 我用的压缩格式并不多， 并不需要用太多的命令，一般用tar（只归档，不压缩），tar.gz，rar（windows用得多）。</p>
<p>这个程序支持格式：tar，tar.gz，gz，tar.bz2，bz2，tar.bz，bz，tar.Z，Z，zip，rar，lha，rpm</p>
<p>可以压缩，解压，查看压缩包的内容</p>
<p>基本用法：</p>
<blockquote>
<p>压缩：exInOne a 归档文件 文件1 &lt;文件2 文件3 &#8230;&gt;</p>
<p>解压：exInOne x 归档文件</p>
<p>查看：exInone l 归档文件</p>
</blockquote>
<p><span id="more-374"></span></p>

<div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/usr/bin/perl -w</span>
&nbsp;
<span style="color: #666666; font-style: italic;">######################################</span>
<span style="color: #666666; font-style: italic;"># Several Extractors in One : exInOne</span>
<span style="color: #666666; font-style: italic;"># Author: pwwang</span>
<span style="color: #666666; font-style: italic;"># Site: http://pwwang.com</span>
<span style="color: #666666; font-style: italic;"># You can distribute it, modify it,</span>
<span style="color: #666666; font-style: italic;"># but keep this information</span>
<span style="color: #666666; font-style: italic;">######################################</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">use</span> warnings<span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> strict<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">%cmds</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span> <span style="color: #666666; font-style: italic;"># 0-&gt;program 1-&gt;command for decompress 2-&gt;command for compress 3-&gt;list</span>
    <span style="color: #ff0000;">'tar.gz'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#91;</span><span style="color: #ff0000;">'tar'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'tar -zxvf arg1'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'tar -zcvf arg1 arg2'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'tar -ztvf arg1'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
    <span style="color: #ff0000;">'tar'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#91;</span><span style="color: #ff0000;">'tar'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'tar -xvf arg1'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'tar -cvf arg1 arg2'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'tar -tvf arg1'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
    <span style="color: #ff0000;">'tgz'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#91;</span><span style="color: #ff0000;">'tar'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'tar -zxvf arg1'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'tar -zcvf arg1 arg2'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'tar -ztvf arg1'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
    <span style="color: #ff0000;">'gz'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#91;</span><span style="color: #ff0000;">'gzip'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'gzip -d arg1'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'gzip -cr arg2 &gt; arg1'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'gzip -l arg1'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
    <span style="color: #ff0000;">'tar.bz2'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#91;</span><span style="color: #ff0000;">'tar'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'tar -jxvf arg1'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'tar -jcvf arg1 arg2'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'tar -jtvf arg1'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
    <span style="color: #ff0000;">'bz2'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#91;</span><span style="color: #ff0000;">'bzip2,gtar'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'bzip2 -d arg1'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'bzip2 -cz arg2 &gt; arg1'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'tar -jtvf arg1'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
    <span style="color: #ff0000;">'tar.bz'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#91;</span><span style="color: #ff0000;">'tar'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'tar -jxvf arg1'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'tar -jcvf arg1 arg2'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'tar -jtvf arg1'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
    <span style="color: #ff0000;">'bz'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#91;</span><span style="color: #ff0000;">'bzip2,tar'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'bzip2 -d arg1'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'bzip2 -z arg1'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'tar -jtvf arg1'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
    <span style="color: #ff0000;">'tar.Z'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#91;</span><span style="color: #ff0000;">'tar'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'tar -Zxvf arg1'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'tar -Zcvf arg1 arg2'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'tar -Ztvf arg1'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
    <span style="color: #ff0000;">'Z'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#91;</span><span style="color: #ff0000;">'compress'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'compress -d arg1'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'compress -c arg2 &gt; arg1 '</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'tar -Ztvf arg1'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
    <span style="color: #ff0000;">'zip'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#91;</span><span style="color: #ff0000;">'zip,unzip'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'unzip arg1'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'zip arg1 arg2'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'unzip -Zl arg1'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
    <span style="color: #ff0000;">'rar'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#91;</span><span style="color: #ff0000;">'rar'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'rar x arg1'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'rar a arg1 arg2'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'echo Unsupport listing rar content'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
    <span style="color: #ff0000;">'lha'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#91;</span><span style="color: #ff0000;">'lha'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'lha -e arg1'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'lha -a arg1 arg2'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'lha -l arg1'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
    <span style="color: #ff0000;">'rpm'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#91;</span><span style="color: #ff0000;">'rpm2cpio'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'rpm2cpio arg1 | cpio -div'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'echo Unsupport creating rpm archive'</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">'rpm2cpio arg1 | cpio -tiv'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> get_ext <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$)</span> <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">#get extension of a file name</span>
    <span style="color: #b1b100;">my</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$f</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">@_</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$ext</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$f</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">/.+\.(.+)$/</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #0000ff;">$ext</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$1</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span> 
    <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span> <span style="color: #0000ff;">$ext</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$ext</span> <span style="color: #b1b100;">eq</span> <span style="color: #ff0000;">'gz'</span> <span style="color: #339933;">||</span> <span style="color: #0000ff;">$ext</span> <span style="color: #b1b100;">eq</span> <span style="color: #ff0000;">'bz2'</span> <span style="color: #339933;">||</span> <span style="color: #0000ff;">$ext</span> <span style="color: #b1b100;">eq</span> <span style="color: #ff0000;">'bz'</span> <span style="color: #339933;">||</span> <span style="color: #0000ff;">$ext</span> <span style="color: #b1b100;">eq</span> <span style="color: #ff0000;">'Z'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$f</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">/.+\.(tar\.$ext)/</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #0000ff;">$ext</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$1</span><span style="color: #339933;">;</span>    <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$ext</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> check4exes <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;"># Check for missing tools</span>
    <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@_</span><span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$bin</span> <span style="color: #339933;">=</span> <span style="color: #000066;">shift</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">unless</span><span style="color: #009900;">&#40;</span> <span style="color: #000066;">join</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'|'</span><span style="color: #339933;">,</span><span style="color: #ff0000;">`which $bin`</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=~/</span>\<span style="color: #339933;">/</span><span style="color: #0000ff;">$bin</span><span style="color: #009900;">&#40;</span>\<span style="color: #339933;">||</span><span style="color: #0000ff;">$)</span><span style="color: #339933;">/</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;exInOne needs $bin in your <span style="color: #000099; font-weight: bold;">\$</span>PATH to handle this format!<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
            <span style="color: #000066;">exit</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> ifTypeSupport <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$)</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">my</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$ex</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">@_</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000066;">exists</span> <span style="color: #0000ff;">$cmds</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$ex</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Unsupport file type: $ex <span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">exit</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> checkFile <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$)</span> <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">#check file and return available extension</span>
    <span style="color: #b1b100;">my</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$fn</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">@_</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">my</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$ex</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> get_ext<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$fn</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;File: $fn<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
    ifTypeSupport<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$ex</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">@b</span> <span style="color: #339933;">=</span> <span style="color: #000066;">split</span> <span style="color: #009966; font-style: italic;">/,/</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$cmds</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$ex</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    check4exes<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@b</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$ex</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Main program</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$command</span> <span style="color: #339933;">=</span> <span style="color: #000066;">shift</span> <span style="color: #339933;">@</span><span style="color: #000000; font-weight: bold;">ARGV</span><span style="color: #339933;">;</span> <span style="color: #0000ff;">$command</span><span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #b1b100;">unless</span><span style="color: #009900;">&#40;</span> <span style="color: #000066;">defined</span> <span style="color: #0000ff;">$command</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$opts</span><span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">$command</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">/^-/</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$opts</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$command</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">/^-(.*)/</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$command</span> <span style="color: #339933;">=</span> <span style="color: #000066;">shift</span> <span style="color: #339933;">@</span><span style="color: #000000; font-weight: bold;">ARGV</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$archive</span> <span style="color: #339933;">=</span> <span style="color: #000066;">shift</span> <span style="color: #339933;">@</span><span style="color: #000000; font-weight: bold;">ARGV</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">@files</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><span style="color: #000000; font-weight: bold;">ARGV</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">unless</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$command</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">/^(l|x|a)$/</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Usage: exInOne [-options] command archive [files...]<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;commands:<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;    l   List<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;    x   Extract<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;    a   Add files or create new archive<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">exit</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$ext</span> <span style="color: #339933;">=</span> checkFile<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$archive</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$cmd</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span>    <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$command</span> <span style="color: #b1b100;">eq</span> <span style="color: #ff0000;">'l'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$cmd</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$cmds</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$ext</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$cmd</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">s/arg1/$archive/</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">`$cmd`</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">elsif</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$command</span> <span style="color: #b1b100;">eq</span> <span style="color: #ff0000;">'x'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$cmd</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$cmds</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$ext</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$cmd</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">s/arg1/$archive/</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">`$cmd`</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">elsif</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$command</span> <span style="color: #b1b100;">eq</span> <span style="color: #ff0000;">'a'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$cmd</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$cmds</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$ext</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">-&gt;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$cmd</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">s/arg1/$archive/</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$cmd</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">s/arg2/@files/</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">`$cmd`</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://pwwang.com/2009/01/01/linux%e4%b8%8b%e9%80%9a%e7%94%a8%e8%a7%a3%e5%8e%8b%e7%bc%a9%e7%a8%8b%e5%ba%8fperl%e7%89%88/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Linux下的批量改名工具Perl版</title>
		<link>http://pwwang.com/2008/11/27/linux%e4%b8%8b%e7%9a%84%e6%89%b9%e9%87%8f%e6%94%b9%e5%90%8d%e5%b7%a5%e5%85%b7/</link>
		<comments>http://pwwang.com/2008/11/27/linux%e4%b8%8b%e7%9a%84%e6%89%b9%e9%87%8f%e6%94%b9%e5%90%8d%e5%b7%a5%e5%85%b7/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 16:54:13 +0000</pubDate>
		<dc:creator>pwwang</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://pwwang.com/?p=22</guid>
		<description><![CDATA[#!/usr/bin/perl -w 

&#160;

# order templates, do NOT modify this annotation!

<span class="readmore"><a href="http://pwwang.com/2008/11/27/linux%e4%b8%8b%e7%9a%84%e6%89%b9%e9%87%8f%e6%94%b9%e5%90%8d%e5%b7%a5%e5%85%b7/" title="Linux下的批量改名工具Perl版">Read More: 5973 Words Totally</a></span>]]></description>
			<content:encoded><![CDATA[
<div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/usr/bin/perl -w </span>
&nbsp;
<span style="color: #666666; font-style: italic;"># order templates, do NOT modify this annotation!</span>
<span style="color: #666666; font-style: italic;">## #.&lt;SELF&gt;/#--&lt;SELF&gt;/#_&lt;SELF&gt;/pic_#/file_#/&lt;SELF&gt;.#/&lt;SELF&gt;_#// </span>
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> is_num<span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$temp</span> <span style="color: #339933;">=</span> <span style="color: #000066;">shift</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">return</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$temp</span><span style="color: #339933;">=~/^</span>d<span style="color: #339933;">+</span><span style="color: #0000ff;">$/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> is_inArray<span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$ele</span><span style="color: #339933;">,</span><span style="color: #0000ff;">@arr</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">@_</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@arr</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">return</span> <span style="color: #cc66cc;">1</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$ele</span> <span style="color: #b1b100;">eq</span> <span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">return</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> lettersAdd<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">my</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$letters</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$step</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">@_</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$last</span> <span style="color: #339933;">=</span> <span style="color: #000066;">unpack</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;C&quot;</span><span style="color: #339933;">,</span><span style="color: #000066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$letters</span><span style="color: #339933;">,-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">$step</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$last</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">122</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">length</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$letters</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$str</span> <span style="color: #339933;">=</span> lettersAdd<span style="color: #009900;">&#40;</span><span style="color: #000066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$letters</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000066;">length</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$letters</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>  <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #000066;">pack</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;C&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$last</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">26</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$str</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;a&quot;</span><span style="color: #339933;">.</span><span style="color: #000066;">pack</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;C&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$last</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">26</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #0000ff;">$str</span> <span style="color: #339933;">=</span> <span style="color: #000066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$letters</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000066;">length</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$letters</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #000066;">pack</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;C&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$last</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$str</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> print_line<span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$str</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">@_</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | $str&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; &quot;</span> x <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">59</span><span style="color: #339933;">-</span><span style="color: #000066;">length</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$str</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;|n&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> pathOf<span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$f</span><span style="color: #339933;">=</span><span style="color: #000066;">shift</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$f</span><span style="color: #339933;">=~/^</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">.*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/.+</span><span style="color: #0000ff;">$/</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">return</span> <span style="color: #ff0000;">&quot;$1/&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">return</span> <span style="color: #ff0000;">&quot;./&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> clashOf<span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$f</span><span style="color: #339933;">=</span><span style="color: #000066;">shift</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$p</span><span style="color: #339933;">=</span>pathOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$f</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$f</span><span style="color: #339933;">=~</span><span style="color: #000066;">s</span><span style="color: #339933;">/</span><span style="color: #0000ff;">$p</span><span style="color: #339933;">//;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$f</span><span style="color: #339933;">=~/^</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">.*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">..*</span><span style="color: #0000ff;">$/</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">return</span> <span style="color: #0000ff;">$1</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$f</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> extOf<span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$f</span><span style="color: #339933;">=</span><span style="color: #000066;">shift</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$p</span><span style="color: #339933;">=</span>pathOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$f</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$f</span><span style="color: #339933;">=~</span><span style="color: #000066;">s</span><span style="color: #339933;">/</span><span style="color: #0000ff;">$p</span><span style="color: #339933;">//;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$f</span><span style="color: #339933;">=~/^.*.</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">.*</span><span style="color: #009900;">&#41;</span><span style="color: #0000ff;">$/</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">return</span> <span style="color: #0000ff;">$1</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">return</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> main_menu<span style="color: #009900;">&#123;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | MAIN MENU                                                  |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 1. Modify Whole File Name                                  |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 2. Replace                                                 |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 3. Change With Order Name                                  |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 4. Add                                                     |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 5. Delete                                                  |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 6. Extended Functions                                      |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |                                                            |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | U. Goto Previous Menu                                      |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | H. Help                                                    |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | X. Exit                                                    |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; &gt;&gt; Your choice: &quot;</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$_</span><span style="color: #339933;">=</span><span style="color: #009999;">&lt;STDIN&gt;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">chomp</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$_</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> whole<span style="color: #009900;">&#123;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | MODIFY WHOLE FILE NAME                                     |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 1. Capitalize File Name                                    |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 2. Lowercase File Name                                     |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 3. Capitalize First Letter of Each Word of File Name       |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 4. Lowercase First Letter of Each Word of File Name        |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 5. Change File Name to                                     |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 6. Caplitalize Extension                                   |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 7. Lowercase Extension                                     |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 8. Change Extension to                                     |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |                                                            |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | NOTE: File Name Does NOT Include Extension If Any          |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |                                                            |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | U. Goto Previous Menu                                      |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | M. Goto Main Menu                                          |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | H. Help                                                    |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | X. Exit                                                    |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; &gt;&gt; Your choice: &quot;</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$_</span><span style="color: #339933;">=</span><span style="color: #009999;">&lt;STDIN&gt;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">chomp</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$_</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> template<span style="color: #009900;">&#123;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | CHOOSE A ORDER TEMPLATE                                    |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 1. Input A Template And Add It To The List                 |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 2. Input A Template(Do Not Add To The List)                |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #0000ff;">$i</span><span style="color: #339933;">&lt;</span><span style="color: #0000ff;">@ts</span><span style="color: #339933;">;</span> <span style="color: #0000ff;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        print_line<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$i</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #ff0000;">&quot;. &quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$ts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #ff0000;">&quot; &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |                                                            |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | U. Goto Previous Menu                                      |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | M. Goto Main Menu                                          |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | H. Help                                                    |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | X. Exit                                                    |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; &gt;&gt; Your choice: &quot;</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$_</span><span style="color: #339933;">=</span><span style="color: #009999;">&lt;STDIN&gt;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">chomp</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$_</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> get_pattern<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; &gt;&gt; Input a pattern: &quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">chomp</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$the_p</span> <span style="color: #339933;">=</span> <span style="color: #009999;">&lt;STDIN&gt;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$the_p</span> <span style="color: #339933;">=~</span> <span style="color: #339933;">/^</span><span style="color: #009966; font-style: italic;">/(.+)/</span><span style="color: #0000ff;">$/</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$the_p</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$1</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">last</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; !! The pattern is like [/txt/] .n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$the_p</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> get_replace<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; &gt;&gt; Input a replace string: &quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">chomp</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$the_p</span> <span style="color: #339933;">=</span> <span style="color: #009999;">&lt;STDIN&gt;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$the_p</span> <span style="color: #339933;">=~</span> <span style="color: #339933;">/^</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span><span style="color: #009966; font-style: italic;">/]+$/</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">last</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; !! [/] is not allowed.n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$the_p</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> input<span style="color: #009900;">&#123;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | INPUT FILES                                                |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 1. Input A Path And A Filter                               |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 2. Input Files Directly                                    |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |                                                            |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | H. Help                                                    |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | X. Exit                                                    |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; &gt;&gt; Your choice: &quot;</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$_</span><span style="color: #339933;">=</span><span style="color: #009999;">&lt;STDIN&gt;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">chomp</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$_</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> preview_or_apply<span style="color: #009900;">&#123;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | PREVIEW OR APPLY                                           |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 1. Preview                                                 |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 2. Apply                                                   |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |                                                            |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | H. Help                                                    |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | X. Exit                                                    |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; &gt;&gt; Your choice: &quot;</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$_</span><span style="color: #339933;">=</span><span style="color: #009999;">&lt;STDIN&gt;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">chomp</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$_</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> help<span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$last_menu</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">@_</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | HELP                                                       |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | INPUT FILES:                                               |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 1. Input A Path And A Filter                               |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |    Input a path:                                           |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       1) path must exist                                   |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       2) path can be either relative or absolute           |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       3) enter directly for current directory              |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |    Input a filter:                                         |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       1) between // is a regular expression                |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       2) front ! means except files meet the given pattern |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       3) enter directly for all the files                  |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       /.*.txt/  all .txt files                             |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       !/.*.txt/ all files but .txt                         |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 2. Input Files Directly                                    |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |    1) folder:foo1|foo2|foo3                                |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       for file 'foo1' 'foo2' 'foo3' in the same 'folder'   |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |    2) folder/foo1|folder/foo2|folder/foo3                  |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       for the same                                         |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |                                                            |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | MAIN MENU                                                  |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 1. Modify Whole File Name                                  |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |    1) extension treated as a separate part                 |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |    2) '/' is not allowed in file name and extension        |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 2. Replace                                                 |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |    1) replace pattern should be a regular expression       |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       with '//'                                            |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |    2) '/' is not allowed in replace string                 |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |    e.g.: foo1,foo2,foo3 -&gt; foo2,foo3,foo4                  |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |          pattern: /(d+)/ , replace string: ($1+1).&quot;</span>_<span style="color: #ff0000;">&quot;     |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |          then foo1,foo2,foo3 -&gt; foo2_,foo3_,foo4_          |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |          and then delete '_'(use function delete)          |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 3. Change With Order Name                                  |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |    1) template                                             |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       &lt;SELF&gt; represents file name (exclude extension)      |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       # for digits or characters to replace, it's required |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |    2) the template will add to the list after you restart  |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       this program if you choose this option               |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |    3) regulation of order                                  |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       'a,b,c,d,e'                                          |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       all can be omitted, the default value is '0,1,1,0,0' |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       a: start number or letter of order                   |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       b: number only, step of orde                         |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       c: maximal digit of number ignored if d set to 0     |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       d: 1, fill other digit 'a'(for letter) or '0'(for    |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |          number) if total digits less than maximum while   |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |          0 does NOT                                        |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       e: if letters capitalize them                        |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 4. Add                                                     |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |    Input position and string to add                        |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |    'pos/str'                                               |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |    pos: add position, e.g.: '0' for front ;                |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |         '1' for position between 1st and 2nd letter        |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |         '-1' between last letter and letter before it      |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |    str: string to add, '/' is not allowed                  |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 5. Delete                                                  |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |    1) input a string to delete                             |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       'foo' or 'foo/0' or 'foo/1'                          |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       'foo' is an omitted form of 'foo/0'                  |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       '/0' means delete the first 'foo' in file name       |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       '/1' means delete all 'foo' in file name             |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |    2) input position and length to delete                  |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       'pos/len'                                            |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |       pos is as the same as it in 'Add' menu               |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |                                                            |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | !X !S. Goto Previous Menu                                  |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | S. Save This Help to File 'smartrename.help'               |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | X. Exit                                                    |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; &gt;&gt; Your choice: &quot;</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$_</span><span style="color: #339933;">=</span><span style="color: #009999;">&lt;STDIN&gt;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">chomp</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span> <span style="color: #b1b100;">eq</span> <span style="color: #ff0000;">&quot;X&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">exit</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span> <span style="color: #b1b100;">eq</span> <span style="color: #ff0000;">&quot;S&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span>H<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;&gt;smartrename.help&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; | HELP                                                       |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; | INPUT FILES:                                               |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; | 1. Input A Path And A Filter                               |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |    Input a path:                                           |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       1) path must exist                                   |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       2) path can be either relative or absolute           |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       3) enter directly for current directory              |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |    Input a filter:                                         |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       1) between // is a regular expression                |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       2) front ! means except files meet the given pattern |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       3) enter directly for all the files                  |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       /.*.txt/  all .txt files                             |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       !/.*.txt/ all files but .txt                         |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; | 2. Input Files Directly                                    |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |    1) folder:foo1|foo2|foo3                                |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       for file 'foo1' 'foo2' 'foo3' in the same 'folder'   |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |    2) folder/foo1|folder/foo2|folder/foo3                  |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       for the same                                         |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |                                                            |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; | MAIN MENU                                                  |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; | 1. Modify Whole File Name                                  |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |    1) extension treated as a separate part                 |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |    2) '/' is not allowed in file name and extension        |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; | 2. Replace                                                 |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |    1) replace pattern should be a regular expression       |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       with '//'                                            |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |    2) '/' is not allowed in replace string                 |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |    e.g.: foo1,foo2,foo3 -&gt; foo2,foo3,foo4                  |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |          pattern: /(d+)/ , replace string: ($1+1).&quot;</span>_<span style="color: #ff0000;">&quot;     |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |          then foo1,foo2,foo3 -&gt; foo2_,foo3_,foo4_          |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |          and then delete '_'(use function delete)          |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; | 3. Change With Order Name                                  |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |    1) template                                             |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       &lt;SELF&gt; represents file name (exclude extension)      |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       # for digits or characters to replace, it's required |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |    2) the template will add to the list after you restart  |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       this program if you choose this option               |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |    3) regulation of order                                  |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       'a,b,c,d,e'                                          |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       all can be omitted, the default value is '0,1,1,0,0' |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       a: start number or letter of order                   |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       b: number only, step of orde                         |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       c: maximal digit of number ignored if d set to 0     |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       d: 1, fill other digit 'a'(for letter) or '0'(for    |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |          number) if total digits less than maximum while   |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |          0 does NOT                                        |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       e: if letters capitalize them                        |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; | 4. Add                                                     |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |    Input position and string to add                        |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |    'pos/str'                                               |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |    pos: add position, e.g.: '0' for front ;                |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |         '1' for position between 1st and 2nd letter        |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |         '-1' between last letter and letter before it      |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |    str: string to add, '/' is not allowed                  |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; | 5. Delete                                                  |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |    1) input a string to delete                             |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       'foo' or 'foo/0' or 'foo/1'                          |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       'foo' is an omitted form of 'foo/0'                  |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       '/0' means delete the first 'foo' in file name       |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       '/1' means delete all 'foo' in file name             |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |    2) input position and length to delete                  |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       'pos/len'                                            |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |       pos is as the same as it in 'Add' menu               |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; |                                                            |n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> H <span style="color: #ff0000;">&quot; n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">close</span><span style="color: #009900;">&#40;</span>H<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; &gt;&gt; [smartrename.help] saved!n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">return</span> <span style="color: #0000ff;">$last_menu</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">return</span> <span style="color: #0000ff;">$last_menu</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> deletion<span style="color: #009900;">&#123;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | DELETE OPTIONS                                             |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 1. Input String to Delete                                  |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 2. Extended Deletion                                       |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |                                                            |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | U. Goto Previous Menu                                      |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | M. Goto Main Menu                                          |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | H. Help                                                    |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | X. Exit                                                    |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; &gt;&gt; Your choice: &quot;</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$_</span><span style="color: #339933;">=</span><span style="color: #009999;">&lt;STDIN&gt;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">chomp</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$_</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> extend<span style="color: #009900;">&#123;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | EXTENDED FUNCTIONS                                         |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 1. Reverse English Characters Case                         |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 2. Reverse Characters Order                                |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 3. Lowercase Letter After Capital Letter One By One        |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |    Like: AaBbCcDdEeFf                                      |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 4. Capital Letter After Lowercase Letter One By One        |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |    Like: aAbBcCdDeEfF                                      |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 5. The 1st Choice Act On Extension                         |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 6. The 2nd Choice Act On Extension                         |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 7. The 3rd Choice Act On Extension                         |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | 8. The 4th Choice Act On Extension                         |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; |                                                            |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | U. Goto Previous Menu                                      |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | M. Goto Main Menu                                          |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | H. Help                                                    |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | X. Exit                                                    |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; &gt;&gt; Your choice: &quot;</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$_</span><span style="color: #339933;">=</span><span style="color: #009999;">&lt;STDIN&gt;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">chomp</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$_</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> get_delete_string<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; &gt;&gt; Input a string to delete: &quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">chomp</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span> <span style="color: #339933;">=</span> <span style="color: #009999;">&lt;STDIN&gt;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">/^</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^/</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:/</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">|</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #0000ff;">$/</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">last</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; !! [foo/0] to delete [foo] once while [foo/1] delete all.n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$_</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> get_extended_deletion<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; &gt;&gt; Input position and length to delete: &quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">chomp</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span> <span style="color: #339933;">=</span> <span style="color: #009999;">&lt;STDIN&gt;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">/^</span>d<span style="color: #339933;">+/</span>d<span style="color: #339933;">+</span><span style="color: #0000ff;">$/</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">last</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; !! [0/2] to delete the first 2 characters.n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$_</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> get_menu<span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$menu</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">@_</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$ubound</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$m_ubound</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$menu</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">@chars</span> <span style="color: #339933;">=</span> <span style="color: #000066;">split</span> <span style="color: #009966; font-style: italic;">/,/</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$m_chars</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$menu</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #0000ff;">$choice</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$menu</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>is_num <span style="color: #0000ff;">$choice</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$choice</span><span style="color: #339933;">&gt;=</span><span style="color: #cc66cc;">1</span> <span style="color: #b1b100;">and</span> <span style="color: #0000ff;">$choice</span><span style="color: #339933;">&lt;=</span><span style="color: #0000ff;">$ubound</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #b1b100;">last</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; !! Unknown choice.n&quot;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$choice</span> <span style="color: #b1b100;">eq</span> <span style="color: #ff0000;">&quot;X&quot;</span> <span style="color: #b1b100;">and</span> is_inArray<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;X&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">@chars</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;n&quot;</span><span style="color: #339933;">;</span>
                <span style="color: #000066;">exit</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$choice</span> <span style="color: #b1b100;">eq</span> <span style="color: #ff0000;">&quot;H&quot;</span> <span style="color: #b1b100;">and</span> is_inArray<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;H&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">@chars</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000066;">return</span> get_menu<span style="color: #009900;">&#40;</span>help<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$menu</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$choice</span> <span style="color: #b1b100;">eq</span> <span style="color: #ff0000;">&quot;M&quot;</span>  <span style="color: #b1b100;">and</span> is_inArray<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;M&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">@chars</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #000066;">return</span> get_menu<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;main_menu&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$choice</span> <span style="color: #b1b100;">eq</span> <span style="color: #ff0000;">&quot;U&quot;</span>  <span style="color: #b1b100;">and</span> is_inArray<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;U&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">@chars</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000066;">goto</span> RESTART <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$m_prev</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$menu</span><span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">eq</span> <span style="color: #ff0000;">&quot;input&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000066;">goto</span> REDO <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$m_prev</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$menu</span><span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">eq</span> <span style="color: #ff0000;">&quot;main_menu&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000066;">return</span> get_menu<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$m_prev</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$menu</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; !! Unknown choice.n&quot;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$choice</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> get_path<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; &gt;&gt; Input a path: &quot;</span><span style="color: #339933;">;</span>
        <span style="color: #0000ff;">$the_path</span> <span style="color: #339933;">=</span> <span style="color: #009999;">&lt;STDIN&gt;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">chomp</span> <span style="color: #0000ff;">$the_path</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">return</span> <span style="color: #ff0000;">&quot;./&quot;</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$the_path</span><span style="color: #339933;">=~/^</span>s<span style="color: #339933;">*</span><span style="color: #0000ff;">$/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #666666; font-style: italic;"># if no input, set path current directory</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span>e <span style="color: #0000ff;">$the_path</span> <span style="color: #b1b100;">and</span> <span style="color: #339933;">-</span>d <span style="color: #0000ff;">$the_path</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">last</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; !! Nonexistent path or non-directory path. n&quot;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$the_path</span><span style="color: #339933;">.</span><span style="color: #ff0000;">&quot;/&quot;</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$the_path</span><span style="color: #339933;">=~/^.*</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span><span style="color: #009966; font-style: italic;">/]$/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$the_path</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> get_filter<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; &gt;&gt; Input a filter: &quot;</span><span style="color: #339933;">;</span>
        <span style="color: #0000ff;">$the_filter</span> <span style="color: #339933;">=</span> <span style="color: #009999;">&lt;STDIN&gt;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">chomp</span> <span style="color: #0000ff;">$the_filter</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$the_filter</span><span style="color: #339933;">=~/^!?/.+/</span><span style="color: #0000ff;">$/</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">last</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$the_filter</span><span style="color: #339933;">=~/^</span>s<span style="color: #339933;">*</span><span style="color: #0000ff;">$/</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #666666; font-style: italic;"># for all the files</span>
            <span style="color: #0000ff;">$the_filter</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;/^.*$/&quot;</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">last</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; !! The filter pattern is [!?/.+/] , e.g.:n&quot;</span><span style="color: #339933;">;</span>
            <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; !! [!/.*.txt/] for all but .txt files.n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$the_filter</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> get_files<span style="color: #009900;">&#123;</span>
    REENTER<span style="color: #339933;">:</span><span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; &gt;&gt; Input files: &quot;</span><span style="color: #339933;">;</span>
        <span style="color: #0000ff;">$the_files</span> <span style="color: #339933;">=</span> <span style="color: #009999;">&lt;STDIN&gt;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">chomp</span> <span style="color: #0000ff;">$the_files</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$the_path</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$the_files</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$the_files</span><span style="color: #339933;">=~/^</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">.+</span><span style="color: #009900;">&#41;</span><span style="color: #000066;">s</span><span style="color: #339933;">*:</span><span style="color: #000066;">s</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">.+</span><span style="color: #009900;">&#41;</span><span style="color: #0000ff;">$/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000066;">defined</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$the_files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; !! Please check if [$_] exists, input sample: n&quot;</span><span style="color: #339933;">;</span>
            <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; !! [test:1.txt|2.txt] for 1.txt and 2.txt in directory;n&quot;</span><span style="color: #339933;">;</span>
            <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; !! [test/1.txt|test/2.txt] for the same.n&quot;</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">next</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #0000ff;">@the_filess</span> <span style="color: #339933;">=</span> <span style="color: #000066;">split</span> <span style="color: #009966; font-style: italic;">/s*|s*/</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$the_files</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@the_filess</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">defined</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$the_path</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;$the_path/$_&quot;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
            <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!-</span>e <span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; !! Please check if [$_] exists, input sample: n&quot;</span><span style="color: #339933;">;</span>
                <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; !! [test:1.txt|2.txt] for 1.txt and 2.txt in directory;n&quot;</span><span style="color: #339933;">;</span>
                <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; !! [test/1.txt|test/2.txt] for the same.n&quot;</span><span style="color: #339933;">;</span>
                <span style="color: #b1b100;">next</span> REENTER<span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">last</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">@the_filess</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> get_if_apply<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; &gt;&gt; Apply(y) or discard(n) the results? &quot;</span><span style="color: #339933;">;</span>
        <span style="color: #0000ff;">$the_apply</span> <span style="color: #339933;">=</span> <span style="color: #009999;">&lt;STDIN&gt;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">chomp</span> <span style="color: #0000ff;">$the_apply</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$the_apply</span> <span style="color: #b1b100;">eq</span> <span style="color: #ff0000;">&quot;y&quot;</span> <span style="color: #b1b100;">or</span> <span style="color: #0000ff;">$the_apply</span> <span style="color: #b1b100;">eq</span> <span style="color: #ff0000;">&quot;n&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">last</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; !! Input [y] or [n].n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$the_apply</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> get_file_or_ext<span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$flag</span> <span style="color: #339933;">=</span> <span style="color: #000066;">shift</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$f</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$flag</span> <span style="color: #339933;">?</span> <span style="color: #ff0000;">&quot;file name&quot;</span> <span style="color: #339933;">:</span> <span style="color: #ff0000;">&quot;extension&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; &gt;&gt; Input a new $f: &quot;</span><span style="color: #339933;">;</span>
        <span style="color: #0000ff;">$the_f</span> <span style="color: #339933;">=</span> <span style="color: #009999;">&lt;STDIN&gt;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">chomp</span> <span style="color: #0000ff;">$the_f</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$the_f</span> <span style="color: #339933;">=~</span> <span style="color: #339933;">/^</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span><span style="color: #009966; font-style: italic;">/]+$/</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">last</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; !! [/] is not allowed in $f.n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$the_f</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> get_input_template<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; &gt;&gt; Input a new template: &quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">chomp</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$the_t</span> <span style="color: #339933;">=</span> <span style="color: #009999;">&lt;STDIN&gt;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$the_t</span> <span style="color: #339933;">=~</span> <span style="color: #339933;">/^</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^/</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #666666; font-style: italic;">#[^/]*$/){</span>
            <span style="color: #b1b100;">last</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; !! [#] is required and [/] is not allowed.n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$the_t</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> get_template<span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$temp_choice</span> <span style="color: #339933;">=</span> get_menu<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;template&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$temp_choice</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #0000ff;">$temp</span> <span style="color: #339933;">=</span> get_input_template<span style="color: #339933;">;</span>
        <span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span>SELF<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;$0&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #0000ff;">@self_content</span> <span style="color: #339933;">=</span> <span style="color: #009999;">&lt;SELF&gt;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">close</span><span style="color: #009900;">&#40;</span>SELF<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span>SELFBAK<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;&gt;$0.bak&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> SELFBAK <span style="color: #0000ff;">@self_content</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">close</span><span style="color: #009900;">&#40;</span>SELFBAK<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@self_content</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">/^</span><span style="color: #666666; font-style: italic;">## .+///){</span>
                <span style="color: #000066;">s</span><span style="color: #339933;">/////</span><span style="color: #0000ff;">$temp</span><span style="color: #339933;">///;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/^s+template =&gt; (d+),/</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #009966; font-style: italic;">s/($1)/$1+1/e</span><span style="color: #339933;">;</span>
                <span style="color: #b1b100;">last</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span>SELF<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;&gt;$0&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> SELF <span style="color: #0000ff;">@self_content</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">close</span><span style="color: #009900;">&#40;</span>SELF<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$temp_choice</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #0000ff;">$temp</span> <span style="color: #339933;">=</span> get_input_template<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #0000ff;">$temp</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$ts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">$temp_choice</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$temp</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> get_regular<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; &gt;&gt; Input A Regulation of Order: &quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">chomp</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span> <span style="color: #339933;">=</span> <span style="color: #009999;">&lt;STDIN&gt;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/^(?:d+|[a-z]+)?(?:,d+)?(?:,d+)?(?:,(?:0|1))?(?:,(?:0|1))?$/</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">last</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; !! e.g.: [a,1,2,1,1] makes orders AA, AB, AC....n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$_</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">sub</span> get_add<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; &gt;&gt; Input position and string to add: &quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">chomp</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span> <span style="color: #339933;">=</span> <span style="color: #009999;">&lt;STDIN&gt;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">/^-?</span>d<span style="color: #339933;">+/</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span><span style="color: #009966; font-style: italic;">/]+$/</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">last</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; !! e.g.: [0/foo] to add [foo] to the front.n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">return</span> <span style="color: #0000ff;">$_</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #0000ff;">%m_ubound</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>   input <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span>
                main_menu <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">6</span><span style="color: #339933;">,</span>
                whole <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">8</span><span style="color: #339933;">,</span>
                preview_or_apply <span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span>
                template <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">12</span><span style="color: #339933;">,</span>
                deletion <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span>
                extend <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">8</span><span style="color: #339933;">,</span>
            <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
<span style="color: #0000ff;">%m_prev</span> <span style="color: #339933;">=</span>   <span style="color: #009900;">&#40;</span>   main_menu <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;input&quot;</span><span style="color: #339933;">,</span>
                whole <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;main_menu&quot;</span><span style="color: #339933;">,</span>
                template <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;main_menu&quot;</span><span style="color: #339933;">,</span>
                deletion <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;main_menu&quot;</span><span style="color: #339933;">,</span>
                extend <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;main_menu&quot;</span><span style="color: #339933;">,</span>
            <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
<span style="color: #0000ff;">%m_chars</span> <span style="color: #339933;">=</span>  <span style="color: #009900;">&#40;</span>   input <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;H,X&quot;</span><span style="color: #339933;">,</span>
                main_menu <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;U,H,X&quot;</span><span style="color: #339933;">,</span>
                whole <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;U,M,H,X&quot;</span><span style="color: #339933;">,</span>
                template <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;U,M,H,X&quot;</span><span style="color: #339933;">,</span>
                deletion <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;U,M,H,X&quot;</span><span style="color: #339933;">,</span>
                extend <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;U,M,H,X&quot;</span><span style="color: #339933;">,</span>
                preview_or_apply <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;H,X&quot;</span><span style="color: #339933;">,</span>
            <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
<span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span>SELF<span style="color: #339933;">,</span> <span style="color: #0000ff;">$0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #009999;">&lt;SELF&gt;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #000066;">chomp</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span> <span style="color: #339933;">=~</span> <span style="color: #339933;">/^</span><span style="color: #666666; font-style: italic;">## (.+)///){</span>
        <span style="color: #0000ff;">@ts</span> <span style="color: #339933;">=</span> <span style="color: #000066;">split</span> <span style="color: #339933;">///,</span> <span style="color: #0000ff;">$1</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">last</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066;">close</span><span style="color: #009900;">&#40;</span>SELF<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
RESTART<span style="color: #339933;">:</span> <span style="color: #0000ff;">$input_menu</span> <span style="color: #339933;">=</span> get_menu<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;input&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">@files</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">%out_files</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;"># get input files</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$input_menu</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$path</span> <span style="color: #339933;">=</span> <span style="color: #339933;">&amp;</span><span style="color: #666666; font-style: italic;">#038;get_path;</span>
    <span style="color: #0000ff;">$filter</span> <span style="color: #339933;">=</span> <span style="color: #339933;">&amp;</span><span style="color: #666666; font-style: italic;">#038;get_filter;</span>
    <span style="color: #000066;">opendir</span><span style="color: #009900;">&#40;</span>DIR<span style="color: #339933;">,</span> <span style="color: #0000ff;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$file</span><span style="color: #339933;">=</span><span style="color: #000066;">readdir</span><span style="color: #009900;">&#40;</span>DIR<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$filter</span><span style="color: #339933;">=~/^!/</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">.+</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #0000ff;">$/</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #000066;">push</span> <span style="color: #0000ff;">@files</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$path</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$file</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$file</span><span style="color: #339933;">!~/</span><span style="color: #0000ff;">$1</span><span style="color: #339933;">/</span> <span style="color: #b1b100;">and</span> <span style="color: #0000ff;">$file</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;.&quot;</span> <span style="color: #b1b100;">and</span> <span style="color: #0000ff;">$file</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;..&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$filter</span><span style="color: #339933;">=~/^</span><span style="color: #009966; font-style: italic;">/(.+)/</span><span style="color: #0000ff;">$/</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066;">push</span> <span style="color: #0000ff;">@files</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$path</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$file</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$file</span><span style="color: #339933;">=~/</span><span style="color: #0000ff;">$1</span><span style="color: #339933;">/</span> <span style="color: #b1b100;">and</span> <span style="color: #0000ff;">$file</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;.&quot;</span> <span style="color: #b1b100;">and</span> <span style="color: #0000ff;">$file</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;..&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">closedir</span><span style="color: #009900;">&#40;</span>DIR<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">@files</span> <span style="color: #339933;">=</span> <span style="color: #339933;">&amp;</span><span style="color: #666666; font-style: italic;">#038;get_files;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; n&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | FILES TO RENAME                                            |n&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000066;">sort</span> <span style="color: #009900;">&#123;</span><span style="color: #000066;">lc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$a</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">cmp</span> <span style="color: #000066;">lc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$b</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">or</span> <span style="color: #0000ff;">$a</span> <span style="color: #339933;">&lt;=&gt;</span> <span style="color: #0000ff;">$b</span><span style="color: #009900;">&#125;</span> <span style="color: #0000ff;">@files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>print_line<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
<span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span> 
&nbsp;
REDO<span style="color: #339933;">:</span> <span style="color: #0000ff;">$main_input</span> <span style="color: #339933;">=</span> get_menu<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;main_menu&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$main_input</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$whole_choice</span> <span style="color: #339933;">=</span> get_menu<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;whole&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$whole_choice</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$out_files</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> pathOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #000066;">uc</span><span style="color: #009900;">&#40;</span>clashOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$whole_choice</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$out_files</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> pathOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #000066;">lc</span><span style="color: #009900;">&#40;</span>clashOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$whole_choice</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$out_files</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> pathOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #000066;">ucfirst</span><span style="color: #009900;">&#40;</span>clashOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$whole_choice</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$out_files</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> pathOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #000066;">lcfirst</span><span style="color: #009900;">&#40;</span>clashOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$whole_choice</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #0000ff;">$file_name</span> <span style="color: #339933;">=</span> get_file_or_ext<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$out_files</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> pathOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$file_name</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$whole_choice</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$out_files</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> pathOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>clashOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #000066;">uc</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$whole_choice</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$out_files</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> pathOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>clashOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #000066;">lc</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$whole_choice</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">8</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #0000ff;">$file_name</span> <span style="color: #339933;">=</span> get_file_or_ext<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$out_files</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> pathOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>clashOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #0000ff;">$file_name</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$main_input</span><span style="color: #339933;">==</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$pattern</span> <span style="color: #339933;">=</span> get_pattern<span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$replace</span> <span style="color: #339933;">=</span> get_replace<span style="color: #339933;">;</span>
    <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #0000ff;">$file_name</span> <span style="color: #339933;">=</span> clashOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #666666; font-style: italic;">#$file_name =~ s/$pattern/($replace=~s/&lt;(d+)&gt;/$$1/g)/e;</span>
        <span style="color: #666666; font-style: italic;">#eval('$file_name =~ s/$pattern/$replace/e;');</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$replace</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">/$/</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$file_name</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">s/$pattern/eval($replace)/e</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$file_name</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">s/$pattern/$replace/</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #0000ff;">$out_files</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> pathOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$file_name</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$main_input</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$tmp</span> <span style="color: #339933;">=</span> get_template<span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$reg</span> <span style="color: #339933;">=</span> get_regular<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$start</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$step</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$len</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$iffill</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$ifcap</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$reg</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">/^(d+|[a-z]+)?(?:,(d+))?(?:,(d+))?(?:,(0|1))?(?:,(0|1))?$/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$start</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000066;">defined</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$start</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$step</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000066;">defined</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$step</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$len</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000066;">defined</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$len</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$iffill</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000066;">defined</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$iffill</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$ifcap</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000066;">defined</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$ifcap</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #0000ff;">$tmp_clash</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$tmp</span><span style="color: #339933;">;</span>
        <span style="color: #0000ff;">$clash</span> <span style="color: #339933;">=</span> clashOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$iffill</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">length</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$start</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;</span><span style="color: #0000ff;">$len</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #0000ff;">$start</span> <span style="color: #339933;">=</span> <span style="color: #000066;">sprintf</span><span style="color: #009900;">&#40;</span>is_num<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$start</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;0&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot;a&quot;</span> x <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$len</span><span style="color: #339933;">-</span><span style="color: #000066;">length</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$start</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$start</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>is_num<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$start</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$ifcap</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$start</span> <span style="color: #339933;">=</span> <span style="color: #000066;">uc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$start</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
            <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$start</span> <span style="color: #339933;">=</span> <span style="color: #000066;">lc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$start</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #0000ff;">$tmp_clash</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">s/#/$start/g</span><span style="color: #339933;">;</span>
        <span style="color: #0000ff;">$tmp_clash</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">s/&lt;SELF&gt;/$clash/g</span><span style="color: #339933;">;</span>
        <span style="color: #0000ff;">$out_files</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> pathOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$tmp_clash</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>is_num<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$start</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$start</span> <span style="color: #339933;">+=</span> <span style="color: #0000ff;">$step</span> <span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$start</span> <span style="color: #339933;">=</span> lettersAdd<span style="color: #009900;">&#40;</span><span style="color: #000066;">lc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$start</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$step</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$main_input</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$add</span> <span style="color: #339933;">=</span> get_add<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$pos</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$str</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$add</span> <span style="color: #339933;">=~</span> <span style="color: #339933;">/^</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-?</span>d<span style="color: #339933;">+</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span><span style="color: #009966; font-style: italic;">/]+)$/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #0000ff;">$clash</span> <span style="color: #339933;">=</span> clashOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$pos</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$str</span><span style="color: #339933;">;</span>
        <span style="color: #0000ff;">$out_files</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> pathOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$main_input</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$delete</span> <span style="color: #339933;">=</span> get_menu<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;deletion&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$delete</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #0000ff;">$d_str</span> <span style="color: #339933;">=</span> get_delete_string<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$delete_str</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">$delete_global</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$d_str</span> <span style="color: #339933;">=~</span> <span style="color: #339933;">/^</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^/</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:/</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">|</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #0000ff;">$/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #0000ff;">$delete_global</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000066;">defined</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$delete_global</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$clash</span> <span style="color: #339933;">=</span> clashOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$delete_global</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #0000ff;">$clash</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">s/$delete_str//g</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #0000ff;">$clash</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">s/$delete_str//</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #0000ff;">$out_files</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> pathOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #0000ff;">$d_ext</span> <span style="color: #339933;">=</span> get_extended_deletion<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$d_pos</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$d_len</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$d_ext</span> <span style="color: #339933;">=~</span> <span style="color: #339933;">/^</span><span style="color: #009900;">&#40;</span>d<span style="color: #339933;">+</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #009900;">&#40;</span>d<span style="color: #339933;">+</span><span style="color: #009900;">&#41;</span><span style="color: #0000ff;">$/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$clash</span> <span style="color: #339933;">=</span> clashOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$d_pos</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$d_len</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #339933;">;</span>
            <span style="color: #0000ff;">$out_files</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> pathOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$e_choice</span> <span style="color: #339933;">=</span> get_menu<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;extend&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$e_choice</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$clash</span> <span style="color: #339933;">=</span> clashOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #0000ff;">$i</span><span style="color: #339933;">&lt;</span>length<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$clash</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #0000ff;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$c</span> <span style="color: #339933;">=</span> <span style="color: #000066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$i</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$i</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$c</span> <span style="color: #b1b100;">eq</span> <span style="color: #000066;">lc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$c</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #000066;">uc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$c</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #000066;">lc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$c</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #0000ff;">$out_files</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> pathOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$e_choice</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$clash</span> <span style="color: #339933;">=</span> clashOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #0000ff;">$clash</span> <span style="color: #339933;">=</span> <span style="color: #000066;">reverse</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">split</span> <span style="color: #339933;">//,</span><span style="color: #0000ff;">$clash</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #0000ff;">$out_files</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> pathOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$e_choice</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$first_cap</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
            <span style="color: #0000ff;">$clash</span> <span style="color: #339933;">=</span> clashOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #0000ff;">$i</span><span style="color: #339933;">&lt;</span>length<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$clash</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #0000ff;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$c</span> <span style="color: #339933;">=</span> <span style="color: #000066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$i</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">uc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$c</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #000066;">lc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$c</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                    <span style="color: #000066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$i</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$first_cap</span><span style="color: #339933;">?</span><span style="color: #000066;">uc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$c</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #000066;">lc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$c</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #0000ff;">$first_cap</span> <span style="color: #339933;">=</span> <span style="color: #339933;">!</span><span style="color: #0000ff;">$first_cap</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #0000ff;">$out_files</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> pathOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$e_choice</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$first_cap</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
            <span style="color: #0000ff;">$clash</span> <span style="color: #339933;">=</span> clashOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #0000ff;">$i</span><span style="color: #339933;">&lt;</span>length<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$clash</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #0000ff;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$c</span> <span style="color: #339933;">=</span> <span style="color: #000066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$i</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">uc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$c</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #000066;">lc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$c</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                    <span style="color: #000066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$i</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$first_cap</span><span style="color: #339933;">?</span><span style="color: #000066;">uc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$c</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #000066;">lc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$c</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #0000ff;">$first_cap</span> <span style="color: #339933;">=</span> <span style="color: #339933;">!</span><span style="color: #0000ff;">$first_cap</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #0000ff;">$out_files</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> pathOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$e_choice</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$clash</span> <span style="color: #339933;">=</span> clashOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #0000ff;">$i</span><span style="color: #339933;">&lt;</span>length<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$clash</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #0000ff;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$c</span> <span style="color: #339933;">=</span> <span style="color: #000066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$i</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$i</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$c</span> <span style="color: #b1b100;">eq</span> <span style="color: #000066;">lc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$c</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #000066;">uc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$c</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #000066;">lc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$c</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #0000ff;">$out_files</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> pathOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$e_choice</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #0000ff;">$clash</span> <span style="color: #339933;">=</span> clashOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #0000ff;">$clash</span> <span style="color: #339933;">=</span> <span style="color: #000066;">reverse</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">split</span> <span style="color: #339933;">//,</span><span style="color: #0000ff;">$clash</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #0000ff;">$out_files</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> pathOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$e_choice</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">7</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$first_cap</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
            <span style="color: #0000ff;">$clash</span> <span style="color: #339933;">=</span> clashOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #0000ff;">$i</span><span style="color: #339933;">&lt;</span>length<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$clash</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #0000ff;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$c</span> <span style="color: #339933;">=</span> <span style="color: #000066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$i</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">uc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$c</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #000066;">lc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$c</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                    <span style="color: #000066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$i</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$first_cap</span><span style="color: #339933;">?</span><span style="color: #000066;">uc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$c</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #000066;">lc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$c</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #0000ff;">$first_cap</span> <span style="color: #339933;">=</span> <span style="color: #339933;">!</span><span style="color: #0000ff;">$first_cap</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #0000ff;">$out_files</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> pathOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">@files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$first_cap</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
            <span style="color: #0000ff;">$clash</span> <span style="color: #339933;">=</span> clashOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #339933;">:</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>extOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #0000ff;">$i</span><span style="color: #339933;">&lt;</span>length<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$clash</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #0000ff;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$c</span> <span style="color: #339933;">=</span> <span style="color: #000066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$i</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">uc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$c</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">ne</span> <span style="color: #000066;">lc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$c</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                    <span style="color: #000066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$i</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$first_cap</span><span style="color: #339933;">?</span><span style="color: #000066;">uc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$c</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #000066;">lc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$c</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #0000ff;">$first_cap</span> <span style="color: #339933;">=</span> <span style="color: #339933;">!</span><span style="color: #0000ff;">$first_cap</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #0000ff;">$out_files</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span> <span style="color: #339933;">=</span> pathOf<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$clash</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #0000ff;">$app_input</span> <span style="color: #339933;">=</span> get_menu<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;preview_or_apply&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$app_input</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | RESULTS PREVIEW                                            |n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000066;">sort</span> <span style="color: #009900;">&#123;</span><span style="color: #000066;">lc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$a</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">cmp</span> <span style="color: #000066;">lc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$b</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">or</span> <span style="color: #0000ff;">$a</span> <span style="color: #339933;">&lt;=&gt;</span> <span style="color: #0000ff;">$b</span><span style="color: #009900;">&#125;</span> <span style="color: #000066;">keys</span> <span style="color: #0000ff;">%out_files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; = [$_] =&gt; [$out_files{$_}]n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+nn&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #0000ff;">$app_choice</span> <span style="color: #339933;">=</span> get_if_apply<span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$app_choice</span> <span style="color: #b1b100;">eq</span> <span style="color: #ff0000;">&quot;n&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">goto</span> REDO<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;n&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; | RESULTS APPLYING                                           |n&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000066;">sort</span> <span style="color: #009900;">&#123;</span><span style="color: #000066;">lc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$a</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">cmp</span> <span style="color: #000066;">lc</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$b</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">or</span> <span style="color: #0000ff;">$a</span> <span style="color: #339933;">&lt;=&gt;</span> <span style="color: #0000ff;">$b</span><span style="color: #009900;">&#125;</span> <span style="color: #000066;">keys</span> <span style="color: #0000ff;">%out_files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!-</span>e <span style="color: #0000ff;">$out_files</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">and</span> <span style="color: #000066;">rename</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$_</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$out_files</span><span style="color: #009900;">&#123;</span><span style="color: #0000ff;">$_</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; ~ &quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; ! &quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;[$_] =&gt; [$out_files{$_}]n&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot; +------------------------------------------------------------+n&quot;</span><span style="color: #339933;">;</span> 
&nbsp;
<span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;n &gt;&gt; Done! n&quot;</span><span style="color: #339933;">;</span> 
&nbsp;
<span style="color: #000066;">goto</span> RESTART<span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://pwwang.com/2008/11/27/linux%e4%b8%8b%e7%9a%84%e6%89%b9%e9%87%8f%e6%94%b9%e5%90%8d%e5%b7%a5%e5%85%b7/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

