$message =~ s/:\)/\/g; # happy emoticon $message =~ s/:\(/\/g; # sad emoticon ... etc. ... #### use CGI qw(img); my $imagedir = '/path/to/images'; my %emot = ( ':)' => 'smiley', ':(' => 'sad', ':p' => 'tongue', ':P' => 'tongue', ':o' => 'oh', ':O' => 'oh', '*hug*' => 'hug', '*flower*' => 'flower', '*wink*' => 'wink', '*devil*' => 'devil', '*love*' => 'love', '*sleep*' => 'sleep', '*conf*' => 'confused', ); my $data = do{local $/;}; $data =~ s/ (:.|\*.*?\*) / img { src => "$imagedir\/$emot{$1}.gif", alt => $emot{$1} } /xeg ; print $data; __DATA__ stuff *sleep* :) stuff *hug* :( stuff :P :p stuff *wink* :o stuff :O stuff *flower* *devil* stuff stuff *love* *conf* stuff