undef $/; $content = ; $content =~s#([^<]*)(<(?:sur|given)name>.*)#$1."".&indivauth($2).""#egi; sub indivauth { $au{sur} = 'given'; $au{given} = 'sur'; ($inline) = @_; $inline =~s#((?:(?!).)*?)#$1#gsi; return "$inline"; } open (FOUT, "> out.txt"); print FOUT $content;