<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: perl подстроки</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9586.html</link>
    <description>текстовый файл f.txt содержит ip адреса&lt;br&gt;192.168.100.120&lt;br&gt;172.31.25.12&lt;br&gt;Надо получить 2 массива&lt;br&gt;1 - содержит ip адреса&lt;br&gt;2 - содержит последние октеты ip адресов&lt;br&gt;&lt;br&gt;С первым массивом все понятно &lt;br&gt;open(FILE,f.txt)&lt;br&gt;while(&amp;lt;FILE&amp;gt;)&#123;&lt;br&gt;   my ip_addr = $_;&lt;br&gt;&#125;&lt;br&gt;print &quot;&#064;my_ipaddr&#092;n&quot; ;&lt;br&gt;&lt;br&gt;А вот как собрать массив 2 не понятно &lt;br&gt;Думаю надо читать строку с конца до символа точка &lt;br&gt;Подскажите плиз ! Я в Perl полный 0. &lt;br&gt;</description>

<item>
    <title>perl подстроки (XAnder)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9586.html#5</link>
    <pubDate>Mon, 26 Nov 2012 07:52:25 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt; s/.*&#092;.//; push &#064;last, $_;&#125; $,=&quot;&#092;n&quot;; print &quot;= ips =&quot;, &#064;ips, &quot;= &lt;br&gt;&amp;gt;&amp;gt; last =&quot;, &#064;last, &quot;&quot;;&apos; &lt;br&gt;&amp;gt;&amp;gt; = ips = &lt;br&gt;&amp;gt;&amp;gt; 192.168.100.120 &lt;br&gt;&amp;gt;&amp;gt; 172.31.25.12 &lt;br&gt;&amp;gt;&amp;gt; = last = &lt;br&gt;&amp;gt;&amp;gt; 120 &lt;br&gt;&amp;gt;&amp;gt; 12 &lt;br&gt;&amp;gt;&amp;gt; $ _&#091;/code&#093; &lt;br&gt;&amp;gt; Согласен ! Так красивее и непонятнее &lt;br&gt;&lt;br&gt;Ну да, разумеется конструкции с rindex, substr и особенно print &quot;&#064;ip_addr&#092;n&quot; - это очень понятно и грамотно. Это сарказм, простите.&lt;br&gt;&lt;br&gt;По существу же в вашем коде присутствуют фундаментальные ошибки:&lt;br&gt;&lt;br&gt;&#091;code&#093;my &#064;ip_addr = $_;&#091;/code&#093;&lt;br&gt;&lt;br&gt;Тут вы, вероятно, хотите поместить значение в массив. На самом же деле вы на каждой итерации создаёте новый массив из одного (!) элемента. Именно из-за этого следующая строка выдаёт ожидаемый результат:&lt;br&gt;&lt;br&gt;&#091;code&#093;print &quot;&#064;ip_addr&#092;n&quot; ;&#091;/code&#093;&lt;br&gt;&lt;br&gt;Массив разворачивается в строку и выводится с переводом строки в конце. Но у вас цикл, а значит выводить на каждой итерации нужно не весь массив а отдельный элемент. Но, как замечено выше, у вас в массиве всегда только один элемент. Одна ошибка наложилась на другую, и чудесным образом</description>
</item>

<item>
    <title>perl подстроки (merfi)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9586.html#4</link>
    <pubDate>Mon, 26 Nov 2012 06:09:09 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt; $ cat ips &amp;#124; perl -e &apos;while (&amp;lt;&amp;gt;) &#123;chomp; push &#064;ips, $_; &lt;br&gt;&amp;gt; s/.*&#092;.//; push &#064;last, $_;&#125; $,=&quot;&#092;n&quot;; print &quot;= ips =&quot;, &#064;ips, &quot;= &lt;br&gt;&amp;gt; last =&quot;, &#064;last, &quot;&quot;;&apos; &lt;br&gt;&amp;gt; = ips = &lt;br&gt;&amp;gt; 192.168.100.120 &lt;br&gt;&amp;gt; 172.31.25.12 &lt;br&gt;&amp;gt; = last = &lt;br&gt;&amp;gt; 120 &lt;br&gt;&amp;gt; 12 &lt;br&gt;&amp;gt; $ _&#091;/code&#093; &lt;br&gt;&lt;br&gt;Согласен ! Так красивее и непонятнее&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>perl подстроки (XAnder)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9586.html#3</link>
    <pubDate>Thu, 22 Nov 2012 12:37:26 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Начни с чтения какой ни то книжки про програмлянию. Для начала 10 &lt;br&gt;&amp;gt;&amp;gt; подходов ао 2 часа. Много думать -- обязательно!&lt;br&gt;&amp;gt; А может вот так &lt;br&gt;&amp;gt; ...&lt;br&gt;&lt;br&gt;Книжки всё-таки надо почитать. И думать, да. А потом уже кодить. Но тут-то делать особо нечего:&lt;br&gt;&lt;br&gt;&#091;code&#093;$ cat &amp;gt; ips&lt;br&gt;192.168.100.120&lt;br&gt;172.31.25.12&lt;br&gt;$ cat ips &amp;#124; perl -e &apos;while (&amp;lt;&amp;gt;) &#123;chomp; push &#064;ips, $_; s/.*&#092;.//; push &#064;last, $_;&#125; $,=&quot;&#092;n&quot;; print &quot;= ips =&quot;, &#064;ips, &quot;= last =&quot;, &#064;last, &quot;&quot;;&apos;&lt;br&gt;= ips =&lt;br&gt;192.168.100.120&lt;br&gt;172.31.25.12&lt;br&gt;= last =&lt;br&gt;120&lt;br&gt;12&lt;br&gt;$ _&#091;/code&#093;&lt;br&gt;</description>
</item>

<item>
    <title>perl подстроки (merfi)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9586.html#2</link>
    <pubDate>Wed, 21 Nov 2012 11:22:17 GMT</pubDate>
    <description>&amp;gt;&amp;gt;собрать массив 2 не понятно &lt;br&gt;&amp;gt;&amp;gt; Думаю надо читать строку с конца &lt;br&gt;&amp;gt; &#123; &lt;br&gt;&amp;gt; Начни с чтения какой ни то книжки про програмлянию. Для начала 10 &lt;br&gt;&amp;gt; подходов ао 2 часа. Много думать -- обязательно!&lt;br&gt;&amp;gt; Потом попробуй, следующие 10 подходов!, применить полученные к своему &quot;читать строку с &lt;br&gt;&amp;gt; конца&quot;.&lt;br&gt;&amp;gt; &#125; Lather, rinse, repeat () &lt;br&gt;&lt;br&gt;А может вот так &lt;br&gt;#!/usr/bin/perl -w&lt;br&gt;open(FILE,&quot;f.txt&quot;);&lt;br&gt;while(&amp;lt;FILE&amp;gt;)&lt;br&gt;&#123;&lt;br&gt;  chomp;&lt;br&gt;  my &#064;ip_addr = $_;&lt;br&gt;  print &quot;&#064;ip_addr&#092;n&quot; ;&lt;br&gt;foreach $arg (&#064;ip_addr)&lt;br&gt;&#123;&lt;br&gt;      $x = rindex($arg,&quot;.&quot;);&lt;br&gt;   my &#064;ip_oktet = substr($arg,$x+1) ;&lt;br&gt;       print &quot;&#064;ip_oktet&#092;n&quot; ;&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;&#125;&lt;br&gt;close(FILE);&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>perl подстроки (Andrey Mitrofanov)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/9586.html#1</link>
    <pubDate>Wed, 21 Nov 2012 08:45:42 GMT</pubDate>
    <description>&amp;gt;собрать массив 2 не понятно &lt;br&gt;&amp;gt; Думаю надо читать строку с конца&lt;br&gt;&lt;br&gt;&#123;&lt;br&gt;Начни с чтения какой ни то книжки про програмлянию. Для начала 10 подходов ао 2 часа. Много думать -- обязательно!&lt;br&gt;&lt;br&gt;Потом попробуй, следующие 10 подходов!, применить полученные к своему &quot;читать строку с конца&quot;.&lt;br&gt;&lt;br&gt;&#125; Lather, rinse, repeat ()&lt;br&gt;</description>
</item>

</channel>
</rss>
