$string = "nome";
$string =~ m/nome/; # trueNão precisa do m se os delimitadores são / (padrão):
$string = "nome";
$string =~ /nome/;.- qualquer caractere (exceto quebra de linha)*- zero ou mais caracteres+- um ou mais?- zero ou um{n}- n vezes{n,}- mínimo n vezes{n,m}- mínimo n vezes, máximo m vezes\- metacaractere^- começo da linha$- final da linha (ou antes da quebra de linha)|- OR()- grupo de captura[]- classe de caractere ([a-z],[0-9])\w-[a-zA-Z0-9_]\d-[0-9]\s- espaços\W- inverte\w\D- inverte\d\S- inverte\s\b- limite de palavras (espaço, ponto, exclamação etc.)\t- tab\n- newline\r- return
m- trata como múltiplas linhass- trata como linha única (.dá match com newline)i- case insensitivex- permite espaço na expressãog- match globale- executa código
Caracteres especiais e modificadores:
$string =~ s\s+/ /g; # mais de um espaço por espaço
$string =~ s/^\s+//; # remove espaços no começo da linha
$string =~ s/\s$//; # remove espaços no final da linhaGrupos de captura:
$string = "nome";
$string =~ m/(n...)/; # grupo de captura, guarda o resultado do match
$nome = $1; # "nome"Substituições:
$string = "nome sobrenome"
$string =~ s/(\w)(\w+)/uc($1).$2/eg; # executa código perl na substituiçãoperl -e '$s="nome sobrenome"; $s =~ s/(\w)(\w+)/uc($1).$2/eg; print "$s\n"' # idem mas executando perl no shell