#!/usr/bin/perl use strict; use warnings; my $words = "this is a series of words"; $words =~ s{((\w+(?:'\w+)*))}{ my $res; ( $res = &link( $1 ) ) ? $res : $1 }ge; print "$words\n"; sub link { my $word = shift; if( $word eq 'series' ){ return ucfirst $word; } return; }