Перейти к основному содержимому

1.5. Чем отличаются эти две команды? *pl "<<$perem>>" и *pl $perem

В: Чем отличаются эти две команды?

*pl "<<$perem>>" 
*pl $perem

О: На экране различий Вы не увидите, да и в игре особой разницы не почувствуете. Результат их работы одинаков.

А вот работают они по разному.

Когда плеер встречает первую команду, он видит оператор *pl, и что этому оператору передано некое значение — строка. Так же он видит, что в строке присутствует подвыражение. Первым делом он пытается вычислить значение этого подвыражения, которое соответствует значению переменной $perem. Это значение плеер подставляет в строку. Таким образом у него получается текстовая константа. Затем он берёт значение этой текстовой константы и передаёт оператору *pl, который и выводит значение на экран.

Когда плеер встречает вторую команду, он просто получает значение переменной $perem и передаёт его оператору.

Первая команда принуждает плеер выполнять двойную работу. Это будет заметно при больших объёмах вычислений. Первая команда выполняется примерно в 1,3 раза дольше.