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