Backquotes (``) treat the part between them like a double quoted string, which means that the backslash (\) is seen by Perl as escape character.

You can easily see, what command is actually passed in a shell, by replacing the backquote execution by a print statement (the qq(...) form is just an alternative way for writing a double-quoted string:

(1) With your usage of backquotes, you just collect the stdout of the command and throw it away immediately. In this case, it makes more sense if you redirect it to the bit bucket from the beginning:

Code

system(qq(sed .... >/dev/null));

See perldoc -f system for an explanation of the system function.

(2) It doesn't make much sense to shell out to sed for processing a file, since you can do this easily in Perl too. There are several ways to do it, but from the code posted, it is not clear to me what you want to achieve (i.e. what you want to do with the transformed text).