Спасибо soldier и ilia. А как красиво сделать замену значения переменной на другое значение, например:
$array="ws","g54h","jgh","i2uy","b543vc",...
$array2="53","gfd","hgfhfgh",...
надо если $var==array[0] то $var=array2[0];
если $var==array[2] то $var=array2[2];
может удобнее Хэшем? просветите меня пожалуйста.
>Спасибо 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);
>Спасибо 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;
}
}