Perl анонимный вопрос - PullRequest
       3

Perl анонимный вопрос

0 голосов
/ 19 ноября 2010

Почему это не работает?

my $str = 'we,you,them,us';

print $(split($str,','))[0];

Я знаю, что могу сделать:

my @str = split...

но я помню, что есть способ пропустить это.

Спасибо

Ответы [ 3 ]

8 голосов
/ 19 ноября 2010

У вас есть порядок аргументов для разделения реверса. Там не должно быть знака доллара перед паренами. Следующие работы (знак плюс заставляет perl вычислять следующее как выражение):

use strict;
use warnings;

my $str = 'we,you,them,us';

print +(split(',',$str))[0];
5 голосов
/ 19 ноября 2010

Каждый раз, когда вам нужен доступ только к небольшой части возвращаемого значения функции, вы должны проверить, есть ли меньшая область действия, которую вы можете использовать. В этом случае я мог бы использовать регулярное выражение:

print $str =~ /^([^,]*)/;
0 голосов
/ 19 ноября 2010

Использование [split $str, ',']->[0]; было бы хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...