Perl. Интерполяция массивов в строках. Почему строка "2 * 4" преобразуется в 2 в числовом контексте?
Здраствуйте!
Читаю книгу по языку программирования Perl, Изучаем Perl 5-е-издание... Не понятно один момент, в книге написано следующее:
Один элемент массива при интерполяции заменяется своим текущим значением, как и следовало ожидать:
@fred = qw (hello dolly);
$y = 2;
$x = "This is $fred[1]'s place";
$x = "This is $fred[$y - 1]'s place";
Индексное выражение вычисляется по правилам обычных выражений, как если бы оно находилось вне строки. Предварительная интерполяция переменных не выполняется. Иначе говоря, если $y содержит строку "2 * 4", то интерполироваться будет элемент 1, а не элемент 7, по тому что "2 * 4" в числовом контексте (значение $y, используемое в числовом выражении) преобразуется в 2 ...
- Почему строка "2 * 4" преобразуется в 2 в числовом контексте ?
- Это же ведь одна строка, и почему вообще именно 2 ?
- Что имеется ввиду -> "Иначе говоря, если $y содержит строку "2 * 4", то интерполироваться будет элемент 1, а не 7" ... тут имеются ввиду сами значение или их индексы ?