Во-первых, код, который вы утверждаете, не работает.
$ printf 'a/b/c\n' | sed 's/(.*)//\1,/'
sed: -e expression #1, char 9: unknown option to `s'
должно быть
$ printf 'a/b/c\n' | sed 's/\(.*\)\//\1,/'
a/b,c
Вы спрашиваете, как выполнить эту команду из Perl. Вы можете использовать следующее:
system('sed', '-i', '/\\(.*\\)\\//\\1,/', '--', $qfn)
Обратите внимание, что вы можете довольно легко выполнить ту же задачу в самом Perl.
local @ARGV = $qfn;
local $^I = '';
while (<>) {
s{^.*\K/}{,};
print;
}