Синтаксис, который вы ищете, на самом деле вообще не синтаксис.Если вы используете переменную массива в любом месте, где Perl знает, что вы должны использовать скалярное значение (например, в качестве операнда для оператора сравнения), тогда Perl даст вам количество элементов в массиве.
Итак, основываясь на вашемНапример, это будет работать:
# Note: I've corrected a syntax error here.
# I replaced a comma with a semicolon
for (my $x = 0; $x < @words; $x++)
{
print $words[$x];
}
Но есть несколько способов, которыми мы можем улучшить это.Во-первых, давайте избавимся от уродливого и потенциально запутанного цикла в стиле C for
и заменим его на гораздо более простой для понимания foreach
.
foreach my $x (0 .. @words - 1)
{
print $words[$x];
}
Мы также можем улучшить это @words - 1
.Вместо этого мы можем использовать $#words
, что дает окончательный индекс в массиве @words
.
foreach my $x (0 .. $#words)
{
print $words[$x];
}
Наконец, нам не нужен здесь индексный номер, поскольку мы просто используем его для доступакаждый элемент массива по очереди.Намного лучше перебирать элементы массива, а не индексы.
foreach my $element (@words)
{
print $element;
}