<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: почему если &#037;tmp=&#037;hash, то изменяются оба??</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9918.html</link>
    <description>доброй ночи&lt;br&gt;присваиваю &#037;tmp=&#037;hash и работаю ТОЛЬКО с &#037;tmp, но при этом данные в &#037;hash также меняются.&lt;br&gt;не меняются они, только если прогнать while по всему &#037;hash и поскалярно перекинуть данные в &#037;tmp&lt;br&gt;т.е. $tmp&#123;$key&#125;=$hash&#123;$key&#125;&lt;br&gt;это баг или фича?&lt;br&gt;</description>

<item>
    <title>почему если &#037;tmp=&#037;hash, то изменяются оба?? (ACCA)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9918.html#11</link>
    <pubDate>Wed, 29 Oct 2014 18:33:13 GMT</pubDate>
    <description>&#091;code&#093;&lt;br&gt;use Storable qw(dclone);&lt;br&gt;&#091;...&#093;&lt;br&gt;&#037;tmp = &#037;&#123; dclone( &#092;&#037;hash ) &#125;;&lt;br&gt;&#091;/code&#093;&lt;br&gt;</description>
</item>

<item>
    <title>почему если &#037;tmp=&#037;hash, то изменяются оба?? (Pahanivo)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9918.html#10</link>
    <pubDate>Wed, 15 Oct 2014 18:26:12 GMT</pubDate>
    <description>шо вы таки меня палите ))&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>почему если &#037;tmp=&#037;hash, то изменяются оба?? (XAnder)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9918.html#9</link>
    <pubDate>Wed, 15 Oct 2014 12:12:52 GMT</pubDate>
    <description>&amp;gt; а зачем же там функция отдельная, когда можно прям там же: &lt;br&gt;&amp;gt; my&#064;tmp=&#064;&#123;$hash&#123;$key1&#125;&#123;$key2&#125;&#125;; &lt;br&gt;&amp;gt; for(0..$#tmp)&#123;$tmp&#123;$key1&#125;&#123;$key2&#125;&#091;$_&#093;=$hash&#123;$key1&#125;&#123;$key2&#125;&#091;$_&#093;&#125; &lt;br&gt;&lt;br&gt;Как я и писал, зависит от задачи. Здесь такой способ годится, в другом случае может и нет. Мы ваших задач не знаем, а общий случай слишком заковыристый, чтобы объяснить в двух строчках на форуме и написать в двух строчках на Пёрле. Как, например, будете обрабатывать циклические ссылки? В общем случае они, конечно же, есть. А всякие blessed объекты, требующие инициализации? Их нельзя просто так копировать.&lt;br&gt;&lt;br&gt;PS. Моё личное вам &amp;#171;фи&amp;#187; за ответ хамством на хамство по нарастающей. А Pahanivo тут штатный, пора бы привыкнуть. Я его когда-то чайникодавом назвал, и он по-прежнему оправдывает это звание :-)&lt;br&gt;</description>
</item>

<item>
    <title>почему если &#037;tmp=&#037;hash, то изменяются оба?? (greenwar)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9918.html#8</link>
    <pubDate>Wed, 15 Oct 2014 11:30:46 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt;     &#123; &lt;br&gt;&amp;gt;&amp;gt;         $tmp&#123;$key1&#125;&#123;$key2&#125;&#091;0&#093;=$hash&#123;$key1&#125;&#123;$key2&#125;&#091;0&#093;; &lt;br&gt;&amp;gt;&amp;gt;         $tmp&#123;$key1&#125;&#123;$key2&#125;&#091;1&#093;=$hash&#123;$key1&#125;&#123;$key2&#125;&#091;1&#093; &lt;br&gt;&amp;gt;&amp;gt;     &#125; &lt;br&gt;&amp;gt;&amp;gt; &#125; &lt;br&gt;&amp;gt;&amp;gt; но если массив будет помассивней, херня получится &lt;br&gt;&amp;gt; ну дак вы учитесь таки пользоваться перлом.&lt;br&gt;&amp;gt; вам же правильно говорят - делайте функцию копирования для структуры, &lt;br&gt;&amp;gt; а то ни про ссылки не знаете, ни про циклы по массиву &lt;br&gt;&amp;gt; ...&lt;br&gt;&lt;br&gt;о блять, знаток вылез&lt;br&gt;а зачем же там функция отдельная, когда можно прям там же:&lt;br&gt;my&#064;tmp=&#064;&#123;$hash&#123;$key1&#125;&#123;$key2&#125;&#125;;&lt;br&gt;for(0..$#tmp)&#123;$tmp&#123;$key1&#125;&#123;$key2&#125;&#091;$_&#093;=$hash&#123;$key1&#125;&#123;$key2&#125;&#091;$_&#093;&#125;&lt;br&gt;&lt;br&gt;учитесь таки пользоваться перлом (c)&lt;br&gt;&lt;br&gt;и читать. вопрос был: как упростить до &#037;tmp=&#037;hash&lt;br&gt;</description>
</item>

<item>
    <title>почему если &#037;tmp=&#037;hash, то изменяются оба?? (Pahanivo)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9918.html#7</link>
    <pubDate>Wed, 15 Oct 2014 10:49:02 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt; ну у меня пока решение такое: &lt;br&gt;&amp;gt; while(my$key1 = each &#037;hash) &lt;br&gt;&amp;gt; &#123; &lt;br&gt;&amp;gt;     while(my$key2 = each &#037;&#123;$hash&#123;$key1&#125;&#125;) &lt;br&gt;&amp;gt;     &#123; &lt;br&gt;&amp;gt;         $tmp&#123;$key1&#125;&#123;$key2&#125;&#091;0&#093;=$hash&#123;$key1&#125;&#123;$key2&#125;&#091;0&#093;; &lt;br&gt;&amp;gt;         $tmp&#123;$key1&#125;&#123;$key2&#125;&#091;1&#093;=$hash&#123;$key1&#125;&#123;$key2&#125;&#091;1&#093; &lt;br&gt;&amp;gt;     &#125; &lt;br&gt;&amp;gt; &#125; &lt;br&gt;&amp;gt; но если массив будет помассивней, херня получится &lt;br&gt;&lt;br&gt;ну дак вы учитесь таки пользоваться перлом.&lt;br&gt;вам же правильно говорят - делайте функцию копирования для структуры,&lt;br&gt;а то ни про ссылки не знаете, ни про циклы по массиву ...&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>почему если &#037;tmp=&#037;hash, то изменяются оба?? (greenwar)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9918.html#6</link>
    <pubDate>Wed, 15 Oct 2014 09:38:22 GMT</pubDate>
    <description>&amp;gt;&amp;gt; ну а как правильно?&lt;br&gt;&amp;gt; Трудно сказать, от задачи зависит. В общем случае для копирования сложной структуры &lt;br&gt;&amp;gt; можно сделать рекурсивную функцию.&lt;br&gt;&lt;br&gt;ну у меня пока решение такое:&lt;br&gt;while(my$key1 = each &#037;hash)&lt;br&gt;&#123;&lt;br&gt;    while(my$key2 = each &#037;&#123;$hash&#123;$key1&#125;&#125;)&lt;br&gt;    &#123;&lt;br&gt;        $tmp&#123;$key1&#125;&#123;$key2&#125;&#091;0&#093;=$hash&#123;$key1&#125;&#123;$key2&#125;&#091;0&#093;;&lt;br&gt;        $tmp&#123;$key1&#125;&#123;$key2&#125;&#091;1&#093;=$hash&#123;$key1&#125;&#123;$key2&#125;&#091;1&#093;&lt;br&gt;    &#125;&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;но если массив будет помассивней, херня получится&lt;br&gt;</description>
</item>

<item>
    <title>почему если &#037;tmp=&#037;hash, то изменяются оба?? (XAnder)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9918.html#5</link>
    <pubDate>Wed, 15 Oct 2014 09:32:24 GMT</pubDate>
    <description>&amp;gt; ну а как правильно?&lt;br&gt;&lt;br&gt;Трудно сказать, от задачи зависит. В общем случае для копирования сложной структуры можно сделать рекурсивную функцию.&lt;br&gt;</description>
</item>

<item>
    <title>почему если &#037;tmp=&#037;hash, то изменяются оба?? (greenwar)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9918.html#4</link>
    <pubDate>Wed, 15 Oct 2014 09:02:16 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt; хеш.&lt;br&gt;&amp;gt;&amp;gt; my&#037;tmp=&#037;hash; &lt;br&gt;&amp;gt; Новый хеш &#037;tmp содержит то же, что и старый: одну ссылку на &lt;br&gt;&amp;gt; тот же самый безымянный хеш. Естественно его копия не была создана. &lt;br&gt;&amp;gt; Теперь $hash&#123;cat&#125; и $tmp&#123;cat&#125; - один и тот же хеш. Обращаться к &lt;br&gt;&amp;gt; нему можно и так, и так.&lt;br&gt;&amp;gt;&amp;gt; $tmp&#123;cat&#125;&#123;1&#125;&#091;0&#093;=25; &lt;br&gt;&amp;gt; Тут мы поменяли что-то в недрах всё того же безымянного хеша.&lt;br&gt;&amp;gt;&amp;gt; print&quot;$hash&#123;cat&#125;&#123;1&#125;&#091;0&#093;&#092;n&quot;; &lt;br&gt;&amp;gt; И получили закономерный результат.&lt;br&gt;&lt;br&gt;ну а как правильно?&lt;br&gt;</description>
</item>

<item>
    <title>почему если &#037;tmp=&#037;hash, то изменяются оба?? (XAnder)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9918.html#3</link>
    <pubDate>Wed, 15 Oct 2014 08:44:45 GMT</pubDate>
    <description>&amp;gt; строго говоря это хеш хешей, а с простым хешем всё ок: &lt;br&gt;&lt;br&gt;Ага, ссылки.&lt;br&gt;&lt;br&gt;&amp;gt; my&#037;hash=( &lt;br&gt;&amp;gt; &apos;cat&apos;=&amp;gt;&#123; &lt;br&gt;&amp;gt; 1=&amp;gt;&#091;&apos;20&apos;,&apos;21&apos;&#093;, &lt;br&gt;&amp;gt; 2=&amp;gt;&#091;&apos;30&apos;,&apos;31&apos;&#093; &lt;br&gt;&amp;gt; &#125; &lt;br&gt;&amp;gt; ); &lt;br&gt;&lt;br&gt;Тут один именованный хеш (&#037;hash), один безымянный хеш и два безымянных массива. Всё это хозяйство связанно друг с другом ссылками.&lt;br&gt;&lt;br&gt;&#037;hash содержит один элемент - скаляр $hash&#123;cat&#125;, который является ссылкой на безымянный хеш.&lt;br&gt;&lt;br&gt;&amp;gt; my&#037;tmp=&#037;hash; &lt;br&gt;&lt;br&gt;Новый хеш &#037;tmp содержит то же, что и старый: одну ссылку на тот же самый безымянный хеш. Естественно его копия не была создана.&lt;br&gt;&lt;br&gt;Теперь $hash&#123;cat&#125; и $tmp&#123;cat&#125; - один и тот же хеш. Обращаться к нему можно и так, и так.&lt;br&gt;&lt;br&gt;&amp;gt; $tmp&#123;cat&#125;&#123;1&#125;&#091;0&#093;=25; &lt;br&gt;&lt;br&gt;Тут мы поменяли что-то в недрах всё того же безымянного хеша.&lt;br&gt;&lt;br&gt;&amp;gt; print&quot;$hash&#123;cat&#125;&#123;1&#125;&#091;0&#093;&#092;n&quot;; &lt;br&gt;&lt;br&gt;И получили закономерный результат.&lt;br&gt;</description>
</item>

</channel>
</rss>
