文字列をファイルとして扱う。

# $strが文字列の場合
open my $FH, "<", \$str;

って書いたら文字列に対してダイヤモンド演算子なんかが使えるんですね。
一時ファイルを作っていた部分もこれを使えばファイルを作らず解決できそうです。