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

<channel>
	<title>Unix pin &#187; Programming &#8212; Perl</title>
	<atom:link href="http://www.unixpin.com/wordpress/category/perl/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.unixpin.com/wordpress</link>
	<description>unix: советы, примеры, решения</description>
	<lastBuildDate>Wed, 21 Dec 2011 14:05:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>ssd vs cXtXdX</title>
		<link>http://www.unixpin.com/wordpress/2010/06/09/ssd-vs-cxtxdx/</link>
		<comments>http://www.unixpin.com/wordpress/2010/06/09/ssd-vs-cxtxdx/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 10:37:26 +0000</pubDate>
		<dc:creator>ikorolev</dc:creator>
				<category><![CDATA[Hardware - Sun]]></category>
		<category><![CDATA[Programming - Perl]]></category>
		<category><![CDATA[Unix - Solaris]]></category>
		<category><![CDATA[dad]]></category>
		<category><![CDATA[device]]></category>
		<category><![CDATA[disk]]></category>
		<category><![CDATA[driver]]></category>
		<category><![CDATA[Hardware->Sun]]></category>
		<category><![CDATA[iostat]]></category>
		<category><![CDATA[path]]></category>
		<category><![CDATA[scsi]]></category>
		<category><![CDATA[sd]]></category>
		<category><![CDATA[socal]]></category>
		<category><![CDATA[ssd]]></category>
		<category><![CDATA[Unix->Solaris]]></category>
		<category><![CDATA[диск]]></category>
		<category><![CDATA[драйвер]]></category>
		<category><![CDATA[устройство]]></category>

		<guid isPermaLink="false">http://www.unixpin.com/wordpress/?p=675</guid>
		<description><![CDATA[Solaris в логах иногда оставляет сообщения, типа Jun 22 04:07:11 midframe scsi: [ID 799468 kern.info] ssd251 at scsi_vhci0: name g600015d000230b000000000000001707, bus address g600015d000230b000000000000001707 ссылающиеся на ssd имя диска (или на sd, или dad). Как найти соответсвие между экземпляром драйвера и путем, определяемым через cXtXdX ? Написал для этого небольшой скрипт: $ ./whatdisk.pl Device Driver Device [...]]]></description>
			<content:encoded><![CDATA[<p>Solaris в логах иногда оставляет сообщения, типа<br />
<code>Jun 22 04:07:11<br />
midframe scsi: [ID 799468 kern.info] <strong>ssd251</strong> at scsi_vhci0: name g600015d000230b000000000000001707, bus address g600015d000230b000000000000001707</code><br />
ссылающиеся на ssd  имя диска (или на sd, или dad). Как найти соответсвие между экземпляром драйвера и путем, определяемым через cXtXdX ?<br />
Написал для этого небольшой скрипт:<br />
<code>$ ./whatdisk.pl<br />
Device  Driver  Device SN       Device ID<br />
c1t0d0  ssd0    0744BB20JC      id1,ssd@n5000cca004141e9c<br />
c1t1d0  ssd1    0816S52E4D      id1,ssd@n2000001d38707617<br />
c1t3d0  ssd3    062244LX6L      id1,ssd@n20000014c3d9c52d<br />
c1t5d0  ssd4    062244LNCF      id1,ssd@n20000014c3d9c1e5<br />
c1t2d0  ssd5    062244LQ4W      id1,ssd@n20000014c3d9caa1<br />
</code><br />
<a href="http://www.unixpin.com/wordpress/wp-content/uploads/2010/06/whatdisk.pl_.txt"><strong>Закачать whatdisk.pl</strong></a></p>
<p>Ссылки в тему:<br />
<a href="http://www.tune-it.ru/web/myaut/home/-/blogs/%D0%BD%D0%B5%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE-%D0%BE%D0%B1-%D0%B8%D0%BC%D0%B5%D0%BD%D0%B0%D1%85-%D0%B4%D0%B8%D1%81%D0%BA%D0%BE%D0%B2%D1%8B%D1%85-%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%81%D1%82%D0%B2-%D0%B2-solaris?_33_redirect=%2Fweb%2Fmyaut%2Fhome" target="_blank">Немного об именах дисковых устройств в Solaris</a><br />
<a href="http://docs.sun.com/app/docs/doc/816-5166/iostat-1m?l=en&amp;a=view" target="_blank">man iostat</a><br />
<a href="http://docs.sun.com/app/docs/doc/816-5177/sd-7d?l=en&amp;a=view" target="_blank">man sd</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpin.com/wordpress/2010/06/09/ssd-vs-cxtxdx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как сделать выполняемый exe-файл из perl-скрипта ?</title>
		<link>http://www.unixpin.com/wordpress/2009/10/31/exe-from-perl/</link>
		<comments>http://www.unixpin.com/wordpress/2009/10/31/exe-from-perl/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 11:06:54 +0000</pubDate>
		<dc:creator>ikorolev</dc:creator>
				<category><![CDATA[Programming - Perl]]></category>
		<category><![CDATA[exe]]></category>
		<category><![CDATA[executable]]></category>
		<category><![CDATA[make]]></category>
		<category><![CDATA[PAR]]></category>
		<category><![CDATA[perl2cc]]></category>
		<category><![CDATA[perl2exe]]></category>
		<category><![CDATA[perlcc]]></category>
		<category><![CDATA[pp]]></category>
		<category><![CDATA[tkpp]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[выполняемый]]></category>
		<category><![CDATA[выполнять]]></category>

		<guid isPermaLink="false">http://www.unixpin.com/wordpress/?p=532</guid>
		<description><![CDATA[Есть такой инструмент &#8212; PAR Packager , и сделать exe-шник с его помощью проще простого: C:\ pp -o filename.exe filename.pl Не помню, входит ли утилитка в состав ActivePerl. Если что &#8212; запускаете ppm из командной строки и устанавливаете PAR. Для любителей рисовать окошки из perl &#8212; есть логичное продолжение &#8212; tkpp. Недостаток конечно есть &#8212; [...]]]></description>
			<content:encoded><![CDATA[<p>Есть такой инструмент &#8212; <a href="http://search.cpan.org/~smueller/PAR-Packer/lib/pp.pm">PAR Packager</a> , и сделать exe-шник с его помощью проще простого:</p>
<p><code>C:\ pp -o filename.exe filename.pl</code></p>
<p>Не помню, входит ли утилитка в состав  <a href="http://www.activestate.com/activeperl/">ActivePerl</a>. Если что &#8212; запускаете ppm из командной строки и устанавливаете <strong>PAR</strong>. Для любителей рисовать окошки из perl &#8212; есть логичное продолжение &#8212; tkpp. Недостаток конечно есть &#8212; размер exe-шника, да и скорость выполнения &#8212; будет точно такой же, как и у perl-скрипта.</p>
<p>Что еще можно использовать?</p>
<p>1. Когда-то, для этого же я использовал perl2exe от  IndigoStar. Но так как это коммерческий продукт, то по окончании программа выплевывала строчку о том, что это &#171;незарегистрированная версия&#187;. К тому же, как отмечают продвинутые камрады &#8212; <a href="http://www.google.com/search?q=perl2exe+insecure">достаточно просто раскомпилировать обратно и получить исходники</a>.</p>
<p>2. Есть такая утилитка &#8212; perlcc. Генерирует исходник на C, который можно потом собрать с помощью компилятора. К сожалению, существует не для всех версий perl &#8212; последняя версия <a href="http://search.cpan.org/~nwclark/perl-5.8.9/utils/perlcc.PL">5.8.9</a> (я когда-то пробовал этот путь, но что-то там получалось не очень весело, типа компилировалось только с VisualStudio , плюс еще какой-то геморой с либами, может быть сейчас что-то и изменилось). Но с точки зрения размера выполняемого файла &#8212; без вариантов ;)<br />
ЗЫ &#8212; только что попробовал скомпилить скриптик в 2 строки под Solaris &#8212;  компилится, но при выполнении  падает в корку ;(, так что ситуация далека от идеала.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpin.com/wordpress/2009/10/31/exe-from-perl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Снова perl. Немного о встроенных переменных</title>
		<link>http://www.unixpin.com/wordpress/2009/08/25/perl-again/</link>
		<comments>http://www.unixpin.com/wordpress/2009/08/25/perl-again/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 10:37:42 +0000</pubDate>
		<dc:creator>ikorolev</dc:creator>
				<category><![CDATA[Programming - Perl]]></category>
		<category><![CDATA[Unix - HPUX]]></category>
		<category><![CDATA[Unix - Linux]]></category>
		<category><![CDATA[Unix - Solaris]]></category>
		<category><![CDATA[Unix - Tru64]]></category>
		<category><![CDATA[perlvar]]></category>
		<category><![CDATA[var]]></category>
		<category><![CDATA[variable]]></category>
		<category><![CDATA[версия]]></category>
		<category><![CDATA[встренные]]></category>
		<category><![CDATA[встроеная]]></category>
		<category><![CDATA[встроенная]]></category>
		<category><![CDATA[выполнения]]></category>
		<category><![CDATA[имя]]></category>
		<category><![CDATA[массив]]></category>
		<category><![CDATA[переменная]]></category>
		<category><![CDATA[переменные]]></category>
		<category><![CDATA[перл]]></category>
		<category><![CDATA[поля]]></category>
		<category><![CDATA[программы]]></category>
		<category><![CDATA[среда]]></category>
		<category><![CDATA[считать]]></category>
		<category><![CDATA[хэш]]></category>

		<guid isPermaLink="false">http://www.unixpin.com/wordpress/?p=500</guid>
		<description><![CDATA[По мотивам стандартной документации Perlvar. Считать целиком файл в переменную: open (MOCK, $filename) or die "$!"; local $/; # переопределяем встроенную переменную "разделитель строк" ($/ или $INPUT_RECORD_SEPARATOR или $RS) $_ =&#60;MOCK&#62; ;    # захавать моск файл целиком close (MOCK); Напечатать содержимое массива: @a=qw( 1 2fewf wf g ag f); local $,="\n"; # переопределяем встроенную [...]]]></description>
			<content:encoded><![CDATA[<p>По мотивам стандартной документации <a href="http://perldoc.perl.org/perlvar.html">Perlvar</a>.</p>
<p>Считать целиком файл в переменную:</p>
<p><code>open (MOCK, $filename) or die "$!";<br />
local $/;<br />
# переопределяем встроенную переменную "разделитель строк" ($/ или $INPUT_RECORD_SEPARATOR или $RS)<br />
$_ =&lt;MOCK&gt; ;    # захавать <del datetime="2009-08-25T09:47:50+00:00">моск </del>файл целиком<br />
close (MOCK);</code></p>
<p>Напечатать содержимое массива:<br />
<code>@a=qw( 1 2fewf wf g ag f);<br />
local $,="\n";<br />
# переопределяем встроенную переменную "разделитель полей" ($, или $OUTPUT_FIELD_SEPARATOR или $OFS)<br />
print @a;</code><br />
<span id="more-500"></span><br />
Печатать все строки после строки 25<br />
<code>perl -n -e 'print if $.&gt;25' file.txt  # используем встроенную переменную "номер текущей строки" ($. или $INPUT_LINE_NUMBER или $NR)</code></p>
<p>Напечатать переменные среды:<br />
perl -e &#8216;while ( ($a,$b)=each(%ENV) ) { print &#171;$a=$b\n&#187;; }&#8217;; # Используем встроенный хэш %ENV, который содержит переменные среды окружения</p>
<p>Использовать имя программы:<br />
<code>print "Usage: $0 [-k|--kill-all-humans]\n";<br />
# используем встроенную переменную "имя исполняемой программы" ($0 или $PROGRAM_NAME)</code></p>
<p>Посмотреть версию perl:<br />
<code>print $];<br />
print $^V;</code></p>
<p>Посмотреть операционную систему:<br />
<code>print $^O;<br />
print POSIX::uname()</code>;</p>
<p>Посмотреть, когда была запущена программа:<br />
<code>print $^T;<br />
# в секундах с 1970 года, смотри time(). Встроенная переменная $^T или $BASETIME</code></p>
<p>Напечатать переменные среды:<br />
<code>perl -e 'while ( ($a,$b)=each(%ENV) ) { print "$a=$b\n"; }';<br />
# Используем встроенный хэш %ENV<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpin.com/wordpress/2009/08/25/perl-again/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Как вычислить разницу между двумя датами?</title>
		<link>http://www.unixpin.com/wordpress/2009/03/19/date-substract/</link>
		<comments>http://www.unixpin.com/wordpress/2009/03/19/date-substract/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 07:41:14 +0000</pubDate>
		<dc:creator>ikorolev</dc:creator>
				<category><![CDATA[Programming - Perl]]></category>
		<category><![CDATA[date]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[subtract]]></category>
		<category><![CDATA[two]]></category>
		<category><![CDATA[вычесть]]></category>
		<category><![CDATA[вычитать]]></category>
		<category><![CDATA[дату]]></category>
		<category><![CDATA[даты]]></category>
		<category><![CDATA[день]]></category>
		<category><![CDATA[дней]]></category>
		<category><![CDATA[дни]]></category>
		<category><![CDATA[как]]></category>
		<category><![CDATA[разницу]]></category>

		<guid isPermaLink="false">http://www.unixpin.com/wordpress/?p=377</guid>
		<description><![CDATA[Иногда требуется вычислить разницу в днях между двумя датами: $ perl -e &#8216;use Date::Calc qw(:all); print Delta_Days(2007,8,17, 2009,3,20)&#8217; 581 или, если неустановлен модуль Date::Calc, то $ perl -e &#8216;use POSIX; $y0=2007; $m0=8; $d0=17; $y1=2009; $m1=3; $d1=20; printf( &#171;%i\n&#187;, POSIX::difftime( POSIX::mktime(0,0,0,$d1,$m1-1,$y1-1900), POSIX::mktime(0,0,0,$d0,$m0-1,$y0-1900) ) / 86400 );&#8217; 581]]></description>
			<content:encoded><![CDATA[<p>Иногда требуется вычислить разницу в днях между двумя датами:</p>
<p>$ perl -e &#8216;use Date::Calc qw(:all); print  Delta_Days(2007,8,17,    2009,3,20)&#8217;<br />
581<br />
или, если неустановлен модуль Date::Calc, то</p>
<p>$ perl -e &#8216;use POSIX; $y0=2007; $m0=8; $d0=17; $y1=2009; $m1=3; $d1=20; printf( &#171;%i\n&#187;, POSIX::difftime( POSIX::mktime(0,0,0,$d1,$m1-1,$y1-1900), POSIX::mktime(0,0,0,$d0,$m0-1,$y0-1900) ) / 86400 );&#8217;<br />
581</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpin.com/wordpress/2009/03/19/date-substract/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Сравнить содержимое файлов в каталогах</title>
		<link>http://www.unixpin.com/wordpress/2009/02/27/howto-compare-files-content-in-directories/</link>
		<comments>http://www.unixpin.com/wordpress/2009/02/27/howto-compare-files-content-in-directories/#comments</comments>
		<pubDate>Fri, 27 Feb 2009 13:20:59 +0000</pubDate>
		<dc:creator>ikorolev</dc:creator>
				<category><![CDATA[Programming - Perl]]></category>
		<category><![CDATA[Programming - Shell]]></category>
		<category><![CDATA[Unix - HPUX]]></category>
		<category><![CDATA[Unix - Linux]]></category>
		<category><![CDATA[Unix - Solaris]]></category>
		<category><![CDATA[Unix - Tru64]]></category>
		<category><![CDATA[check]]></category>
		<category><![CDATA[compare]]></category>
		<category><![CDATA[comparedirs]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[directory]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[folder]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[tree]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[бесплатно]]></category>
		<category><![CDATA[дерево]]></category>
		<category><![CDATA[измененное]]></category>
		<category><![CDATA[как]]></category>
		<category><![CDATA[каталог]]></category>
		<category><![CDATA[нахаляву]]></category>
		<category><![CDATA[проверить]]></category>
		<category><![CDATA[скрипт]]></category>
		<category><![CDATA[содержимое]]></category>
		<category><![CDATA[сравнить]]></category>
		<category><![CDATA[файла]]></category>
		<category><![CDATA[файлов]]></category>
		<category><![CDATA[халява]]></category>

		<guid isPermaLink="false">http://www.unixpin.com/wordpress/?p=359</guid>
		<description><![CDATA[На днях пришлось анализировать два Sun Explorer-а, собранных с одного сервера с периодом в полгода. Так как ничего unix-ового под рукой не было, то попробовал с ходу найти программку, которая сравнивает 2 каталога и выводит отсутствующие файлы и сообственно различия. Вот&#8230; сходу бесплатных утилит не нашлось, пришлось написать на perl. Итак, скрипт, который находит файлы, [...]]]></description>
			<content:encoded><![CDATA[<p>На днях пришлось анализировать два Sun Explorer-а, собранных с одного сервера с периодом в полгода. Так как ничего unix-ового под рукой не было, то попробовал с ходу найти программку, которая сравнивает 2 каталога и выводит отсутствующие файлы и сообственно различия. Вот&#8230; сходу бесплатных утилит не нашлось, пришлось написать на perl. Итак, скрипт, который</p>
<ul> находит файлы, отсутствующие во втором каталоге<br />
находит файлы, отличающиеся по дате модификации и размеру<br />
находит файлы, отличающиеся по содержанию</ul>
<p>Так как написан на perl, то под Windows требует установленного perl (<a href="http://downloads.activestate.com/">ActivePerl</a>, например) или можно скачать <a href="http://www.unixpin.com/wordpress/wp-content/uploads/2009/03/comparedirs.zip">скомпилированный бинарник</a>.</p>
<p><span id="more-359"></span><br />
В STDERR выводит сообщения о наличии и отсутствии файлов.</p>
<p>В STDOUT выводит список различий в контенте файлов.</p>
<p>Пример использования:<br />
C:&gt; comparedirs.pl -content<br />
-d1=c:/explorer.8eeeeee.e25k-2008.05.28.17.56<br />
-d2=c:/explorer.8eeeeee.e25k-2009.01.20.11.24  &gt; c:/tmp/diff.log 2&gt; c:/tmp/messages.log</p>
<p>C:\TEMP&gt;perl comparedirs.pl -d1=c:/temp/2 -d2=c:\temp\1<br />
File C:\temp\1\ndd\udp\aaa do not exist!</p>
<p>C:\TEMP&gt;perl comparedirs.pl -content -d1=c:/temp/2/ndd/ce.6 -d2=c:\temp\1\ndd\ce.6<br />
Files C:\temp\2\ndd\ce.6\accept_jumbo.out and C:\temp\1\ndd\ce.6\accept_jumbo.out have different con<br />
tent<br />
*** C:\temp\2\ndd\ce.6\accept_jumbo.out Wed Feb 18 03:51:32 2009<br />
&#8212; C:\temp\1\ndd\ce.6\accept_jumbo.out Wed May 28 21:06:31 2008<br />
***************<br />
*** 1 ****<br />
! 0<br />
&#8212; 1 &#8212;-<br />
! 1</p>
<p><a href="http://www.unixpin.com/wordpress/wp-content/uploads/2009/02/comparedirspl.txt"><strong>Загрузить скрипт (исходный код)/Download source comparedirs</strong></a></p>
<p><a href="http://www.unixpin.com/wordpress/wp-content/uploads/2009/03/comparedirs.zip"><strong>Загрузить исполняемый файл под Win32/ Download binary for Win32</strong></a></p>
<p>PS аналог на shell примерно такой:<br />
cd /dir1;<br />
for p in `find . -print`; do<br />
if -f /dir1/$p &amp;&amp; -f /dir2/$p; then<br />
diff /dir1/$p /dir2/$p<br />
fi<br />
done</p>
<p>PSPS 02.03.2009 &#8212; Добавил бинарник под windows</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpin.com/wordpress/2009/02/27/howto-compare-files-content-in-directories/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.464 seconds -->

