Вопросы

Александр Радченко
Как такое возможно?

 "...исполняющая система Perl читает исходный текст Perl-программы и компилирует его "на лету", затем сразу интерпретирует откомпилированную программу..." Позвольте, но компиляция и интерпретация - это по сути два способа перевода текста программы в машинные коды. При компиляции вся программа переводится в машинные коды, а затем собирается в исполнимый файл, а при интерпретации исполняющая система пошагово считывает и выполняет инструкции. Так в чем тут закавыка?

Руслан Поддубный
последовательная проверка условий

при проверке нескольких условий с использованием if _elseif выход в продолжение программы происходит после перебора всех условий, независимо от результата проверки каждого условия, или после первого "истинного" условия?

Теги: perl
Михаил Бей
уникальность ключей и значений

...две части ассоциативной связи соответственно называют поисковым ключом (key) и значением (value), ассоциированным с этим ключом...

Причем значения всех ключей в хэше уникальны, поскольку внутренняя организация хэша не допускает ключей с одинаковыми значениями.

Может ключи уникальны, а не значения?

 

Из книги с ламой:

"Ключи являются произвольными строками – любое строковое выражение может использоваться в качестве ключа хеша. К тому же они уникальны: подобно тому как в массиве имеется только один элемент с номером 3, в хеше существует только один элемент с ключом wilma."

 

Ну и кусок кода:

%hash = (1,"one",2,"two",3,"one");

while (($key, $value) = each %hash) {
        print "$key = $value\n";
}

1 = one
3 = one
2 = two

 

 

Теги: perl
Михаил Шохирев
Михаил Шохирев 20 августа 2015 в 09:38

Неверная формулировка: вместо "не допускает ключей с одинаковыми значениями" следовало написать "не допускает одинаковых значений самих ключей" или просто "не допускает одинаковых ключей"

Леонид Шилов
Присваивание скаляру значения массива

Не ошибка ли в первой строке? почему скаляру должно присвоиться значение элемента, а не размер массива?

($first) = @array; # в $first скопируется 1-й элемент массива

$array_size = @months; # число элементов (размер) массива

Теги: pl
Дмитрий Тигров
Дмитрий Тигров 6 февраля 2014 в 01:17

$first в скобках а значит в списочном контексте