<div>
</div><br>&gt; $str = 0x1000; $str = &#39;&#39;;<br><br>а вот это не совсем то, вернее совсем не то.<br><br>одно дело при создании скаляра - выделить заранее память, а совсем другое дело - выделить память *и заполнить ее значением*.<br>
<br>используя XS можно сделать первое, а вот данная конструкция делает второе.<br><br>то же самое и с массивами. когда мы пишем $#a = 1000; реально создается 1000 скаляров и если затем сказать push @a =&gt; $b; то $b запишется по 1001 индексу,<br>
<br>а вот если мы в C скажем av_extend(a, 1000), а затем следом av_push(a, b), то в результате у нас будет массив из одного элемента, но не требующий переаллокации до тех пор пока не допушимся до 1000-го элемента<br>