Пропуск некоторых возвращаемых значений
Проблема
Имеется функция, которая возвращает много значений, однако вас интересуют лишь
некоторые из них. Классический пример — функция
stat;
как правило, требуется лишь одно значение из длинного возвращаемого списка (например, режим доступа).
Решение
Присвойте результат вызова списку, некоторые позиции которого равны
undef:
($а, undef, $с) = func();
Либо создайте срез списка возвращаемых значений и отберите лишь то, что вас интересует:
($а, $с) = (func())[0,2];
Комментарий
Применять фиктивные временные переменные слишком расточительно:
($dev,$ino,$DUMMY,$DUMMY,$uid) = stat($filename);
Чтобы отбросить ненужное значение, достаточно заменить фиктивные переменные на undef:
($dev, $ino, undef , undef, $uid) = stat($filename);
Также можно создать срез и включить в него лишь интересующие вас значения
($dev, $ino,$uid,$gid) = (stat($filename))[0, 1,4,5];
Если вы хотите перевести результат вызова функции в списковый контекст и отбросить
все возвращаемые значения (вызывая его ради побочных эффектов), начиная с версии 5.004,
можно присвоить его пустому списку:
() = some_function();
См. также
Proverte kod v komentariyah gde pro list tam oshibki detskie
Оставить комментарий:
|
|