リテラルにも反復指定子

#!/usr/bin/env perl

use strict;
use Parse::RecDescent;
use Data::Dumper;

my $grammar =
q{
    inputs : ('a')(s) { print Data::Dumper::Dumper($item[1]); }
};

my $parse = new Parse::RecDescent ($grammar);

while (<>)
{
    defined $parse->inputs($_) or print "Bad text!\n";
}

で、

a
$VAR1 = [
          'a'
        ];
aa
$VAR1 = [
          'a',
          'a'
        ];
aaa
$VAR1 = [
          'a',
          'a',
          'a'
        ];
#!/usr/bin/env perl

use strict;
use Parse::RecDescent;
use Data::Dumper;

my $grammar =
q{
    inputs : (/\d/)(s) { print Data::Dumper::Dumper($item[1]); }
};

my $parse = new Parse::RecDescent ($grammar);

while (<>)
{
    defined $parse->inputs($_) or print "Bad text!\n";
}

で、

123
$VAR1 = [
          '1',
          '2',
          '3'
        ];