У меня есть некоторые данные, которые я анализирую в Perl, и в ближайшем будущем я буду добавлять все больше и больше форматированных данных. Я хотел бы написать простую в использовании функцию, в которую я мог бы передать строку и регулярное выражение, и она возвращала бы все, что в скобках. Это будет работать примерно так (псевдокод):
sub parse {
$data = shift;
$regex = shift;
$data =~ eval ("m/$regex/")
foreach $x ($1...$n)
{
push (@ra, $x);
}
return \@ra;
}
Тогда я мог бы назвать это так:
@subs = parse ($data, '^"([0-9]+)",([^:]*):(\W+):([A-Z]{3}[0-9]{5}),ID=([0-9]+)');
Как видите, у этого кода есть пара проблем. Я не знаю, сработает ли eval, «foreach» определенно не сработает, и, не зная, сколько круглых скобок, я не знаю, сколько раз выполнить цикл.
Это слишком сложно для разделения, поэтому, если есть какая-то другая функция или возможность, которую я пропускаю, дайте мне знать.
Спасибо за вашу помощь!