En What regular expressions can never match?/$./
a été donné en réponse. J'ai joué un peu avec ça et j'ai découvert que les deux lignes de code suivantes généraient des résultats différents. Les deuxièmes correspondances, mais la première ne le fait pas. Quelqu'un peut-il expliquer pourquoi?
$ printf 'a\nb\n' | perl -0777 -ne 'print if m/$./m'
$ perl -0777 -e '$_="a\nb\n"; print if m/$./m'
Notez également que l'ajout <> dans ce qui suit provoque le match à l'échec:
$ printf 'a\nb\n' | perl -0777 -e '$b = "a\nb\n"; say $b =~ m/$./m'
$ printf 'a\nb\n' | perl -0777 -e '$b = "a\nb\n"; <>; say $b =~ m/$./m'
(C'est, les premières impressions '1', la seconde imprime une ligne vide)
Vous pouvez utiliser' -E' au lieu de '-e' qui fait la même chose que -e'use feature ': 5.10'' =>' perl -0777 -wE '$ b = "a \ nb \ n"; dis $ b = ~ m /$./ m'' –
@Brad: Merci pour l'indice '-E'! –