use Regexp::Common 'pattern'; pattern name => ['squish'], create => '.', subs => sub { $_[1] =~ s/\W+//g; }; my $name = "Rob J Anderson"; my $squished_name = $RE{squish}->subs($name); print "name :$name\n"; print "squished name :$squished_name\n"; __OUTPUT__ name :Rob J Anderson squished name :RobJAnderson