Forum Webscript.Ru

Программирование => Perl => Тема начата: micolo от 27 Декабря 2006, 17:12:34

Название: аналог функции в perl
Отправлено: micolo от 27 Декабря 2006, 17:12:34
Доброго времени суток!
У меня такой вопрос.
Есть в php функция explode, которую я использую следующим образом:

$a=explode("|", $word);
for ($i=0; $i{
.....

}

 
Есть ли в perl подобная функция и как будет выглядеть её вариант, в процедуре которая указывается в приведённом мною коде?
Название: аналог функции в perl
Отправлено: NeoNox от 27 Декабря 2006, 17:57:56
@a = split \'|\', $word;
for (@a)
{
...
}
Название: аналог функции в perl
Отправлено: xames от 27 Декабря 2006, 20:36:47
@a = split \'\\|\', $word;
экранировать \'|\' надо)).

 split /PATTERN/,EXPR,LIMIT
первый параметр воспринимается как шаблон, а в шаблонах "|" является спец символом. Без экранирования ожидаемого результата не добиться =)
Название: аналог функции в perl
Отправлено: micolo от 27 Декабря 2006, 22:21:12
а как обратится к элементу массива внутри

for (@a)
{
...
}

получившегося в результате split
Название: аналог функции в perl
Отправлено: DartSidius от 28 Декабря 2006, 08:31:04
1. вариант



my @a = split (/\\|/, $word);
for ($i=0;$i<$#a;$i++) {
    print $a[$i];
}



2. вариант



foreach(split (/\\|/, $word)) {
   print $_;
}

Название: аналог функции в perl
Отправлено: arto от 28 Декабря 2006, 13:13:42
foreach (split ...) {
     s#a#b#g;
     print;
}
Название: аналог функции в perl
Отправлено: micolo от 28 Декабря 2006, 14:13:39
спасибо!