The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Еще по перлу"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Еще по перлу"
Сообщение от gexa emailИскать по авторуВ закладки on 26-Апр-02, 14:32  (MSK)
Спасибо soldier и ilia. А как красиво сделать замену значения переменной на другое значение, например:
$array="ws","g54h","jgh","i2uy","b543vc",...
$array2="53","gfd","hgfhfgh",...
надо если $var==array[0] то $var=array2[0];
     если $var==array[2] то $var=array2[2];
может удобнее Хэшем? просветите меня пожалуйста.

  
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: Еще по перлу"
Сообщение от Cobold Искать по авторуВ закладки on 27-Апр-02, 01:51  (MSK)
>Спасибо soldier и ilia. А как
>красиво сделать замену значения переменной
>на другое значение, например:
>$array="ws","g54h","jgh","i2uy","b543vc",...
>$array2="53","gfd","hgfhfgh",...
>надо если $var==array[0] то $var=array2[0];
>     если
>$var==array[2] то $var=array2[2];

Не совсем понятная постановка вопроса: есть ли гарантия что $var==array[?] случается всего один раз?

Кроме того, для символьных значений очень желательно пользоваться не "==" а "eq"

Общий случай:

my $n;  # локальный счетчик
@var=grep($var eq $array[$n++],@array2);

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: Еще по перлу"
Сообщение от Oleg Искать по авторуВ закладки on 06-Май-02, 21:57  (MSK)
>Спасибо soldier и ilia. А как
>красиво сделать замену значения переменной
>на другое значение, например:
>$array="ws","g54h","jgh","i2uy","b543vc",...
>$array2="53","gfd","hgfhfgh",...
>надо если $var==array[0] то $var=array2[0];
>     если
>$var==array[2] то $var=array2[2];
>может удобнее Хэшем? просветите меня пожалуйста.
>

for $i (0 .. $#array) {
  $var = $array2[$i] if $var eq $array[$i];
}

В $var будет сохранено значение из @array2 с индексом последнего элемнта @array совпавшего с $var.

Это оно или нет?
Если нужно только до первого совпадения тогда:
for $i (0 .. $#array) {
  if($var eq $array[$i]) {
    $var = $aray2[$i];
    last;
  }
}

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру