Что это за фрагмент кода, это способ предоставления значений по умолчанию для $host
и $port
.Обычно он находится в начале скрипта или подпрограммы и принимает значения от @ARGV
и @_
соответственно.
Это должно вернуть localhost и порт 10.
Нет, оператор ||
является короткозамкнутым OR
, что означает, что если операнд LHS возвращает истинное значение, операнд RHS игнорируется.По сути, это означает следующее (и ТОЛЬКО это): «выберите левое значение, если оно истинно, в противном случае выберите правое значение».
shift ARRAY
вернет первое значение ARRAY
, или:
Если ARRAY опущен, смещение массива @_ в рамках лексической области подпрограмм и форматов, а также массива @ARGV вне подпрограммы, а также в пределах лексических областей, установленных eval STRING., BEGIN {}, INIT {}, CHECK {}, UNITCHECK {} и END {} конструкции.
Цитируется из http://perldoc.perl.org/functions/shift.html
Также, конечно, shift
удаляет значение из массива, который смещен.Поэтому вы можете иметь два shift
в строке, как это, для очень удобной обработки аргументов.