В языке Perl , так же как и в С, lvalue представляет собой имя того, что стоит с левой стороны оператора присваивания. Таким образом, lvalue представляет собой целостность, которой может быть присвоено значение, например, lvalue может быть переменной. Например, скрипт Perl не может присвоить значение строке символов, наподобие выражения « Bob » = 32, поскольку « Bob » не является lvalue . Тем не менее, скрипт может присвоить значение переменной $ Bob , например, следующим образом $Bob = 32, поскольку переменная $Bob является lvalue .
В языке Perl любая целостность, которая может использоваться как lvalue , обычно таковой и является. Например, следующее выражение упаковывает ( pack ) и распаковывает ( unpack ) список значений, причем список переменных в первом случае и три скалярных во втором являются lvalues :
@ color = ($ r , $ g , $ b ); # пакет цветов
($ r , $ g , $ b ) = @ color ; # распаковка цвета
Когда вы работаете со списками в языке Perl , оператор присваивания не обяза тельно относится ко всему списку. Скрипт может присваивать значения отдельным элементам списка, как показано ниже:
@ items [2,4,7] = (100,200,300);
В этом случае оператор присваивает значение трем элементам списка. Аналогичным образом следующее выражение распаковывает элементы списка, присваивая значения двух первых элементов двум скалярным переменным, а остаток массива — списочной переменной:
($ arg 1,$ arg 2,@ rest ) = @ ARGV ; # можно смешать скаляры и массивы