Во-первых, я считаю, что это из-за ключа -n. Другими словами
printf 'a\nb\n' | perl -0777 -ne 'print if m/$./m'
Заставляет $ _ получить значение a\n
в первый раз в цикле и b\n
во второй раз настолько ясно, что не будет совпадать. Принимая во внимание, что / m $ соответствует \ n во втором примере, поэтому это соответствует.
С последними двумя примерами я все еще работаю над этим:)
Редактировать: Ух ты, я был совершенно неправ, и я думаю, что у тебя тоже есть. Проблема в том, что m/$./m
является не концом строки, за которым следует подстановочный знак, а скорее переменная $. интерполируется как регулярное выражение. Хлоп!