Как вы tokenise/tokenize/split разделили строку в Perl?

Как вы разбиваете строку, например. "a: b: c: d" в токены для разбора в Perl?

(например, с помощью split?)

Ищите четкий, простой ответ прежде всего (но после этого добавьте интересные интересные фрагменты информации).

Ответы

Ответ 1

Да, split - это то, что вы хотите.

@tokens = split(/:/, "a:b:c:d");
foreach my $token (@tokens) {
    ....
}

Ответ 2

Вы можете использовать split. Вы также можете использовать его с регулярным выражением.


my @tokens = split(/:/,$string);

Для более расширенного анализа я рекомендую Parse:: RecDescent

Ответ 3

Также ознакомьтесь с документацией, поставляемой с perl, введя в командной строке:

perldoc -f split

Для поиска часто задаваемых вопросов используйте

perldoc -q split

Ответ 4

если у вас есть:

$a = "a:b:c:d";
@b = split /:/, $a;

то вы получите:

@b = ("a", "b", "c", "d")

В общем, так работает split:

split /PATTERN/,EXPR

Где PATTERN может быть довольно регулярным. Вы не ограничены простыми жетонами типа ":"