use strict; use warnings; while ( ) { m/^\s*{name_a\s/ and s/\bparam_(?:[^xy]\w*|[xy]\w+)\s*=\s*"[^"]*"\s*//g; s/\s+}\s*$/}\n/; # cosmetics print; } __DATA__ {name_b param_v="wh"} {name_a param_x="abc" param_a="fsd" param_y="def"} {name_z param_sd="zka" param_s="df"} {name_a param_y="wtf" param_z="kro" param_c="ptz" param_ch="www"} {name_a param_y="wff" param_xyz="xy" param_x="" }