Почему это не работает?
my $str = 'we,you,them,us'; print $(split($str,','))[0];
Я знаю, что могу сделать:
my @str = split...
но я помню, что есть способ пропустить это.
Спасибо
У вас есть порядок аргументов для разделения реверса. Там не должно быть знака доллара перед паренами. Следующие работы (знак плюс заставляет perl вычислять следующее как выражение):
use strict; use warnings; my $str = 'we,you,them,us'; print +(split(',',$str))[0];
Каждый раз, когда вам нужен доступ только к небольшой части возвращаемого значения функции, вы должны проверить, есть ли меньшая область действия, которую вы можете использовать. В этом случае я мог бы использовать регулярное выражение:
print $str =~ /^([^,]*)/;
Использование [split $str, ',']->[0]; было бы хорошо.
[split $str, ',']->[0];