Formatar código Perl

Apenas os espaços são reescritos: sigilos, comentários, expressões regulares, heredocs e POD voltam exatamente como foram digitados. É um formatador de layout, não é o Perl::Tidy, e não verifica nem conserta a sintaxe.

Funciona localmente no seu navegador
Copiar

Como formatar código Perl no navegador

Cole um trecho de Perl e a ferramenta devolve o mesmo programa com indentação consistente, uma instrução por linha, o estilo de chaves escolhido e quebra de linha opcional. Apenas os espaços entre tokens são reescritos: sigilos, comentários, expressões regulares, heredocs, POD e subscritos são copiados byte a byte, então o resultado é o mesmo programa Perl, apenas mais fácil de ler.

O formatador roda inteiramente nesta aba do navegador e o código nunca é enviado. É um formatador de layout, não é o Perl::Tidy nem um verificador de sintaxe: não compila, não valida nem conserta o programa; um arquivo quebrado volta quebrado, apenas com layout consistente.

  1. Cole o código Perl na caixa e pressione Formatar código Perl, ou Ctrl/⌘+Enter. Cada execução substitui o resultado anterior.
  2. Escolha a indentação (tabulação ou 2, 3, 4 ou 8 espaços), quantas linhas em branco manter, o estilo de chaves e se as linhas longas devem quebrar em 80 ou 120 caracteres.
  3. Pressione Copiar para levar o resultado, ou Limpar para esvaziar os dois painéis antes do próximo trecho.
  4. A quebra só acontece depois de vírgulas e a continuação recebe um nível a mais de indentação; escolha Sem quebra se cada instrução deve ficar em uma única linha.

O que o formatador muda — e o que permanece igual

O que o formatador muda

Formatar é reescrever espaços. A sequência de tokens da saída é idêntica à da entrada, e isso protege as partes do Perl que quebram com facilidade: os sigilos $, @ e %, os comentários de # até o fim da linha, as expressões regulares como /^Error: (\d+)/ e as substituições como s/#/\#/g, os operadores =~ e !~, as cadeias de desreferência ->, os subscritos de hash e array como $h{a} e $list[0], os operadores de citação (q, qq, qw, qx, qr, m, s, tr, y), os heredocs com o corpo, os blocos POD e as seções __END__/__DATA__.

Como cada token é copiado exatamente como está, nada pode ser reescrito em silêncio: o conteúdo das strings, os padrões das expressões regulares e os comentários voltam iguais ao que foi digitado. Uma verificação rápida é que o código formatado contém os mesmos caracteres da entrada, apenas com espaçamento diferente.

As opções na prática

A indentação se aplica aos blocos abertos por chaves; escolha tabulação ou 2, 3, 4 ou 8 espaços. As linhas em branco são limitadas ao valor escolhido, de removê-las por completo a manter todas. O estilo de chaves controla onde fica a chave de abertura: na mesma linha de sub, if, while e companhia (o layout usual em Perl, K&R), em linha própria (Allman), ou na mesma linha com else e elsif movidos para uma linha nova depois da chave de fechamento.

A quebra nunca corta um token no meio: quando uma linha passa do comprimento escolhido, as quebras ficam depois das vírgulas e a continuação é indentada exatamente um nível a mais. Blocos de map, grep e sort de uma linha que cabem permanecem em linha; o resto é expandido em linhas próprias.

O que ele não faz

O formatador não executa perl -c: não verifica sintaxe, não resolve módulos, não avalia blocos BEGIN nem reporta erros. Se a entrada tem aspas sem fechar, ponto e vírgula faltando ou chave sobrando, a saída mantém o problema; consertar código é trabalho de um linter ou do interpretador, não de uma passada de layout.

Ele também não reestrutura o programa. Instruções não são reordenadas, expressões não são reescritas e o formatador não tem opinião sobre qual de dois idiomas equivalentes é melhor. Guarde uma cópia do original e compare o resultado como compararia qualquer arquivo formatado.

Ferramentas recentes: