|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/371.32 02 Feb 2001 17:05:27 To : Max Martynov Subject : Re: вопросик по grep -------------------------------------------------------------------------------- В твоём письме от Fri, 02 Feb 2001 12:47:23 +0300 написано: MM> Similarly, grep returns aliases into the original list, much as a for MM> loop's index variable aliases the list elements. >>That is, modifying an element of a list returned by grep (for example, in >>a `foreach', `map' or another `grep') actually modifies the element in >>the original list. MM> Пишу пpогу: MM> @allLines=qw(max bucks hi bye hint pink hitro asshole himera lalala); MM> my @lines = grep /^hi/, @allLines; MM> print "@lines\n"; MM> print "@allLines\n"; MM> $lines[2]="qweqweqwe"; MM> print "@lines\n"; MM> print "@allLines\n"; MM> Получаю: MM> hi hint hitro himera MM> max bucks hi bye hint pink hitro asshole himera lalala MM> hi hint qweqweqwe himera MM> max bucks hi bye hint pink hitro asshole himera lalala MM> Тоесть в 3 стpоке pезультата замена hitro на qweqweqwe пpошла, а в 4 hitro MM> так и осталась, хотя по доке должна была измениться. Я видимо что-то не MM> понимаю... При присваивании результата грепа @lines у тебя происходит копирование значений. Вышеупомянутое верно только пока ты работаешь с результатом грепа. @allLines=qw(max bucks hi bye hint pink hitro asshole himera lalala); (grep /^hi/, @allLines)[2]="qweqweqwe"; Can't modify list slice in scalar assignment at - line 2, near ""qweqweqwe";" В то же время @allLines=qw(max bucks hi bye hint pink hitro asshole himera lalala); map { $_ = "qweqweqwe" if $i==2; $i++ } grep /^hi/, @allLines; print "@allLines\n"; дает max bucks hi bye hint pink qweqweqwe asshole himera lalala -- Artem Chuprina E-mail: ran@ran.pp.ru Programmer FIDO: 2:5020/371.32 Memonet Ltd. Phone: +7-095-284-1356 --- slrn/0.9.6.3-as (Linux) * Origin: AKA с подствольным плюсомётом (2:5020/371.32) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/7279929c0d3d7.html, оценка из 5, голосов 10
|