Вы используете split
в скалярном контексте, и в скалярном контексте он разделяется на массив @_
. Perl предупреждает вас, что вы, возможно, только что забили @_. (См. perldoc split для получения дополнительной информации.)
Чтобы получить количество полей, используйте этот код:
my @items = split(/\s+/, $s);
my $num_of_item = @items;
или
my $num_of_item = () = split /\s+/, $s, -1;
Примечание. Форма split () с тремя аргументами необходима, поскольку без указания предела split будет разбивать только один фрагмент (на один больше, чем необходимо в
задание).