普通じゃないと思うけれど、こういうのもありかな
sub calcflat { eval shift } # 括弧の無い式の計算

my $exp = '((100 + 200) / 100) + (50 / 10)';
1 while $exp =~ s{\(([^()]*)\)}{ calcflat $1 }ge;
print calcflat($exp);