|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Sapozhnikov 2:5020/400 31 Mar 2000 16:36:12 To : All Subject : Re: Ещё один вопрос ;) --------------------------------------------------------------------------------
Dmitriy Goldobin wrote:
> > > По разному можно, все от твоего настроения зависит. Можно unpack, можно
> > > while chomp, а в плохом настроении $var=~s/./print $?."\n"/ge; :)
> >
> > Вот только функцию substr забыли незаслуженно :-)
>
> Кстати из 'Time Efficiency'
>
> = Avoid frequent substr on long strings.
> = Use pack and unpack instead of multiple substr invocations.
>
> Вот уж не думал что развернуть в массив быстрее чем работать
> непосредствено со строкой.
Это смотря как работать.
$a="X".100000;
substr($a,50000,1)="YY";
такая комбинация весьма медленна. Она РАЗДВИГАЕТ
строку изымая 50000-й символ и вставляя вместо него
два. Пачка таких операций будет медленнее чем
один раз преобразовать в список (внутреннее представление
которого - двоичное дерево) покопошиться и свернуть
обратно в строку.
А pack-ом и unpack-ом можно ВСЕ и не трогать.
Скажем unpack("x20000 C16",$a) выдернет только
16 символов начиная с 20000-ного.
Андрей
--- ifmail v.2.15dev4
* Origin: Chelindbank (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/9117ce05c9d4.html, оценка из 5, голосов 10
|