in reply to Simple little regex to build a list

If you really want to use split, you could do it like this:

my $flop = 1; my @list = grep { $flop *= -1; $flop > 0 } split /\s+as\s+|\s*,\s+/, $string;

It seems pretty fragile though, and more kludgy than a regexp with the /g modifier in list context. You're splitting on 'as' (with leading and trailing whitespace), and on comma, with optional leading whitespace, and mandatory trailing whitespace. Every second item is assumed to be a value that you wish to keep. It could break if you have 'as' in any of the keys, and it could break in a lot of other ways too, but for your immediate definition of the problem, it works.


Dave