shift()
- встроенная подпрограмма Perl, которая принимает массив в качестве аргумента, затем возвращает и удаляет первый элемент в этом массиве. Обычной практикой является получение всех параметров, переданных в подпрограмму с вызовами shift
. Например, скажем, у вас есть подпрограмма foo
, которая принимает три аргумента. Один из способов присвоения этих параметров локальным переменным - с помощью shift
примерно так:
sub foo() {
my $x = shift;
my $y = shift;
my $z = shift;
# do something
}
Путаница здесь заключается в том, что смещение не передается массиву в качестве аргумента. Фактически ему неявно передается массив «default», который @_
внутри подпрограммы или @ARGV
вне подпрограммы.