- RU.PERL ----------------------------------------------------------- RU.PERL - Msg : #1040 [644] От : Konstantin Stupnik 2:5020/400 31 октября 03, 07:56 Кому : eugene v. 01 ноября 03, 05:31 Тема : Re: Как посимвольно обработаь строку ------------------------------------------------------------------------------- From: "Konstantin Stupnik"Hello, eugene! ev> SUBJ ev> Допустим есть строка ev> $a="This is text". ev> Hужно допустим после каждой буквы поставить букву "z" ev> я делаю ev> foreach $i (1..length($a)) ev> { ev> print $a[$i]; ev> print "z"; ev> } ev> но не работает. ev> ЗЫЖ Мне это нужно для примера, не понимаю почему не работате :( Варианты: use Benchmark qw(:all); my $s="This is text"; my $res; timethese(1000000, { 'substr'=>sub { $res=''; for(0..length($s)-1) { $res.=substr($s,$_,1).'z'; }; }, 's'=>sub { $res=$s; $res=~s/(.)/$1z/g; }, 'split'=>sub { $res=''; for(split(//,$s)) { $res.=$_.'z'; } }, } ); Результат: substr: 16 wallclock secs (15.71 usr + 0.00 sys = 15.71 CPU) @ 63637.52/s s: 23 wallclock secs (22.25 usr + 0.01 sys = 22.26 CPU) @ 44917.58/s split: 31 wallclock secs (31.73 usr + 0.05 sys = 31.78 CPU) @ 31469.30/s -- Best regards, Konstantin. Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5 * Origin: Talk.Mail.Ru (2:5020/400)