<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8835728927691465740</id><updated>2012-02-22T01:34:02.290-08:00</updated><category term='windows'/><category term='padre'/><category term='plugin'/><category term='cygwin'/><category term='activestate'/><category term='perlcritic'/><category term='oracle'/><category term='perl'/><title type='text'>Padre editor investigations</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://padrepm.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8835728927691465740/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://padrepm.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Николай Мишин</name><uri>http://www.blogger.com/profile/02168558551212889081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_b49UI8NHWqw/SXjSdA_v7dI/AAAAAAAAALk/hMZx18ViwJc/S220/mishin.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8835728927691465740.post-7584296560699793010</id><published>2012-02-22T01:34:00.000-08:00</published><updated>2012-02-22T01:34:02.301-08:00</updated><title type='text'>Ahmad M. Zawawi (azawawi): Padre &amp; Moose 0.04 :)</title><content type='html'>&lt;a href="http://ahmadzawawi.blogspot.com/2012/02/padre-moose-004.html?spref=bl"&gt;Ahmad M. Zawawi (azawawi): Padre &amp;amp; Moose 0.04 :)&lt;/a&gt;: I just updated Padre and Moose plugin to 0.04. Here is a screenshot:&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8835728927691465740-7584296560699793010?l=padrepm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://padrepm.blogspot.com/feeds/7584296560699793010/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://padrepm.blogspot.com/2012/02/ahmad-m-zawawi-azawawi-padre-moose-004.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8835728927691465740/posts/default/7584296560699793010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8835728927691465740/posts/default/7584296560699793010'/><link rel='alternate' type='text/html' href='http://padrepm.blogspot.com/2012/02/ahmad-m-zawawi-azawawi-padre-moose-004.html' title='Ahmad M. Zawawi (azawawi): Padre &amp; Moose 0.04 :)'/><author><name>Николай Мишин</name><uri>http://www.blogger.com/profile/02168558551212889081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_b49UI8NHWqw/SXjSdA_v7dI/AAAAAAAAALk/hMZx18ViwJc/S220/mishin.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8835728927691465740.post-1022725143000286758</id><published>2011-10-18T01:13:00.000-07:00</published><updated>2011-10-18T01:13:58.334-07:00</updated><title type='text'>Использование панели перевода</title><content type='html'>&lt;a href="https://www.google.com/support/chrome/bin/answer.py?hl=ru&amp;amp;answer=173424&amp;amp;ctx=share"&gt;Использование панели перевода&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8835728927691465740-1022725143000286758?l=padrepm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://padrepm.blogspot.com/feeds/1022725143000286758/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://padrepm.blogspot.com/2011/10/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8835728927691465740/posts/default/1022725143000286758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8835728927691465740/posts/default/1022725143000286758'/><link rel='alternate' type='text/html' href='http://padrepm.blogspot.com/2011/10/blog-post.html' title='Использование панели перевода'/><author><name>Николай Мишин</name><uri>http://www.blogger.com/profile/02168558551212889081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_b49UI8NHWqw/SXjSdA_v7dI/AAAAAAAAALk/hMZx18ViwJc/S220/mishin.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8835728927691465740.post-4649735762468897379</id><published>2011-09-25T05:35:00.000-07:00</published><updated>2011-09-27T00:48:11.908-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='perlcritic'/><category scheme='http://www.blogger.com/atom/ns#' term='plugin'/><category scheme='http://www.blogger.com/atom/ns#' term='padre'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='cygwin'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><category scheme='http://www.blogger.com/atom/ns#' term='activestate'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>My life is in the editor Padre</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;link href="http://assets.github.com/stylesheets/bundle_gist.css" media="screen" rel="stylesheet" type="text/css"&gt;&lt;/link&gt; &lt;link href="http://help.github.com/shared/css/documentation.css" media="screen" rel="stylesheet" type="text/css"&gt;    &lt;link href="http://help.github.com/shared/css/pygments.css" media="screen" rel="stylesheet" type="text/css"&gt;    &lt;link rel="stylesheet" href="http://help.github.com/css/style.css" type="text/css" media="screen"&gt;    &lt;link rel="stylesheet" href="http://help.github.com/css/print.css" type="text/css" media="print"&gt;    &lt;script src="http://help.github.com/shared/js/jquery.js" type="text/javascript"&gt;&lt;/script&gt;    &lt;script src="http://help.github.com/shared/js/documentation.js" type="text/javascript"&gt;&lt;/script&gt;    &lt;script src="http://help.github.com/js/help.js" type="text/javascript"&gt;&lt;/script&gt;&lt;p&gt;&lt;span class='step-title'&gt;My acquaintance with Padre&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Of course for the Perl programming before and I've used &lt;a class="zem_slink" href="http://www.gnu.org/software/emacs" rel="homepage" title="Emacs"&gt;Emacs&lt;/a&gt; and  &lt;a class="zem_slink" href="http://www.vim.org/" rel="homepage" title="Vim (text editor)"&gt;Vim&lt;/a&gt; (and I use it now, if you need something quickly edit or view). It all started when I looked up &lt;a href="http://youtu.be/MKXtGgWi7qs" &gt;movie&lt;/a&gt; genius programmer Gabor Szabo, but the Padre plugin I have not earned.&lt;/p&gt;&lt;p&gt;&lt;span class='step-title'&gt;YAPC::EU RIGA 2011&lt;/span&gt;&lt;/p&gt;&lt;p&gt;I went to &lt;a href="http://yapceurope.lv/ye2011/" &gt;YAPC::Europe 2011 “Modern Perl”&lt;/a&gt; and there on kahatone, Gabor explained what is my mistake, it turns out I could not activate (My.pm) plug-in, because I just stood an old version of the variable and must be changed from 0.40 to 0.66&lt;/p&gt;&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; The following code plug My.pm&lt;/h4&gt;  &lt;div class='more-content'&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;padre_interfaces&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;	&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;		&lt;span class="s"&gt;&amp;#39;Padre::Plugin&amp;#39;&lt;/span&gt;   &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;0.66&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;		&lt;span class="s"&gt;&amp;#39;Padre::Constant&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;0.66&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;	&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&lt;br/&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;Excellent, I thought, very simple plugin that shows information about Padre (self-&gt; show_about)&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; earned:&lt;/h4&gt;  &lt;div class='more-content'&gt; &lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;show_about&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;	&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;	&lt;span class="c1"&gt;# Locate this plugin&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;	&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;File::&lt;/span&gt;&lt;span class="n"&gt;Spec&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;catfile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;		&lt;span class="nn"&gt;Padre::Constant::&lt;/span&gt;&lt;span class="n"&gt;CONFIG_DIR&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;		&lt;span class="sx"&gt;qw{ plugins Padre Plugin My.pm }&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;	&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC9'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC10'&gt;	&lt;span class="c1"&gt;# Generate the About dialog&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC11'&gt;	&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$about&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;Wx::&lt;/span&gt;&lt;span class="n"&gt;AboutDialogInfo&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC12'&gt;	&lt;span class="nv"&gt;$about&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;SetName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;My Plug-in&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC13'&gt;	&lt;span class="nv"&gt;$about&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;SetDescription&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;END_MESSAGE&amp;quot;&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC14'&gt;&lt;span class="n"&gt;The&lt;/span&gt; &lt;span class="n"&gt;philosophy&lt;/span&gt; &lt;span class="n"&gt;behind&lt;/span&gt; &lt;span class="n"&gt;Padre&lt;/span&gt; &lt;span class="n"&gt;is&lt;/span&gt; &lt;span class="n"&gt;that&lt;/span&gt; &lt;span class="n"&gt;every&lt;/span&gt; &lt;span class="n"&gt;Perl&lt;/span&gt; &lt;span class="n"&gt;programmer&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC15'&gt;&lt;span class="n"&gt;should&lt;/span&gt; &lt;span class="n"&gt;be&lt;/span&gt; &lt;span class="n"&gt;able&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;easily&lt;/span&gt; &lt;span class="n"&gt;modify&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;improve&lt;/span&gt; &lt;span class="n"&gt;their&lt;/span&gt; &lt;span class="n"&gt;own&lt;/span&gt; &lt;span class="n"&gt;editor&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC16'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC17'&gt;&lt;span class="n"&gt;To&lt;/span&gt; &lt;span class="n"&gt;help&lt;/span&gt; &lt;span class="n"&gt;you&lt;/span&gt; &lt;span class="n"&gt;get&lt;/span&gt; &lt;span class="n"&gt;started&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;we&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;ve provided you with your own plug-in.&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC18'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC19'&gt;&lt;span class="s"&gt;It is located in your configuration directory at:&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC20'&gt;&lt;span class="s"&gt;$path&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC21'&gt;&lt;span class="s"&gt;Open it with with Padre and you&amp;#39;&lt;/span&gt;&lt;span class="n"&gt;ll&lt;/span&gt; &lt;span class="n"&gt;see&lt;/span&gt; &lt;span class="n"&gt;an&lt;/span&gt; &lt;span class="n"&gt;explanation&lt;/span&gt; &lt;span class="n"&gt;on&lt;/span&gt; &lt;span class="n"&gt;how&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;add&lt;/span&gt; &lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC22'&gt;&lt;span class="n"&gt;END_MESSAGE&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC23'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC24'&gt;	&lt;span class="c1"&gt;# Show the About dialog&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC25'&gt;	&lt;span class="nn"&gt;Wx::&lt;/span&gt;&lt;span class="n"&gt;AboutBox&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$about&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC26'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC27'&gt;	&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC28'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;Maybe you can come up with something interesting. In the beginning, I had a problem just replace the slashes with \ (windows) on / (unix) elementary problem, but I had to change them often and would once have to write a regular expression for it, hang it on the menu, and it is better to shortcut and forget about it.&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; and I wrote a simple macro&lt;/h4&gt;  &lt;div class='more-content'&gt; &lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;replace_slash&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$main&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$doc&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;Padre::&lt;/span&gt;&lt;span class="n"&gt;Current&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;document&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$doc&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;text_get&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$text&lt;/span&gt; &lt;span class="o"&gt;=~&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="c1"&gt;#\\#/#g;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$doc&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;text_set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$text&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC9'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC10'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC11'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC12'&gt;&lt;br/&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;                &lt;/div&gt;&lt;/div&gt;I was tied to a menu&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; menu&lt;/h4&gt;  &lt;div class='more-content'&gt;   &lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;menu_plugins_simple&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;plugin_name&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;About&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;show_about&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;&amp;amp;Replace_slash&amp;#39;&lt;/span&gt;      &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;replace_slash&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;and was happy, at any time I could now call him the menu. Then I needed to delete the numbers after you copy text from the VI with parameter set nu&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; replace_start_digit&lt;/h4&gt;  &lt;div class='more-content'&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;replace_start_digit&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$main&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$doc&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;Padre::&lt;/span&gt;&lt;span class="n"&gt;Current&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;document&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$doc&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;text_get&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$text&lt;/span&gt; &lt;span class="o"&gt;=~&lt;/span&gt; &lt;span class="sr"&gt;s/^\s*[0-9]//mg&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$doc&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;text_set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$text&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC9'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC10'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC11'&gt;&lt;br/&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span class='step-title'&gt;PerlCritic - Graphical Interface from ActivePerl&lt;/span&gt;&lt;/p&gt;Then I remembered that I really like perlcritic from ActiveState and would like to call it directly from Padre&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; run_perlcritic_from_activeperl &lt;/h4&gt;  &lt;div class='more-content'&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;run_perlcritic_from_activeperl&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$main&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$doc&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;Padre::&lt;/span&gt;&lt;span class="n"&gt;Current&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;document&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$filename&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$doc&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$exec_shell&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC9'&gt;&lt;span class="sx"&gt;q{C:\Perl\bin\wperl.exe -x &amp;quot;C:\Perl\bin\perlcritic-gui&amp;quot; c:\Users\nmishin\Documents\git\perlcritic\perlcritic_profile.perlcriticrc }&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC10'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="nv"&gt;$filename&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC11'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="sx"&gt;q{ --run}&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC12'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$main&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$exec_shell&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC13'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC14'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;run_shell&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$exec_shell&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC15'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC16'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC17'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC18'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;run_shell&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC19'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$cmd&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;@_&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC20'&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nn"&gt;IPC::&lt;/span&gt;&lt;span class="n"&gt;Open3&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;open3&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC21'&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="n"&gt;Carp&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC22'&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="n"&gt;English&lt;/span&gt; &lt;span class="sx"&gt;qw(-no_match_vars)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC23'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC24'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;@args&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC25'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$EMPTY&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sx"&gt;q{}&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC26'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$ret&lt;/span&gt;   &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;undef&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC27'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$HIS_IN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$HIS_OUT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$HIS_ERR&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$EMPTY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$EMPTY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$EMPTY&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC28'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$childpid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;open3&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$HIS_IN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$HIS_OUT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$HIS_ERR&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$cmd&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;@args&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC29'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$ret&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;$HIS_IN&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;stuff\n&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC30'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nb"&gt;close&lt;/span&gt; &lt;span class="nv"&gt;$HIS_IN&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;croak&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;unable to close: $HIS_IN $ERRNO&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC31'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;;&lt;/span&gt;    &lt;span class="c1"&gt;# Give end of file to kid.&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC32'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC33'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$HIS_OUT&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC34'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;@outlines&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sr"&gt;&amp;lt;$HIS_OUT&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;    &lt;span class="c1"&gt;# Read till EOF.&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC35'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$ret&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;quot; STDOUT:\n&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;@outlines&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;\n&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC36'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC37'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$HIS_ERR&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC38'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;@errlines&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sr"&gt;&amp;lt;$HIS_ERR&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;    &lt;span class="c1"&gt;# XXX: block potential if massive&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC39'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$ret&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;quot; STDERR:\n&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;@errlines&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;\n&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC40'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC41'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nb"&gt;close&lt;/span&gt; &lt;span class="nv"&gt;$HIS_OUT&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;croak&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;unable to close: $HIS_OUT $ERRNO&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC42'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC43'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#close $HIS_ERR or croak &amp;quot;unable to close: $HIS_ERR $ERRNO&amp;quot;;#bad..todo&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC44'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nb"&gt;waitpid&lt;/span&gt; &lt;span class="nv"&gt;$childpid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC45'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$CHILD_ERROR&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC46'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$ret&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;That child exited with wait status of $CHILD_ERROR\n&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC47'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC48'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC49'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;                &lt;/div&gt;&lt;/div&gt;and the &lt;a href="http://padre.perlide.org/irc.html"&gt;padre irc&lt;/a&gt;  helped me, saying how to invoke a command keyboard shortcut is a talented hacker &lt;a href="http://irclog.perlgeek.de/padre/2011-09-14#i_4428990"&gt;Alias&lt;/a&gt;​​and I was able,&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; written so &lt;/h4&gt;  &lt;div class='more-content'&gt; &lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;menu_plugins_simple&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;plugin_name&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;About&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;show_about&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;&amp;amp;Replace_slash&amp;#39;&lt;/span&gt;      &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;replace_slash&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;Replace_start_digit&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;replace_start_digit&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;quot;Run_perlcritic_from_activeperl\tCtrl-Alt-F3&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC9'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;run_perlcritic_from_activeperl&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC10'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC11'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC12'&gt;&lt;br/&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;                &lt;/div&gt;&lt;/div&gt;perlcritic start with the visual interface of Activestate directly from the Padre by Ctrl-Alt-F3.&lt;p&gt;&lt;span class='step-title'&gt;Improving macro replacement (edit)&lt;/span&gt;&lt;/p&gt;At the macro described above have the disadvantage - it makes the changes with only 1 line of text, I decided to correct this assumption by adding a function&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; change_text&lt;/h4&gt;  &lt;div class='more-content'&gt; &lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;change_text&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;         &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$replace_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$main&lt;/span&gt;         &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$doc&lt;/span&gt;          &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;Padre::&lt;/span&gt;&lt;span class="n"&gt;Current&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;document&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$text&lt;/span&gt;         &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$doc&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;text_get&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;@all_text_lines&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;split&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;\n&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$text&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC9'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$out_line&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC10'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC11'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#change every line in text&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC12'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$current_line&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;@all_text_lines&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC13'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$out_line&lt;/span&gt; &lt;span class="o"&gt;.=&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nv"&gt;$replace_text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$current_line&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC14'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC15'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC16'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$doc&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;text_set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$out_line&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC17'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC18'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC19'&gt;&lt;br/&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;                &lt;/div&gt;&lt;/div&gt;and now you can write the following function&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; type&lt;/h4&gt;  &lt;div class='more-content'&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;jira_link2&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$ref_replace_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$in_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$in_text&lt;/span&gt; &lt;span class="o"&gt;=~&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&lt;span class="sr"&gt;s{([A-Z]+-\d+)\s+}{[$1\|http://jira.gto.intranet.db.com:2020/jira/browse/$1]}&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$in_text&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC9'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;};&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC10'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC11'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;change_text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$ref_replace_text&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC12'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC13'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC14'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC15'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;selace_space&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC16'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC17'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC18'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$ref_replace_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC19'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$in_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC20'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC21'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;###Change this text&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC22'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$in_text&lt;/span&gt; &lt;span class="o"&gt;=~&lt;/span&gt; &lt;span class="sr"&gt;s{(\w+)\s+(\w+)\s+(\w+)}{$1,$2,$3}&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC23'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC24'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$in_text&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC25'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;};&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC26'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC27'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;change_text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$ref_replace_text&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC28'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC29'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC30'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC31'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;word_to_sql&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC32'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC33'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC34'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#Mon Sep 19 20:42:12 2011&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC35'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#C:\Users\nmishin\AppData\Local\Perl\Padre\plugins\Padre\Plugin\My.pm&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC36'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#11619&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC37'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC38'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$ref_replace_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC39'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$in_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC40'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC41'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;###Change this text&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC42'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$in_text&lt;/span&gt; &lt;span class="o"&gt;=~&lt;/span&gt; &lt;span class="sr"&gt;s{(\w+)}{&amp;#39;$1&amp;#39;,}&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC43'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC44'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$in_text&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC45'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;};&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC46'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC47'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;change_text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$ref_replace_text&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC48'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC49'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC50'&gt;&lt;br/&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;                &lt;/div&gt;&lt;/div&gt;without thinking how they will work in the Padre, and thinking only of the right regular expression and I even wrote a template for it&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; template_of_replace&lt;/h4&gt;  &lt;div class='more-content'&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;template_of_replace&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$main&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$doc&lt;/span&gt;      &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;Padre::&lt;/span&gt;&lt;span class="n"&gt;Current&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;document&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$text&lt;/span&gt;     &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$doc&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;text_get&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$template&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;lt;&amp;lt;&amp;#39;END_MESSAGE&amp;#39;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;&lt;span class="s"&gt;sub word_to_sql {&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC9'&gt;&lt;span class="s"&gt;    my $self = shift;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC10'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC11'&gt;&lt;span class="s"&gt;    my $ref_replace_text = sub {&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC12'&gt;&lt;span class="s"&gt;        my $in_text = shift;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC13'&gt;&lt;span class="s"&gt;        &lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC14'&gt;&lt;span class="s"&gt;        ###Change this text&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC15'&gt;&lt;span class="s"&gt;        $in_text =~ s{(\w+)}{&amp;#39;$1&amp;#39;,};&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC16'&gt;&lt;span class="s"&gt;        &lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC17'&gt;&lt;span class="s"&gt;        &lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC18'&gt;&lt;span class="s"&gt;        return $in_text;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC19'&gt;&lt;span class="s"&gt;    };&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC20'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC21'&gt;&lt;span class="s"&gt;    change_text( $self, $ref_replace_text );&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC22'&gt;&lt;span class="s"&gt;    return;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC23'&gt;&lt;span class="s"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC24'&gt;&lt;span class="s"&gt;END_MESSAGE&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC25'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC26'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$editor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;Padre::&lt;/span&gt;&lt;span class="n"&gt;Current&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;editor&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC27'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$editor&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;ReplaceSelection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC28'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$pos&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$editor&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;GetCurrentPos&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC29'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$editor&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;InsertText&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$pos&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$template&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC30'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC31'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC32'&gt;&lt;br/&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;These macros are greatly simplified my life, especially since the idea for them can be easily found in the sources of the priest, for example in the same plugin perltidy.&lt;p&gt;&lt;span class='step-title'&gt;Find ideas in the source code.&lt;/span&gt;&lt;/p&gt;Padre has a wonderful property, as in Delphi, when you click on the name of the module with the mouse while holding CTRL, and it is in the array @ INC is the module, it opens in the editor and we can see how it is implemented, and in the status bar you can see the path to module on it we can see that all modules are in the Padre directory c:\Strawberry\perl\site\lib\Padre. Better yet, say&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt;  Search-&gt;Find in files CTRL-SHIFT-F...&lt;/h4&gt;  &lt;div class='more-content'&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-qjrL1dHpdys/Tn7eljNa5UI/AAAAAAAACAg/meR4Q5-mqQk/s1600/menu_find.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="334" width="370" src="http://1.bp.blogspot.com/-qjrL1dHpdys/Tn7eljNa5UI/AAAAAAAACAg/meR4Q5-mqQk/s400/menu_find.png" /&gt;&lt;/a&gt;&lt;/div&gt;and then write in the search area, for example, 'Perl Tidy' (the name of a menu item, which theoretically should be in the target module):&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-TrsKLuK6k_w/Tn7gwZX5kJI/AAAAAAAACAo/NQBCbPjvIOs/s1600/find_in_files.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="249" width="400" src="http://3.bp.blogspot.com/-TrsKLuK6k_w/Tn7gwZX5kJI/AAAAAAAACAo/NQBCbPjvIOs/s400/find_in_files.png" /&gt;&lt;/a&gt;&lt;/div&gt;after that you can see the path to the module&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-F4ZFLz_vgJ8/Tn7hd9qiBZI/AAAAAAAACAw/gw8oTJtu71U/s1600/searh_result_padre.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="64" width="400" src="http://2.bp.blogspot.com/-F4ZFLz_vgJ8/Tn7hd9qiBZI/AAAAAAAACAw/gw8oTJtu71U/s400/searh_result_padre.png" /&gt;&lt;/a&gt;&lt;/div&gt;with the required functionality (such as I was looking for work in selected text) and open it in a Padre.  &lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span class='step-title'&gt;Working with a database of Padre&lt;/span&gt;&lt;/p&gt;And the last. At work, I work with DBMS Oracle. Module DBD:: Oracle I have not managed to install on Windows 7, but under cygwin it successfully compiled. And his tests I run in cygwin. I also use sqlsh. It turns out that if you call cygwin's perl, then DBD:: Oracle can see and connect to the database. Using&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; cygwin_here.bat&lt;/h4&gt;  &lt;div class='more-content'&gt; &lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="k"&gt;echo&lt;/span&gt; &lt;span class="k"&gt;off&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;&lt;span class="c"&gt;REM --- cygwin_here.bat ------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&lt;span class="c"&gt;REM function: Start Cygwin in current directory&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;&lt;span class="c"&gt;REM args:     - 1..9&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&lt;span class="c"&gt;REM Setting `CHERE_INVOKING&amp;#39; prevents /etc/profile from issuing `cd $HOME&amp;#39;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nv"&gt;CHERE_INVOKING&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;C:\cygwin\bin\bash --login -i &lt;span class="nv"&gt;%1&lt;/span&gt; &lt;span class="nv"&gt;%2&lt;/span&gt; &lt;span class="nv"&gt;%3&lt;/span&gt; &lt;span class="nv"&gt;%4&lt;/span&gt; &lt;span class="nv"&gt;%5&lt;/span&gt; &lt;span class="nv"&gt;%6&lt;/span&gt; &lt;span class="nv"&gt;%7&lt;/span&gt; &lt;span class="nv"&gt;%8&lt;/span&gt; &lt;span class="nv"&gt;%9&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC9'&gt;&lt;br/&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;You can call from cygwin using sqlsh&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; interactive mode&lt;/h4&gt;  &lt;div class='more-content'&gt; &lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;c:\cygwin\cygwin_here.bat sqlsh  -d DBI:Oracle&lt;span class="nl"&gt;:BUSINESS&lt;/span&gt;.DE.DB.COM -u mishnik -p password -i &lt;span class="p"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;:\Users\nmishin\Documents\svn\misc\chunk_status\sqlsh_command.sqlsh&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;As well as refusing to load bash_completion.sh (mv /etc/profile.d/bash_completion.sh{,.disabled}) , which has accelerated running cygwin.And then I wrote a wrapper in Padre:&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; execute_selection_in_oracle&lt;/h4&gt;  &lt;div class='more-content'&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;execute_selection_in_oracle&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$main&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;# Tidy the current selected text&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$current&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$main&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$text&lt;/span&gt;    &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$current&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;# Generate the About dialog&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC9'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#my $about = Wx::AboutDialogInfo-&amp;gt;new;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC10'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#$about-&amp;gt;SetName(&amp;#39;Show_selection&amp;#39;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC11'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC12'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nn"&gt;File::&lt;/span&gt;&lt;span class="n"&gt;Temp&lt;/span&gt; &lt;span class="sx"&gt;qw/ tempfile tempdir /&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC13'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC14'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#$fh = tempfile();&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC15'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#my ( $fh, $out_file ) = tempfile();&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC16'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nb"&gt;undef&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$out_file&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tempfile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC17'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;tmp_sql_XXXXXX&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC18'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;OPEN&lt;/span&gt;   &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC19'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;UNLINK&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC20'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;DIR&lt;/span&gt;    &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;c:/Users/nmishin/Documents/git/cygwin&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC21'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;SUFFIX&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;.dat&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC22'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC23'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC24'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nb"&gt;undef&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$log_file&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tempfile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC25'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;tmp_log_XXXXXX&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC26'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;OPEN&lt;/span&gt;   &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC27'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;UNLINK&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC28'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;DIR&lt;/span&gt;    &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;c:/Users/nmishin/Documents/git/cygwin&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC29'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;SUFFIX&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;.dat&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC30'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC31'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC32'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nb"&gt;undef&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$query_file&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tempfile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC33'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;tmp_qry_XXXXXX&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC34'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;OPEN&lt;/span&gt;   &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC35'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;UNLINK&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC36'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;DIR&lt;/span&gt;    &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;c:/Users/nmishin/Documents/git/cygwin&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC37'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;SUFFIX&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;.dat&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC38'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC39'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC40'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#my $out_file = get_temp_filename();&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC41'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$text&lt;/span&gt; &lt;span class="o"&gt;!~&lt;/span&gt; &lt;span class="sr"&gt;m/;/xms&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$text&lt;/span&gt; &lt;span class="o"&gt;.=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;;&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC42'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC43'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#print &amp;quot;file:$filename\n&amp;quot;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC44'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$sqlsqh_command&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;lt;&amp;lt;&amp;quot;END_SQLSQH_COMMAND&amp;quot;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC45'&gt;&lt;span class="s"&gt;set multiline on;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC46'&gt;&lt;span class="s"&gt;ALTER SESSION SET NLS_DATE_FORMAT = &amp;#39;DD.MM.YYYY HH24:MI&amp;#39;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC47'&gt;&lt;span class="s"&gt;ALTER SESSION SET CURRENT_SCHEMA = RWA_OWNER;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC48'&gt;&lt;span class="s"&gt;set log-mode box;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC49'&gt;&lt;span class="s"&gt;log commands $log_file;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC50'&gt;&lt;span class="s"&gt;log queries $query_file;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC51'&gt;&lt;span class="s"&gt;$text&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC52'&gt;&lt;span class="s"&gt;no log;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC53'&gt;&lt;span class="s"&gt;exit;    &lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC54'&gt;&lt;span class="s"&gt;END_SQLSQH_COMMAND&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC55'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC56'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$main_object&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$main&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC57'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$main_object&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$sqlsqh_command&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC58'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC59'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nb"&gt;open&lt;/span&gt; &lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$out&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;&amp;gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$out_file&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC60'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;croak&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Couldn&amp;#39;t open &amp;#39;$out_file&amp;#39;: $OS_ERROR&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC61'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;$out&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="nv"&gt;$sqlsqh_command&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC62'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;croak&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Couldn&amp;#39;t write &amp;#39;$out_file&amp;#39;: $OS_ERROR&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC63'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nb"&gt;close&lt;/span&gt; &lt;span class="nv"&gt;$out&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;croak&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Couldn&amp;#39;t close &amp;#39;$out_file&amp;#39;: $OS_ERROR&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC64'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC65'&gt;&lt;span class="c1"&gt;#c:\cygwin\cygwin_here.bat sqlsh  -d DBI:Oracle:BUSINESS.DE.DB.COM -u mishnik -p password -i &amp;lt; c:\Users\nmishin\Documents\svn\misc\chunk_status\sqlsh_command.sqlsh&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC66'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC67'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$exec_shell&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC68'&gt;&lt;span class="sx"&gt;q{c:\cygwin\cygwin_here.bat sqlsh  -d DBI:Oracle:BUSINESS.DE.DB.COM -u mishnik -p password -i &amp;lt; }&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC69'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="nv"&gt;$out_file&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC70'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC71'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$main_object&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$exec_shell&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC72'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$cmd_file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;c:/Users/nmishin/Documents/git/cygwin/sqlsh_command.bat&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC73'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nb"&gt;open&lt;/span&gt; &lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$cmd_out&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;&amp;gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$cmd_file&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC74'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;croak&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Couldn&amp;#39;t open &amp;#39;$cmd_file&amp;#39;: $OS_ERROR&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC75'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;$cmd_out&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="nv"&gt;$exec_shell&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC76'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;croak&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Couldn&amp;#39;t write &amp;#39;$cmd_file&amp;#39;: $OS_ERROR&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC77'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nb"&gt;close&lt;/span&gt; &lt;span class="nv"&gt;$cmd_out&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;croak&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Couldn&amp;#39;t close &amp;#39;$cmd_file&amp;#39;: $OS_ERROR&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC78'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC79'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#    $main-&amp;gt;message($exec_shell);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC80'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC81'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;run_shell&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$exec_shell&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC82'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC83'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$sql_result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$text&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;\n&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="n"&gt;read_file&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$query_file&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC84'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC85'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$editor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;Padre::&lt;/span&gt;&lt;span class="n"&gt;Current&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;editor&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC86'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$editor&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;ReplaceSelection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC87'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$pos&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$editor&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;GetCurrentPos&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC88'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$editor&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;InsertText&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$pos&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$sql_result&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC89'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC90'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC91'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC92'&gt;&lt;br/&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;                &lt;/div&gt;&lt;/div&gt;And now on Ctrl-Alt-F7 I have selected in the Padre select run in gywin 's TV sqlsh and the result is returned to the editor. Super. I'm happy.&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; Final menu_plugins_simple&lt;/h4&gt;  &lt;div class='more-content'&gt; &lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;menu_plugins_simple&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;plugin_name&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;About&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;show_about&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;&amp;amp;Replace_slash&amp;#39;&lt;/span&gt;      &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;replace_slash&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;Replace_start_digit&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;replace_start_digit&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;quot;Run_perlcritic_from_activeperl\tCtrl-Alt-F3&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC9'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;run_perlcritic_from_activeperl&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC10'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;Template_of_module&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;template_of_module&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC11'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC12'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;quot;Jira_link\tCtrl-Alt-F5&amp;quot;&lt;/span&gt;     &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;jira_link2&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC13'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;quot;Replace_Space\tCtrl-Alt-F6&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;seplace_space&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC14'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;quot;Word_to_sql&amp;quot;&lt;/span&gt;                &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;word_to_sql&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC15'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;quot;Template_of_replace&amp;quot;&lt;/span&gt;        &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;template_of_replace&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC16'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;quot;Execute_selection_in_Oracle\tCtrl-Alt-F7&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC17'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;execute_selection_in_oracle&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC18'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC19'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;Date_time&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;date_time&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC20'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC21'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;# &amp;#39;A Sub-Menu...&amp;#39; =&amp;gt; [&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC22'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#     &amp;#39;Sub-Menu Entry&amp;#39; =&amp;gt; sub { $self-&amp;gt;yet_another_method },&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC23'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;# ],&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC24'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC25'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC26'&gt;&lt;br/&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;On github is the &lt;a href="https://gist.github.com/1240515"&gt;final&lt;/a&gt; version of my plugin. Thank you all for your attention.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8835728927691465740-4649735762468897379?l=padrepm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://padrepm.blogspot.com/feeds/4649735762468897379/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://padrepm.blogspot.com/2011/09/my-life-is-in-editor-padre.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8835728927691465740/posts/default/4649735762468897379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8835728927691465740/posts/default/4649735762468897379'/><link rel='alternate' type='text/html' href='http://padrepm.blogspot.com/2011/09/my-life-is-in-editor-padre.html' title='My life is in the editor Padre'/><author><name>Николай Мишин</name><uri>http://www.blogger.com/profile/02168558551212889081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_b49UI8NHWqw/SXjSdA_v7dI/AAAAAAAAALk/hMZx18ViwJc/S220/mishin.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-qjrL1dHpdys/Tn7eljNa5UI/AAAAAAAACAg/meR4Q5-mqQk/s72-c/menu_find.png' height='72' width='72'/><thr:total>0</thr:total><georss:featurename>город Москва, Россия</georss:featurename><georss:point>55.755786 37.617633</georss:point><georss:box>55.4713955 36.988665499999996 56.0401765 38.2466005</georss:box></entry><entry><id>tag:blogger.com,1999:blog-8835728927691465740.post-6250363629983239083</id><published>2011-09-24T15:56:00.000-07:00</published><updated>2011-09-27T00:47:41.525-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='perlcritic'/><category scheme='http://www.blogger.com/atom/ns#' term='plugin'/><category scheme='http://www.blogger.com/atom/ns#' term='padre'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='cygwin'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><category scheme='http://www.blogger.com/atom/ns#' term='activestate'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Моя жизнь в редакторе Padre</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;link href="http://assets.github.com/stylesheets/bundle_gist.css" media="screen" rel="stylesheet" type="text/css"&gt;&lt;/link&gt; &lt;link href="http://help.github.com/shared/css/documentation.css" media="screen" rel="stylesheet" type="text/css"&gt;    &lt;script src="http://help.github.com/shared/js/jquery.js" type="text/javascript"&gt;&lt;/script&gt;    &lt;script src="http://help.github.com/shared/js/documentation.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script src="http://help.github.com/js/help.js" type="text/javascript"&gt;&lt;/script&gt;    &lt;link href="http://help.github.com/shared/css/pygments.css" media="screen" rel="stylesheet" type="text/css"&gt;    &lt;link rel="stylesheet" href="http://help.github.com/css/style.css" type="text/css" media="screen"&gt;    &lt;link rel="stylesheet" href="http://help.github.com/css/print.css" type="text/css" media="print"&gt;&lt;p&gt;&lt;span class='step-title'&gt;Мое знакомство с Padre&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Конечно для программирования на Perl раньше я использовал и &lt;a class="zem_slink" href="http://www.gnu.org/software/emacs" rel="homepage" title="Emacs"&gt;Emacs&lt;/a&gt; и &lt;a class="zem_slink" href="http://www.vim.org/" rel="homepage" title="Vim (text editor)"&gt;Vim&lt;/a&gt; (и использую его сейчас, если нужно что-то быстро отредактировать или просмотреть).Все началось с того, что я посмотрел &lt;a href="http://youtu.be/MKXtGgWi7qs" &gt;ролик&lt;/a&gt; гениального программиста Сабо Габора , но плагин к Padre у меня не заработал.&lt;/p&gt;&lt;p&gt;&lt;span class='step-title'&gt;YAPC::EU RIGA 2011&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Я поехал на &lt;a href="http://yapceurope.lv/ye2011/" &gt;YAPC::Europe 2011 “Modern Perl”&lt;/a&gt; и там, на кахатоне, Габор объяснил в чем моя ошибка, оказывается я не мог активировать (My.pm) плагин, потому что у меня просто стояла старая версия в переменной и нужно было поменять с 0.40 на 0.66&lt;/p&gt;&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; В следующем коде плагина My.pm&lt;/h4&gt;  &lt;div class='more-content'&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;padre_interfaces&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;	&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;		&lt;span class="s"&gt;&amp;#39;Padre::Plugin&amp;#39;&lt;/span&gt;   &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;0.66&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;		&lt;span class="s"&gt;&amp;#39;Padre::Constant&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;0.66&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;	&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&lt;br/&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;Отлично, подумал я, самый простой плагин, показывающий информацию о Padre (self-&gt;show_about) &lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; заработал:&lt;/h4&gt;  &lt;div class='more-content'&gt; &lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;show_about&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;	&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;	&lt;span class="c1"&gt;# Locate this plugin&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;	&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;File::&lt;/span&gt;&lt;span class="n"&gt;Spec&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;catfile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;		&lt;span class="nn"&gt;Padre::Constant::&lt;/span&gt;&lt;span class="n"&gt;CONFIG_DIR&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;		&lt;span class="sx"&gt;qw{ plugins Padre Plugin My.pm }&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;	&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC9'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC10'&gt;	&lt;span class="c1"&gt;# Generate the About dialog&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC11'&gt;	&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$about&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;Wx::&lt;/span&gt;&lt;span class="n"&gt;AboutDialogInfo&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC12'&gt;	&lt;span class="nv"&gt;$about&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;SetName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;My Plug-in&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC13'&gt;	&lt;span class="nv"&gt;$about&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;SetDescription&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;END_MESSAGE&amp;quot;&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC14'&gt;&lt;span class="n"&gt;The&lt;/span&gt; &lt;span class="n"&gt;philosophy&lt;/span&gt; &lt;span class="n"&gt;behind&lt;/span&gt; &lt;span class="n"&gt;Padre&lt;/span&gt; &lt;span class="n"&gt;is&lt;/span&gt; &lt;span class="n"&gt;that&lt;/span&gt; &lt;span class="n"&gt;every&lt;/span&gt; &lt;span class="n"&gt;Perl&lt;/span&gt; &lt;span class="n"&gt;programmer&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC15'&gt;&lt;span class="n"&gt;should&lt;/span&gt; &lt;span class="n"&gt;be&lt;/span&gt; &lt;span class="n"&gt;able&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;easily&lt;/span&gt; &lt;span class="n"&gt;modify&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;improve&lt;/span&gt; &lt;span class="n"&gt;their&lt;/span&gt; &lt;span class="n"&gt;own&lt;/span&gt; &lt;span class="n"&gt;editor&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC16'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC17'&gt;&lt;span class="n"&gt;To&lt;/span&gt; &lt;span class="n"&gt;help&lt;/span&gt; &lt;span class="n"&gt;you&lt;/span&gt; &lt;span class="n"&gt;get&lt;/span&gt; &lt;span class="n"&gt;started&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;we&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;ve provided you with your own plug-in.&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC18'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC19'&gt;&lt;span class="s"&gt;It is located in your configuration directory at:&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC20'&gt;&lt;span class="s"&gt;$path&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC21'&gt;&lt;span class="s"&gt;Open it with with Padre and you&amp;#39;&lt;/span&gt;&lt;span class="n"&gt;ll&lt;/span&gt; &lt;span class="n"&gt;see&lt;/span&gt; &lt;span class="n"&gt;an&lt;/span&gt; &lt;span class="n"&gt;explanation&lt;/span&gt; &lt;span class="n"&gt;on&lt;/span&gt; &lt;span class="n"&gt;how&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;add&lt;/span&gt; &lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC22'&gt;&lt;span class="n"&gt;END_MESSAGE&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC23'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC24'&gt;	&lt;span class="c1"&gt;# Show the About dialog&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC25'&gt;	&lt;span class="nn"&gt;Wx::&lt;/span&gt;&lt;span class="n"&gt;AboutBox&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$about&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC26'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC27'&gt;	&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC28'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;Может быть можно придумать, что-нибудь поинтереснее.В начале, у меня была просто задача замены слешей с \ (windows) на / (unix) задача элементарная, но мне нужно было менять их часто и хотелось один раз уже написать регулярное выражение для этого, повесить на пункт меню, а лучше наshortcut и забыть об этом.&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; и я написал простой макрос&lt;/h4&gt;  &lt;div class='more-content'&gt; &lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;replace_slash&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$main&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$doc&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;Padre::&lt;/span&gt;&lt;span class="n"&gt;Current&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;document&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$doc&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;text_get&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$text&lt;/span&gt; &lt;span class="o"&gt;=~&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="c1"&gt;#\\#/#g;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$doc&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;text_set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$text&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC9'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC10'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC11'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC12'&gt;&lt;br/&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;                &lt;/div&gt;&lt;/div&gt;я его привязал к меню&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; меню&lt;/h4&gt;  &lt;div class='more-content'&gt;   &lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;menu_plugins_simple&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;plugin_name&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;About&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;show_about&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;&amp;amp;Replace_slash&amp;#39;&lt;/span&gt;      &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;replace_slash&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;и был счастлив, в любое время я его мог теперь вызвать из меню.Потом мне понадобилось удалять цифры после копирования текста из VI c параметром set nu&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; replace_start_digit&lt;/h4&gt;  &lt;div class='more-content'&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;replace_start_digit&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$main&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$doc&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;Padre::&lt;/span&gt;&lt;span class="n"&gt;Current&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;document&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$doc&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;text_get&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$text&lt;/span&gt; &lt;span class="o"&gt;=~&lt;/span&gt; &lt;span class="sr"&gt;s/^\s*[0-9]//mg&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$doc&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;text_set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$text&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC9'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC10'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC11'&gt;&lt;br/&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span class='step-title'&gt;PerlCritic - Graphical Interface from ActivePerl&lt;/span&gt;&lt;/p&gt;Дальше я вспомнил, что мне очень нравится perlcritic от ActiveState и хотелось бы вызывать его прямо из Padre&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; run_perlcritic_from_activeperl &lt;/h4&gt;  &lt;div class='more-content'&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;run_perlcritic_from_activeperl&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$main&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$doc&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;Padre::&lt;/span&gt;&lt;span class="n"&gt;Current&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;document&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$filename&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$doc&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$exec_shell&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC9'&gt;&lt;span class="sx"&gt;q{C:\Perl\bin\wperl.exe -x &amp;quot;C:\Perl\bin\perlcritic-gui&amp;quot; c:\Users\nmishin\Documents\git\perlcritic\perlcritic_profile.perlcriticrc }&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC10'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="nv"&gt;$filename&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC11'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="sx"&gt;q{ --run}&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC12'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$main&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$exec_shell&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC13'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC14'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;run_shell&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$exec_shell&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC15'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC16'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC17'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC18'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;run_shell&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC19'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$cmd&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;@_&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC20'&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nn"&gt;IPC::&lt;/span&gt;&lt;span class="n"&gt;Open3&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;open3&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC21'&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="n"&gt;Carp&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC22'&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="n"&gt;English&lt;/span&gt; &lt;span class="sx"&gt;qw(-no_match_vars)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC23'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC24'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;@args&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC25'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$EMPTY&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sx"&gt;q{}&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC26'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$ret&lt;/span&gt;   &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;undef&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC27'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$HIS_IN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$HIS_OUT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$HIS_ERR&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$EMPTY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$EMPTY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$EMPTY&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC28'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$childpid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;open3&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$HIS_IN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$HIS_OUT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$HIS_ERR&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$cmd&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;@args&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC29'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$ret&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;$HIS_IN&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;stuff\n&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC30'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nb"&gt;close&lt;/span&gt; &lt;span class="nv"&gt;$HIS_IN&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;croak&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;unable to close: $HIS_IN $ERRNO&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC31'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;;&lt;/span&gt;    &lt;span class="c1"&gt;# Give end of file to kid.&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC32'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC33'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$HIS_OUT&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC34'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;@outlines&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sr"&gt;&amp;lt;$HIS_OUT&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;    &lt;span class="c1"&gt;# Read till EOF.&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC35'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$ret&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;quot; STDOUT:\n&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;@outlines&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;\n&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC36'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC37'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$HIS_ERR&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC38'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;@errlines&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sr"&gt;&amp;lt;$HIS_ERR&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;    &lt;span class="c1"&gt;# XXX: block potential if massive&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC39'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$ret&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;quot; STDERR:\n&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;@errlines&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;\n&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC40'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC41'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nb"&gt;close&lt;/span&gt; &lt;span class="nv"&gt;$HIS_OUT&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;croak&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;unable to close: $HIS_OUT $ERRNO&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC42'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC43'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#close $HIS_ERR or croak &amp;quot;unable to close: $HIS_ERR $ERRNO&amp;quot;;#bad..todo&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC44'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nb"&gt;waitpid&lt;/span&gt; &lt;span class="nv"&gt;$childpid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC45'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$CHILD_ERROR&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC46'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$ret&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;That child exited with wait status of $CHILD_ERROR\n&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC47'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC48'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC49'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;                &lt;/div&gt;&lt;/div&gt;а на &lt;a href="http://padre.perlide.org/irc.html"&gt;padre irc&lt;/a&gt;  мне помогли, сказав, как вызывать команду клавиатурной комбинациейэто был талантливейший хакер &lt;a href="http://irclog.perlgeek.de/padre/2011-09-14#i_4428990"&gt;Alias&lt;/a&gt;и я смог, &lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; написав так, &lt;/h4&gt;  &lt;div class='more-content'&gt; &lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;menu_plugins_simple&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;plugin_name&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;About&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;show_about&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;&amp;amp;Replace_slash&amp;#39;&lt;/span&gt;      &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;replace_slash&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;Replace_start_digit&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;replace_start_digit&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;quot;Run_perlcritic_from_activeperl\tCtrl-Alt-F3&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC9'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;run_perlcritic_from_activeperl&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC10'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC11'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC12'&gt;&lt;br/&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;                &lt;/div&gt;&lt;/div&gt; запускать perlcritic с визуальным интерфейсом из Activestate прямо из Padre по Ctrl-Alt-F3.&lt;p&gt;&lt;span class='step-title'&gt;Улучшаем макрос замены (редактирования)&lt;/span&gt;&lt;/p&gt;У макроса, описанного выше есть недостаток - он делает изменения только с 1 строкой текста, я решил исправить это допущение, добавив функцию&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; change_text&lt;/h4&gt;  &lt;div class='more-content'&gt; &lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;change_text&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;         &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$replace_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$main&lt;/span&gt;         &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$doc&lt;/span&gt;          &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;Padre::&lt;/span&gt;&lt;span class="n"&gt;Current&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;document&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$text&lt;/span&gt;         &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$doc&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;text_get&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;@all_text_lines&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;split&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;\n&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$text&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC9'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$out_line&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC10'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC11'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#change every line in text&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC12'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$current_line&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;@all_text_lines&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC13'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$out_line&lt;/span&gt; &lt;span class="o"&gt;.=&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nv"&gt;$replace_text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$current_line&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC14'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC15'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC16'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$doc&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;text_set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$out_line&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC17'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC18'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC19'&gt;&lt;br/&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;                &lt;/div&gt;&lt;/div&gt;и теперь можно было писать функции следующего &lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; вида &lt;/h4&gt;  &lt;div class='more-content'&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;jira_link2&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$ref_replace_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$in_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$in_text&lt;/span&gt; &lt;span class="o"&gt;=~&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&lt;span class="sr"&gt;s{([A-Z]+-\d+)\s+}{[$1\|http://jira.gto.intranet.db.com:2020/jira/browse/$1]}&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$in_text&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC9'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;};&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC10'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC11'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;change_text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$ref_replace_text&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC12'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC13'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC14'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC15'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;selace_space&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC16'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC17'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC18'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$ref_replace_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC19'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$in_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC20'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC21'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;###Change this text&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC22'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$in_text&lt;/span&gt; &lt;span class="o"&gt;=~&lt;/span&gt; &lt;span class="sr"&gt;s{(\w+)\s+(\w+)\s+(\w+)}{$1,$2,$3}&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC23'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC24'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$in_text&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC25'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;};&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC26'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC27'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;change_text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$ref_replace_text&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC28'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC29'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC30'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC31'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;word_to_sql&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC32'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC33'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC34'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#Mon Sep 19 20:42:12 2011&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC35'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#C:\Users\nmishin\AppData\Local\Perl\Padre\plugins\Padre\Plugin\My.pm&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC36'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#11619&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC37'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC38'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$ref_replace_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC39'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$in_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC40'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC41'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;###Change this text&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC42'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$in_text&lt;/span&gt; &lt;span class="o"&gt;=~&lt;/span&gt; &lt;span class="sr"&gt;s{(\w+)}{&amp;#39;$1&amp;#39;,}&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC43'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC44'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$in_text&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC45'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;};&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC46'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC47'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;change_text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$ref_replace_text&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC48'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC49'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC50'&gt;&lt;br/&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;                &lt;/div&gt;&lt;/div&gt;не задумываясь, как они будут работать в Padre, а размышляя только о правильно регулярном выражениии я даже написал темплейт для нее&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; template_of_replace&lt;/h4&gt;  &lt;div class='more-content'&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;template_of_replace&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$main&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$doc&lt;/span&gt;      &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;Padre::&lt;/span&gt;&lt;span class="n"&gt;Current&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;document&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$text&lt;/span&gt;     &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$doc&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;text_get&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$template&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;lt;&amp;lt;&amp;#39;END_MESSAGE&amp;#39;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;&lt;span class="s"&gt;sub word_to_sql {&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC9'&gt;&lt;span class="s"&gt;    my $self = shift;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC10'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC11'&gt;&lt;span class="s"&gt;    my $ref_replace_text = sub {&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC12'&gt;&lt;span class="s"&gt;        my $in_text = shift;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC13'&gt;&lt;span class="s"&gt;        &lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC14'&gt;&lt;span class="s"&gt;        ###Change this text&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC15'&gt;&lt;span class="s"&gt;        $in_text =~ s{(\w+)}{&amp;#39;$1&amp;#39;,};&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC16'&gt;&lt;span class="s"&gt;        &lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC17'&gt;&lt;span class="s"&gt;        &lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC18'&gt;&lt;span class="s"&gt;        return $in_text;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC19'&gt;&lt;span class="s"&gt;    };&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC20'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC21'&gt;&lt;span class="s"&gt;    change_text( $self, $ref_replace_text );&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC22'&gt;&lt;span class="s"&gt;    return;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC23'&gt;&lt;span class="s"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC24'&gt;&lt;span class="s"&gt;END_MESSAGE&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC25'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC26'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$editor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;Padre::&lt;/span&gt;&lt;span class="n"&gt;Current&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;editor&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC27'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$editor&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;ReplaceSelection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC28'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$pos&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$editor&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;GetCurrentPos&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC29'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$editor&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;InsertText&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$pos&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$template&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC30'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC31'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC32'&gt;&lt;br/&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;Эти макросы значительно упростили мне жизнь, тем более, что идеи для них можно легко найти в исходниках падре, например в том же плагине perltidy.&lt;p&gt;&lt;span class='step-title'&gt;Поиск идей в исходном коде.&lt;/span&gt;&lt;/p&gt;Padre обладает удивительным свойством , как в Delphi, при нажатии на название модуля мышкой с зажатой клавишей CTRL, он в массиве @INC находит этот модуль, открывает его в редакторе и мы можем видеть, как он реализован, а в статусной строке можно видеть путь к модулю, по нему можно увидеть, что все модули Padre лежат в директории c:\Strawberry\perl\site\lib\Padre. А еще лучше сказать&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt;  Search-&gt;Find in files CTRL-SHIFT-F...&lt;/h4&gt;  &lt;div class='more-content'&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-qjrL1dHpdys/Tn7eljNa5UI/AAAAAAAACAg/meR4Q5-mqQk/s1600/menu_find.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="334" width="370" src="http://1.bp.blogspot.com/-qjrL1dHpdys/Tn7eljNa5UI/AAAAAAAACAg/meR4Q5-mqQk/s400/menu_find.png" /&gt;&lt;/a&gt;&lt;/div&gt;и далее в области поиска написать, например, 'Perl Tidy' (название элемента меню, которое по идее должно быть в искомом модуле):&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-TrsKLuK6k_w/Tn7gwZX5kJI/AAAAAAAACAo/NQBCbPjvIOs/s1600/find_in_files.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="249" width="400" src="http://3.bp.blogspot.com/-TrsKLuK6k_w/Tn7gwZX5kJI/AAAAAAAACAo/NQBCbPjvIOs/s400/find_in_files.png" /&gt;&lt;/a&gt;&lt;/div&gt;после этого можно увидеть путь к модулю&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-F4ZFLz_vgJ8/Tn7hd9qiBZI/AAAAAAAACAw/gw8oTJtu71U/s1600/searh_result_padre.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="64" width="400" src="http://2.bp.blogspot.com/-F4ZFLz_vgJ8/Tn7hd9qiBZI/AAAAAAAACAw/gw8oTJtu71U/s400/searh_result_padre.png" /&gt;&lt;/a&gt;&lt;/div&gt; с нужным функционалом (например я искал как работать в выделенным текстом) и открыть его в Padre.  &lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span class='step-title'&gt;Работа с базой данных из Padre&lt;/span&gt;&lt;/p&gt;И последнее. На работе я работаю с СУБД Oracle. Модуль DBD::Oracle мне так и не удалось установить на Windows 7, а под cygwin он успешно откомпилировался. И свои тесты я запускаю в cygwin.Также я использую sqlsh. Оказалось, что если вызывать cygwin'овский perl, то DBD::Oracle виден и можно коннектиться к базе.Используя&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; cygwin_here.bat&lt;/h4&gt;  &lt;div class='more-content'&gt; &lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="k"&gt;echo&lt;/span&gt; &lt;span class="k"&gt;off&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;&lt;span class="c"&gt;REM --- cygwin_here.bat ------------------------------------------------------&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&lt;span class="c"&gt;REM function: Start Cygwin in current directory&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;&lt;span class="c"&gt;REM args:     - 1..9&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&lt;span class="c"&gt;REM Setting `CHERE_INVOKING&amp;#39; prevents /etc/profile from issuing `cd $HOME&amp;#39;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nv"&gt;CHERE_INVOKING&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;C:\cygwin\bin\bash --login -i &lt;span class="nv"&gt;%1&lt;/span&gt; &lt;span class="nv"&gt;%2&lt;/span&gt; &lt;span class="nv"&gt;%3&lt;/span&gt; &lt;span class="nv"&gt;%4&lt;/span&gt; &lt;span class="nv"&gt;%5&lt;/span&gt; &lt;span class="nv"&gt;%6&lt;/span&gt; &lt;span class="nv"&gt;%7&lt;/span&gt; &lt;span class="nv"&gt;%8&lt;/span&gt; &lt;span class="nv"&gt;%9&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC9'&gt;&lt;br/&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;Можно вызвать sqlsh из cygwin используя &lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; интерактивный режим&lt;/h4&gt;  &lt;div class='more-content'&gt; &lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;c:\cygwin\cygwin_here.bat sqlsh  -d DBI:Oracle&lt;span class="nl"&gt;:BUSINESS&lt;/span&gt;.DE.DB.COM -u mishnik -p password -i &lt;span class="p"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;:\Users\nmishin\Documents\svn\misc\chunk_status\sqlsh_command.sqlsh&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;А также отказавшись от загрузки bash_completion.sh (mv /etc/profile.d/bash_completion.sh{,.disabled}) , что ускорило загрузку cygwin'а.И далее я  написал обертку в Padre:&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; execute_selection_in_oracle&lt;/h4&gt;  &lt;div class='more-content'&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;execute_selection_in_oracle&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$main&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;# Tidy the current selected text&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$current&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$main&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$text&lt;/span&gt;    &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$current&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;# Generate the About dialog&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC9'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#my $about = Wx::AboutDialogInfo-&amp;gt;new;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC10'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#$about-&amp;gt;SetName(&amp;#39;Show_selection&amp;#39;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC11'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC12'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nn"&gt;File::&lt;/span&gt;&lt;span class="n"&gt;Temp&lt;/span&gt; &lt;span class="sx"&gt;qw/ tempfile tempdir /&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC13'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC14'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#$fh = tempfile();&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC15'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#my ( $fh, $out_file ) = tempfile();&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC16'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nb"&gt;undef&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$out_file&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tempfile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC17'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;tmp_sql_XXXXXX&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC18'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;OPEN&lt;/span&gt;   &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC19'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;UNLINK&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC20'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;DIR&lt;/span&gt;    &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;c:/Users/nmishin/Documents/git/cygwin&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC21'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;SUFFIX&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;.dat&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC22'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC23'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC24'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nb"&gt;undef&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$log_file&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tempfile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC25'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;tmp_log_XXXXXX&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC26'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;OPEN&lt;/span&gt;   &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC27'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;UNLINK&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC28'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;DIR&lt;/span&gt;    &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;c:/Users/nmishin/Documents/git/cygwin&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC29'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;SUFFIX&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;.dat&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC30'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC31'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC32'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nb"&gt;undef&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$query_file&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tempfile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC33'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;tmp_qry_XXXXXX&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC34'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;OPEN&lt;/span&gt;   &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC35'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;UNLINK&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC36'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;DIR&lt;/span&gt;    &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;c:/Users/nmishin/Documents/git/cygwin&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC37'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;SUFFIX&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;.dat&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC38'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC39'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC40'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#my $out_file = get_temp_filename();&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC41'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$text&lt;/span&gt; &lt;span class="o"&gt;!~&lt;/span&gt; &lt;span class="sr"&gt;m/;/xms&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$text&lt;/span&gt; &lt;span class="o"&gt;.=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;;&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC42'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC43'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#print &amp;quot;file:$filename\n&amp;quot;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC44'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$sqlsqh_command&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;lt;&amp;lt;&amp;quot;END_SQLSQH_COMMAND&amp;quot;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC45'&gt;&lt;span class="s"&gt;set multiline on;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC46'&gt;&lt;span class="s"&gt;ALTER SESSION SET NLS_DATE_FORMAT = &amp;#39;DD.MM.YYYY HH24:MI&amp;#39;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC47'&gt;&lt;span class="s"&gt;ALTER SESSION SET CURRENT_SCHEMA = RWA_OWNER;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC48'&gt;&lt;span class="s"&gt;set log-mode box;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC49'&gt;&lt;span class="s"&gt;log commands $log_file;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC50'&gt;&lt;span class="s"&gt;log queries $query_file;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC51'&gt;&lt;span class="s"&gt;$text&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC52'&gt;&lt;span class="s"&gt;no log;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC53'&gt;&lt;span class="s"&gt;exit;    &lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC54'&gt;&lt;span class="s"&gt;END_SQLSQH_COMMAND&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC55'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC56'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$main_object&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$main&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC57'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$main_object&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$sqlsqh_command&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC58'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC59'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nb"&gt;open&lt;/span&gt; &lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$out&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;&amp;gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$out_file&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC60'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;croak&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Couldn&amp;#39;t open &amp;#39;$out_file&amp;#39;: $OS_ERROR&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC61'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;$out&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="nv"&gt;$sqlsqh_command&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC62'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;croak&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Couldn&amp;#39;t write &amp;#39;$out_file&amp;#39;: $OS_ERROR&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC63'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nb"&gt;close&lt;/span&gt; &lt;span class="nv"&gt;$out&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;croak&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Couldn&amp;#39;t close &amp;#39;$out_file&amp;#39;: $OS_ERROR&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC64'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC65'&gt;&lt;span class="c1"&gt;#c:\cygwin\cygwin_here.bat sqlsh  -d DBI:Oracle:BUSINESS.DE.DB.COM -u mishnik -p password -i &amp;lt; c:\Users\nmishin\Documents\svn\misc\chunk_status\sqlsh_command.sqlsh&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC66'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC67'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$exec_shell&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC68'&gt;&lt;span class="sx"&gt;q{c:\cygwin\cygwin_here.bat sqlsh  -d DBI:Oracle:BUSINESS.DE.DB.COM -u mishnik -p password -i &amp;lt; }&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC69'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="nv"&gt;$out_file&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC70'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC71'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$main_object&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$exec_shell&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC72'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$cmd_file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;c:/Users/nmishin/Documents/git/cygwin/sqlsh_command.bat&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC73'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nb"&gt;open&lt;/span&gt; &lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$cmd_out&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;&amp;gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$cmd_file&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC74'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;croak&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Couldn&amp;#39;t open &amp;#39;$cmd_file&amp;#39;: $OS_ERROR&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC75'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;$cmd_out&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="nv"&gt;$exec_shell&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC76'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;croak&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Couldn&amp;#39;t write &amp;#39;$cmd_file&amp;#39;: $OS_ERROR&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC77'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nb"&gt;close&lt;/span&gt; &lt;span class="nv"&gt;$cmd_out&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;croak&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Couldn&amp;#39;t close &amp;#39;$cmd_file&amp;#39;: $OS_ERROR&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC78'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC79'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#    $main-&amp;gt;message($exec_shell);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC80'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC81'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;run_shell&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$exec_shell&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC82'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC83'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$sql_result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$text&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;\n&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="n"&gt;read_file&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$query_file&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC84'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC85'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$editor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;Padre::&lt;/span&gt;&lt;span class="n"&gt;Current&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;editor&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC86'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$editor&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;ReplaceSelection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC87'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$pos&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$editor&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;GetCurrentPos&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC88'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$editor&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;InsertText&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$pos&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$sql_result&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC89'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC90'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC91'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC92'&gt;&lt;br/&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;                &lt;/div&gt;&lt;/div&gt;И теперь на Ctrl-Alt-F7 у меня выделенный в Padre select запускается в gywin' овском sqlsh и результат возвращается в редактор. Супер. Я счастлив.&lt;div class='more-info'&gt;  &lt;h4 class='compressed'&gt; Итоговое menu_plugins_simple&lt;/h4&gt;  &lt;div class='more-content'&gt; &lt;div class="highlight"&gt;&lt;pre&gt;&lt;div class='line' id='LC1'&gt;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="nf"&gt;menu_plugins_simple&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC2'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;my&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC3'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;plugin_name&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC4'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;About&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;show_about&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC5'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC6'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;&amp;amp;Replace_slash&amp;#39;&lt;/span&gt;      &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;replace_slash&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC7'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;Replace_start_digit&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;replace_start_digit&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC8'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;quot;Run_perlcritic_from_activeperl\tCtrl-Alt-F3&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC9'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;run_perlcritic_from_activeperl&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC10'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;Template_of_module&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;template_of_module&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC11'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC12'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;quot;Jira_link\tCtrl-Alt-F5&amp;quot;&lt;/span&gt;     &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;jira_link2&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC13'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;quot;Replace_Space\tCtrl-Alt-F6&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;seplace_space&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC14'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;quot;Word_to_sql&amp;quot;&lt;/span&gt;                &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;word_to_sql&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC15'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;quot;Template_of_replace&amp;quot;&lt;/span&gt;        &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;template_of_replace&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC16'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;quot;Execute_selection_in_Oracle\tCtrl-Alt-F7&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC17'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;execute_selection_in_oracle&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC18'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC19'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="s"&gt;&amp;#39;Date_time&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;sub &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$self&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;date_time&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC20'&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class='line' id='LC21'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;# &amp;#39;A Sub-Menu...&amp;#39; =&amp;gt; [&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC22'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;#     &amp;#39;Sub-Menu Entry&amp;#39; =&amp;gt; sub { $self-&amp;gt;yet_another_method },&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC23'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;# ],&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC24'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC25'&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class='line' id='LC26'&gt;&lt;br/&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;На github лежит &lt;a href="https://gist.github.com/1240515"&gt;конечный&lt;/a&gt; вариант моего плагина. Всем спасибо за внимание.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8835728927691465740-6250363629983239083?l=padrepm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://padrepm.blogspot.com/feeds/6250363629983239083/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://padrepm.blogspot.com/2011/09/padre.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8835728927691465740/posts/default/6250363629983239083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8835728927691465740/posts/default/6250363629983239083'/><link rel='alternate' type='text/html' href='http://padrepm.blogspot.com/2011/09/padre.html' title='Моя жизнь в редакторе Padre'/><author><name>Николай Мишин</name><uri>http://www.blogger.com/profile/02168558551212889081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_b49UI8NHWqw/SXjSdA_v7dI/AAAAAAAAALk/hMZx18ViwJc/S220/mishin.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-qjrL1dHpdys/Tn7eljNa5UI/AAAAAAAACAg/meR4Q5-mqQk/s72-c/menu_find.png' height='72' width='72'/><thr:total>0</thr:total><georss:featurename>город Москва, Россия</georss:featurename><georss:point>55.755786 37.617633</georss:point><georss:box>55.4713955 36.988665499999996 56.0401765 38.2466005</georss:box></entry></feed>
