<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Странное поведение цикла при считываии хэша</title>
    <link>https://opennet.dev/openforum/vsluhforumID9/9451.html</link>
    <description>Здравствуйте, &lt;br&gt;&lt;br&gt;Пытаюсь реализовать своими рукуми первый раз в жизни перл скрипт по заданию начальника.&lt;br&gt;Занятие при  отсутствии знаний оказалось непростым.&lt;br&gt;Изначально задание следующее:&lt;br&gt;Необходимо отследить в логах апача определенные IP аддреса. Есть список этих адресов.&lt;br&gt;Я вчера написал bash скрипт, но он за ночь прошел очень мало, поэтому начальник сказал писать на перле используя Хэш.&lt;br&gt;&lt;br&gt;В хэш я решил занести эти IP адреса из файла в поля ключей. И присвоить им значения 0.&lt;br&gt;По мере парсинга и нахождения значение должно прибавляться к тому ключю который нашло в логе.&lt;br&gt;Для эксперимента взял 7 адресов, создал файл адресов с ними и создал второй файл(анализируемый). В него продублировал те же самые адреса 2 раза&lt;br&gt;&lt;br&gt;Написал кой какой скрипт (после 5ти часов в инете), расставил по нему принтов чтоб понимать как он работает и работает ли вобще. И результат анализа стал выводить в аутпут файл.&lt;br&gt;&lt;br&gt;На определенной  стадии заметил странное поведение. В Выводу принтов в консоль было 8 входов во внешний цикл (где </description>

<item>
    <title>Странное поведение цикла при считываии хэша (ACCA)</title>
    <link>https://opennet.dev/openforum/vsluhforumID9/9451.html#1</link>
    <pubDate>Wed, 09 May 2012 03:27:26 GMT</pubDate>
    <description>&amp;gt; Не могли бы вы посянить что именно происходит и почему скрипт так &lt;br&gt;&amp;gt; себя ведет?&lt;br&gt;&lt;br&gt;Потому, что ты поискал первый ключ до конца файла, а потом искать стало негде.&lt;br&gt;&lt;br&gt;Кроме того, неясно откуда у тебя файл. Если хоть каким-то боком приложена винда - ожидай в конце строки CRLF, с которыми chomp не справляется.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; А вот в таком они почему то заносятся в хэш &lt;br&gt;&amp;gt; 1.197.174.247 0 &lt;br&gt;&lt;br&gt;У хэша нет порядка, он изображает неупорядоченное множество. Более того, в Perl приняты специальные меры, чтобы порядок ключей оказывался случайным при каждом запуске. Поэтому сервера на PHP, Java и всяких .NET можно легко свалить длинным запросом, а Perl - нет.&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; вот сам скрипт &lt;br&gt;&lt;br&gt;В первый раз вижу JavaScript программу, писаную Perl&apos;ом. :)&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; #!/usr/bin/perl -w &lt;br&gt;&amp;gt; use warnings; &lt;br&gt;&lt;br&gt;Это тавтология. Следовало бы&lt;br&gt;&lt;br&gt;&#091;code&#093;&lt;br&gt;#!/usr/bin/perl&lt;br&gt;use warnings; &lt;br&gt;use strict;&lt;br&gt;&#091;/code&#093;&lt;br&gt;&lt;br&gt;Забудешь кого-нибудь из этой пары - есть шанс прокатиться в дурку.&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; my &#037;hash = do &#123; &lt;br&gt;&amp;gt;     open my $f, &apos;&amp;lt;/tmp/1ip&apos; or die $!; &lt;br&gt;&amp;gt;     ma</description>
</item>

</channel>
</rss>
