<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Комментарии: Интересные примеры на Perl</title>
	<atom:link href="http://eax.me/perl-hacks/feed/" rel="self" type="application/rss+xml" />
	<link>http://eax.me/perl-hacks/</link>
	<description>Операционные системы, скрипты,  компьютерные сети, безопасность, алгоритмы, блогинг, девайсы и пр</description>
	<lastBuildDate>Thu, 17 May 2012 12:23:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>Автор: Безумный Программист</title>
		<link>http://eax.me/perl-hacks/comment-page-1/#comment-109</link>
		<dc:creator>Безумный Программист</dc:creator>
		<pubDate>Sun, 10 Jan 2010 04:37:34 +0000</pubDate>
		<guid isPermaLink="false">http://eax.me/?p=28#comment-109</guid>
		<description>Нет предела совершенству. Как говориться, за код, написанный пол года назад, хочется самому себе руки оторвать. Вернусь к этому посту в апреле :)&lt;br&gt;&lt;br&gt;Маленькая поправочка:&lt;br&gt;# use List::Util;&lt;br&gt;use List::Util qw/shuffle/;</description>
		<content:encoded><![CDATA[<p>Нет предела совершенству. Как говориться, за код, написанный пол года назад, хочется самому себе руки оторвать. Вернусь к этому посту в апреле :)</p>
<p>Маленькая поправочка:<br /># use List::Util;<br />use List::Util qw/shuffle/;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Alexey</title>
		<link>http://eax.me/perl-hacks/comment-page-1/#comment-107</link>
		<dc:creator>Alexey</dc:creator>
		<pubDate>Sun, 10 Jan 2010 04:26:58 +0000</pubDate>
		<guid isPermaLink="false">http://eax.me/?p=28#comment-107</guid>
		<description>На самом деле очень неоднозначные примеры.&lt;br&gt;&lt;br&gt;&lt;br&gt;4. Вызывать stat внутри sort{} - это не комильфо. Питоновское решение из комментария выше красивей.&lt;br&gt;&lt;br&gt;5. Удалить повторяющиеся элементы в массиве.&lt;br&gt;Тут есть побочный эффект - еще и меняется порядок элементов.&lt;br&gt;&lt;br&gt;6. Перемешать элементы массива. Долой велосипеды:&lt;br&gt;use List::Util;&lt;br&gt;@list = shuffle @list&lt;br&gt;&lt;br&gt;7. &quot;$rand = $links[int rand() * scalar @links];&quot;&lt;br&gt;Ужасный код. Я давно программирую на perl, но мой взгляд споткнулся на этом выражении и вместо того, чтобы думать над общей идеей я начинаю вспоминать приоритеты операций и думать, как это варажение будет восприматься компилятором. В общем, лакончиность есть, красота не появилась (имхо).</description>
		<content:encoded><![CDATA[<p>На самом деле очень неоднозначные примеры.</p>
<p>4. Вызывать stat внутри sort{} &#8212; это не комильфо. Питоновское решение из комментария выше красивей.</p>
<p>5. Удалить повторяющиеся элементы в массиве.<br />Тут есть побочный эффект &#8212; еще и меняется порядок элементов.</p>
<p>6. Перемешать элементы массива. Долой велосипеды:<br />use List::Util;<br />@list = shuffle @list</p>
<p>7. &#171;$rand = $links[int rand() * scalar @links];&#187;<br />Ужасный код. Я давно программирую на perl, но мой взгляд споткнулся на этом выражении и вместо того, чтобы думать над общей идеей я начинаю вспоминать приоритеты операций и думать, как это варажение будет восприматься компилятором. В общем, лакончиность есть, красота не появилась (имхо).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Безумный Программист</title>
		<link>http://eax.me/perl-hacks/comment-page-1/#comment-106</link>
		<dc:creator>Безумный Программист</dc:creator>
		<pubDate>Sun, 10 Jan 2010 02:54:58 +0000</pubDate>
		<guid isPermaLink="false">http://eax.me/?p=28#comment-106</guid>
		<description>Является ли Perl write-only языком - это большой вопрос. Писать плохие программы можно на любом языке (с). В частности, обфускация php или html или javascript-кода - достаточно частое явление, что не делает эти языки write-only.&lt;br&gt;&lt;br&gt;За примеры на Python спасибо. Сам я на нем не пишу, но подозревал, что аналогичные задачи на Python решаются не хуже, чем на Perl. Рад, что он оправдал мои ожидания :)</description>
		<content:encoded><![CDATA[<p>Является ли Perl write-only языком &#8212; это большой вопрос. Писать плохие программы можно на любом языке (с). В частности, обфускация php или html или javascript-кода &#8212; достаточно частое явление, что не делает эти языки write-only.</p>
<p>За примеры на Python спасибо. Сам я на нем не пишу, но подозревал, что аналогичные задачи на Python решаются не хуже, чем на Perl. Рад, что он оправдал мои ожидания :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Саня</title>
		<link>http://eax.me/perl-hacks/comment-page-1/#comment-105</link>
		<dc:creator>Саня</dc:creator>
		<pubDate>Sun, 10 Jan 2010 02:30:56 +0000</pubDate>
		<guid isPermaLink="false">http://eax.me/?p=28#comment-105</guid>
		<description>Почитал Ваш пост &lt;a href=&quot;http://habrahabr.ru/blogs/perl/80328/&quot; rel=&quot;nofollow&quot;&gt;http://habrahabr.ru/blogs/perl/80328/&lt;/a&gt;&lt;br&gt;Главный недостаток Perl в том, что это wtite-only язык:&lt;br&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Write-only_language&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Write-only_language&lt;/a&gt;&lt;br&gt;&lt;br&gt;Просто ради интереса сделал те же задачки на Python.&lt;br&gt;&lt;br&gt;&lt;br&gt;#!/usr/bin/env python&lt;br&gt;# coding=utf-8&lt;br&gt;&lt;br&gt;# 1. Проверить, существует ли элемент в массиве &lt;br&gt;el = 10&lt;br&gt;arr = [10, 20, 30, 40]&lt;br&gt;print el in arr&lt;br&gt;&lt;br&gt;# 2. Удалить из массива arr элементы, которые есть в массиве skip&lt;br&gt;skip = [30, 40, 50, 60]&lt;br&gt;arr = [i for i in (set(arr) - set(skip))]&lt;br&gt;print arr&lt;br&gt;&lt;br&gt;# 3. Скрипт замены строк в тексте&lt;br&gt;import re&lt;br&gt;p = re.compile(r&#039;d+&#039;)&lt;br&gt;print re.sub(p, &#039;a number&#039;, &#039;2 * 2 = 4&#039;)&lt;br&gt;&lt;br&gt;# 4. Вывести список имен файлов и каталогов в заданной директории, &lt;br&gt;# отсортированный по дате последнего доступа.&lt;br&gt;import os&lt;br&gt;from stat import ST_ATIME&lt;br&gt;names = [(name, os.stat(name)[ST_ATIME]) for name in os.listdir(&#039;.&#039;)]&lt;br&gt;names.sort(key=lambda x: x[1])&lt;br&gt;print names&lt;br&gt;&lt;br&gt;&lt;br&gt;# 5. Удалить повторяющиеся элементы в массиве.&lt;br&gt;arr1 = [1, 2, 3, 1, 3]&lt;br&gt;arr2 = [i for i in set(arr1)]&lt;br&gt;print arr2&lt;br&gt;&lt;br&gt;# 6. Перемешать элементы массива&lt;br&gt;import random&lt;br&gt;a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]&lt;br&gt;random.shuffle(a)&lt;br&gt;&lt;br&gt;# 7. Выбрать случайный элемент в массиве&lt;br&gt;print random.choice(a)&lt;br&gt;&lt;br&gt;# 8. Аналог PHP функции urlencode&lt;br&gt;# &lt;a href=&quot;http://docs.python.org/library/urllib.html#urllib.urlencode&quot; rel=&quot;nofollow&quot;&gt;http://docs.python.org/library/urllib.html#urll...&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>Почитал Ваш пост <a href="http://habrahabr.ru/blogs/perl/80328/" rel="nofollow">http://habrahabr.ru/blogs/perl/80328/</a><br />Главный недостаток Perl в том, что это wtite-only язык:<br /><a href="http://en.wikipedia.org/wiki/Write-only_language" rel="nofollow">http://en.wikipedia.org/wiki/Write-only_language</a></p>
<p>Просто ради интереса сделал те же задачки на Python.</p>
<p>#!/usr/bin/env python<br /># coding=utf-8</p>
<p># 1. Проверить, существует ли элемент в массиве <br />el = 10<br />arr = [10, 20, 30, 40]<br />print el in arr</p>
<p># 2. Удалить из массива arr элементы, которые есть в массиве skip<br />skip = [30, 40, 50, 60]<br />arr = [i for i in (set(arr) - set(skip))]<br />print arr</p>
<p># 3. Скрипт замены строк в тексте<br />import re<br />p = re.compile(r&#39;d+&#39;)<br />print re.sub(p, &#39;a number&#39;, &#39;2 * 2 = 4&#39;)</p>
<p># 4. Вывести список имен файлов и каталогов в заданной директории, <br /># отсортированный по дате последнего доступа.<br />import os<br />from stat import ST_ATIME<br />names = [(name, os.stat(name)[ST_ATIME]) for name in os.listdir(&#39;.&#39;)]<br />names.sort(key=lambda x: x[1])<br />print names</p>
<p># 5. Удалить повторяющиеся элементы в массиве.<br />arr1 = [1, 2, 3, 1, 3]<br />arr2 = [i for i in set(arr1)]<br />print arr2</p>
<p># 6. Перемешать элементы массива<br />import random<br />a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]<br />random.shuffle(a)</p>
<p># 7. Выбрать случайный элемент в массиве<br />print random.choice(a)</p>
<p># 8. Аналог PHP функции urlencode<br /># <a href="http://docs.python.org/library/urllib.html#urllib.urlencode" rel="nofollow"></a><a href="http://docs.python.org/library/urllib.html#urll" rel="nofollow">http://docs.python.org/library/urllib.html#urll</a>&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Eax</title>
		<link>http://eax.me/perl-hacks/comment-page-1/#comment-74</link>
		<dc:creator>Eax</dc:creator>
		<pubDate>Tue, 08 Dec 2009 00:00:54 +0000</pubDate>
		<guid isPermaLink="false">http://eax.me/?p=28#comment-74</guid>
		<description>Спасибо за ваш комментарий.&lt;br&gt;1. для многократного использования&lt;br&gt;4. а если нужно отсортировать по другому критерию?&lt;br&gt;5. в perl, как всегда, есть много способов сделать одно и то же :)</description>
		<content:encoded><![CDATA[<p>Спасибо за ваш комментарий.<br />1. для многократного использования<br />4. а если нужно отсортировать по другому критерию?<br />5. в perl, как всегда, есть много способов сделать одно и то же :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: maard</title>
		<link>http://eax.me/perl-hacks/comment-page-1/#comment-72</link>
		<dc:creator>maard</dc:creator>
		<pubDate>Mon, 07 Dec 2009 22:19:07 +0000</pubDate>
		<guid isPermaLink="false">http://eax.me/?p=28#comment-72</guid>
		<description>брр&lt;br&gt;1. зачем inarr, если он полностью дублирует grep?&lt;br&gt;4. а чем не подходит ls -t ? (disclaimer: под windows установлен MSYS/MinGW, поэтому имею всё те же unix comman line tools).&lt;br&gt;5. мы строим промужуточный список, что затратно. ++$cnt{$_} for @links - и короче и экономичнее.</description>
		<content:encoded><![CDATA[<p>брр<br />1. зачем inarr, если он полностью дублирует grep?<br />4. а чем не подходит ls -t ? (disclaimer: под windows установлен MSYS/MinGW, поэтому имею всё те же unix comman line tools).<br />5. мы строим промужуточный список, что затратно. ++$cnt{$_} for @links &#8212; и короче и экономичнее.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: maard</title>
		<link>http://eax.me/perl-hacks/comment-page-1/#comment-977</link>
		<dc:creator>maard</dc:creator>
		<pubDate>Mon, 07 Dec 2009 14:19:00 +0000</pubDate>
		<guid isPermaLink="false">http://eax.me/?p=28#comment-977</guid>
		<description>брр
1. зачем inarr, если он полностью дублирует grep?
4. а чем не подходит ls -t ? (disclaimer: под windows установлен MSYS/MinGW, поэтому имею всё те же unix comman line tools).
5. мы строим промужуточный список, что затратно. ++$cnt{$_} for @links - и короче и экономичнее.


</description>
		<content:encoded><![CDATA[<p>брр<br />
1. зачем inarr, если он полностью дублирует grep?<br />
4. а чем не подходит ls -t ? (disclaimer: под windows установлен MSYS/MinGW, поэтому имею всё те же unix comman line tools).<br />
5. мы строим промужуточный список, что затратно. ++$cnt{$_} for @links &#8212; и короче и экономичнее.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

