#!perl -w use strict; package Regcomp; use vars qw(@ISA %types); require ExtUtils::Constant::Base; @ISA = 'ExtUtils::Constant::Base'; sub assignment_clause_for_type { my ($self, $type, $value) = @_; $value = uc $value; return "namedclass = complement ? ANYOF_N$value : ANYOF_$value;"; } sub return_statement_for_notfound { ""; } sub name_param { 'posixcc'; } sub namelen_param { 'skip'; } sub memEQ { "memEQ"; } package main; my @names = (qw(alpha ascii blank cntrl digit graph lower print punct upper xdigit), {name=>"alnum", value=>"ALNUMC"}, {name=>"space", value => "PSXSPC"}, {name=>"word", value=>"ALNUM", pre=>'/* this is not POSIX, this is the Perl \w */'}); print Regcomp->C_constant ({breakout=>~0,indent=>20}, @names);