#!/usr/local/bin/perl use strict; use warnings; my $s = ',=1 + sin(1.57),2,=log(1.2),abc,'; print "$s\n"; $s =~ s/(,?)=(.*?)(?=,|$)/$1. eval($2)/eg; print "match [$1]\n"; print "$s\n";