gudn tach!
$test2=~s/((?:^|\G|[ +-])\d+)\.(\d+)(?!\d|\.\d)/$1,$2/g;
hier wird von links eine zahl begrenzt von /^|\G|[ +-]/
und direkt nach einer zahl darf kein zeichen stehen, welches eine ziffer ist. ferner darf einer zahl nicht die zeichenfolge "[punkt][ziffer]" folgen.
mir ist noch was eingefallen: "\G" wird hier gar nicht mehr benoetigt, weil vermoege "?!" ja mit _zero_-_length_ gematcht wird.
also:
$test=~s/((?:^|[ +-])\d+)\.(\d+)(?!\d|\.\d)/$1,$2/g;
oder
$test=~s/(?<![^ +-])(\d+)\.(\d+)(?!\d|\.\d)/$1,$2/g;
prost
seth