|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Ivan Frolkov 2:5020/175.2 01 Aug 2004 01:02:06 To : Nikolay Pichtin Subject : Разделитель -------------------------------------------------------------------------------- Sat Jul 31 2004 11:01, Nikolay Pichtin wrote to All: NP> Делаю так: NP> Есть массив NP> 1|2|3 NP> 4|5|6 NP> надо 3 заменить на 7777 (частный случай). NP> foreach (@mass) { NP> @array = split /\|/; NP> if ($array[0] eq "1") { NP> $array[2] = "7777"; NP> } NP> for (my $i=0;$i<$#array+1;$i++) { NP> push (@Row,join("",$array[$i],"|")); NP> } NP> push (@Row,"\n"); NP> } NP> Hа выходе получаю @Row NP> 1|2|777| NP> 4|5|6| NP> Hо дело в том, что мне не надо в конце | NP> Как это побороть? Исправлением ошибки в логике. Вообще, какие-то странные данные и какая-то странная задача. Я бы задумался, что что-то явно идет не так. Впрочем, это так, мысли вслух... Почитал тут ваше обсуждение, удивился многотрудности. Чтоб вы дальше не мучились: $_=join('|', map { $_ == 3 ? 7777 : $_ } split /\|/) for(@arr); или s/(^|\|)3(?=\||$)/${1}7777/g for (@arr); --- ifmail v.2.15dev5 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/3300430233bf.html, оценка из 5, голосов 10
|