лексические массивы и хэши создаются пустые. Вы можете создать новый лексический массив или хэш с my
:
my @array;
my %hash;
По большей части, вы должны использовать только лексические массивы и хэши, но вы можете создать пакет массивов и хэшей с our
:
our @array;
our %hash;
@array
и %hash
могут иметь или не иметь данных в этом случае (если они были созданы ранее, это не очистит их содержимое).Имена этих переменных лексическую область видимости, но данные пакета с заданной областью, так что если вы скажете:
{
our @a = (1 .. 5);
}
{
our @a;
print "@a\n";
}
Он по-прежнему печатать "1 2 3 4 5\n"
.
Существует много способов очистки хэша или массива. Наиболее распространенным является назначение пустой список к нему:
@array =();
%hash =();
Вы также можете использовать undef
очистить хэш или массив:
undef @array;
undef %hash;
Вы могли бы также pop
, shift
или splice
элементы прочь массив:
pop @array while @array;
shift @array while @array;
splice @array, 0, scalar @array;
Вы также можете изменить количество элементов и массив, присвоив номер к $#array
формы его имени. Если вы присвоите отрицательное значение, массив будет опустошен:
$#array = -1;
Как вам было предложено много раз, вам нужно сесть с документацией и прочитать некоторые вводные книги. [«Изучение Perl»] (http://en.wikipedia.org/wiki/Learning_Perl) превосходно и принесет вам пользу гораздо больше, чем задавать такие открытые вопросы. – Ether