− = 81 7c
| = 7c
より、$str =~ s/$tmp//g;は
$str =~ s/(文字コード81)|//g;とPerlに解釈されています。
つまり、$str内の文字コード81か、空文字にマッチングしそれが削除されます。
あー = 82 a0 81 5b内の81を削除すると82 a0 5bとなり
これをShift_JISで表示すると[ = 5bよりあ[となります。