From: Lukas Mai Date: Sun, 16 Jun 2013 18:01:02 +0000 (+0200) Subject: rewrite attribute validation regex to check everything X-Git-Tag: v1.0104~2 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2FFunction-Parameters.git;a=commitdiff_plain;h=4b76be72b837cd476900a7defa44ddc92fd75185 rewrite attribute validation regex to check everything --- diff --git a/lib/Function/Parameters.pm b/lib/Function/Parameters.pm index b157396..82d7486 100644 --- a/lib/Function/Parameters.pm +++ b/lib/Function/Parameters.pm @@ -23,8 +23,36 @@ sub _assert_valid_identifier { sub _assert_valid_attributes { my ($attrs) = @_; - $attrs =~ /^\s*:\s*[^\W\d]\w*\s*(?:(?:\s|:\s*)[^\W\d]\w*\s*)*(?:\(|\z)/ - or confess qq{"$attrs" doesn't look like valid attributes}; + $attrs =~ m{ + ^ \s*+ + : \s*+ + (?&ident) (?! [^\s:(] ) (?¶m)?+ \s*+ + (?: + (?: : \s*+ )? + (?&ident) (?! [^\s:(] ) (?¶m)?+ \s*+ + )*+ + \z + + (?(DEFINE) + (? + [^\W\d] + \w*+ + ) + (? + \( + [^()\\]*+ + (?: + (?: + \\ . + | + (?¶m) + ) + [^()\\]*+ + )*+ + \) + ) + ) + }sx or confess qq{"$attrs" doesn't look like valid attributes}; } my @bare_arms = qw(function method);