I'm not sure I like the idea of embedding the parameters in a string. Another way might be to make
open understand a hashref in place of the filename string, so you can use the old fashioned
open FH, "$mode_char$filename" style but optionally write, f.ex
open FH, { name => "filename", sequential => 1, mode => "R" };
or something in that vein.
Makeshifts last the longest.