|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Konstantin Stupnik 2:5020/400 25 Sep 2001 13:20:25 To : andy Tatarinov Subject : Re: Код не работает. Почему? -------------------------------------------------------------------------------- "andy Tatarinov" <andytv@dezcom.mephi.ru> wrote in message news:9opb0c$20bm$1@ddt.demos.su... > > foreach $fala(@files){ > [...] > > }} > > Поясню, что смысл кода в том, что если в элементе массива более 40 > > foreach(@files){ > s/(.{40})(.*)/$1/; > push(@shot_files,$2) if $2; > } > > так наверное красивше =))) for(@files) { push @shot_files,$1 if s/^.{40}(.*)$/; } Если у тебя s/// не сработает, а $2 осталось от предыдущего матча/реплэйса, то получится фигня. но всё же $n=40; for(@files) { if(length>$n) { $tail=substr($_,$n); $_=substr($_,0,$n); push @shot_files,$tail; } } будет ИМХО быстрее. Правда непонятно, зачем в отдельный массив обрубки складывать, если восстановить кому они принадлежали невозможно... Может если длина <$n, стоит '' в массив обрубков push'ить? -- Best regards, Konstantin. Brainbench MVP for perl. Отправлено через сервер Talk.Ru - http://www.talk.ru --- ifmail v.2.15dev5 * Origin: Talk.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6488aac2081f.html, оценка из 5, голосов 10
|