Perl Brasil

Pesquisar

Documentação

Artigos

Planeta

Eventos

Comunidade

r2 - 08 Mar 2006 - IgorSutton


NOME

Text::Wrap - quebras de linha para formar parágrafos

voltar para o topo


SINOPSE

Exemplo 1
  use Text::Wrap
  $tab_inicial = "\t";  # Coloca um 'tab' no início do parágrafo
  $tab_subsequente = "";        # Todas outras linhas alinhadas à esquerda
  print wrap($tab_inicial, $tab_subsequente, @texto);
  print fill($tab_inicial, $tab_subsequente, @texto);
  $linhas = wrap($tab_inicial, $tab_subsequente, @texto);
  @paragrafos = fill($tab_inicial, $tab_subsequente, @texto);
Exemplo 2
  use Text::Wrap qw(wrap $columns $huge);
  $columns = 132;               # Quebra a linha em 132 colunas
  $huge = 'die';
  $huge = 'wrap';
  $huge = 'overflow';
Exemplo 3
  use Text::Wrap
  $Text::Wrap::columns = 72;
  print wrap('', '', @texto);

voltar para o topo


DESCRIÇÃO

Text::Wrap::wrap() é um formatador de parágrafos. Ele formata um parágrafo por vez quebrando as linhas respeitando um tamanho de colunas configurável. A indentação é controlada para a primeira linha, com a variável $tab_inicial e todas as linhas subsequentes, através da variável $tab_subsequente, independentemente. Preste atenção no fato que $tab_inicial e $tab_subsequente são strings literais: dificilmente você irá atribuir um número a elas. Text::Wrap::fill() é um formatador de múltiplos parágrafos. Ele formata cada parágrafo separadamente e então os junta quando estiver pronto. Ele irá destruir qualquer espaço em branco adicional no texto original. Ele quebra o texto em parágrafos procurando por um espaço em branco após uma nova linha. Em outros aspectos, ele executa as mesmas funções de wrap().

voltar para o topo


CONFIGURAÇÃO

Text::Wrap::wrap() possui diversas variáveis que controlam seu comportamento. Você não deve modificar o conteúdo destas variáveis, pois outros módulos podem utilizar Text::Wrap::wrap(). Caso você necessite modificar alguma de suas variáveis, então você deve utilizar local $Text::Wrap::VARIAVEL = SEUVALOR, para que o valor original seja restaurado após sair do escopo onde a variável é atribuida. A dica de utilização de local() não irá funcionar se você importar a variável em seu próprio namespace. As linhas são divididas na coluna $Text::Wrap::columns. Esta variável deve ser configurada para o tamanho máximo do seu dispositivo de saída. Toda linha processada terá como tamanho não mais de $columns - 1. É possível controlar quais caracteres terminam palavras modificando a variável $Text::Wrap::break. Atribua à ela uma string como '[\s:]' para quebrar a linha antes de espaços e dois-pontos) ou uma expressão regular pré-compilada, como qr/[\s']/ para quebrar antes de espaços ou apóstrofes. O valor inicial para esta variável é '\s'; isto é, palavras que são terminadas com um espaço. Isto significa, entre outrsa coisas, que pontuação como ponto-final ou vírgulas ficam com as palavras que elas estão ``coladas''. Nota para principiantes: No exemplo 2, a variável $columns é importada no namespace local, e atribuida localmente. No exemplo 3, $Text::Wrap::columns é atribuída em seu próprio namespace, sem importá-la. A função Text::Wrap::wrap() começa seu trabalho expandindo todos os caracteres de tabulação em espaços, sem alterar o texto original. A última operação que ele faz é transformar espaços em tabulação, de volta. No caso de você não querer tabulação nos seus resultados, atribua um valor falso à $Text::Wrap::unexpand. Você pode também modificar o tamanho das tabulações (tabstops), atribuindo à variável $Text::Wrap::tabstop o número de caracteres que você deseja. Se você necessitar separar suas linhas com um caracter diferente de \n, atribua à $Text::Wrap::separator o valor de sua preferência. Quando palavras mais longas que $columns são encontradas, elas são quebradas, adicionando um caractere \n" na coluna $columns. Este comportamento pode ser modificado configurando a variável $huge para 'die' ou 'overflow'. Quando configurado como 'die', wrap() executará die() quando encontrar uma palavra com estas características. Quando configurado como 'overflow', estas palavras serão mantidas intactas. Notas históricas: 'die' era o valor inicial de $huge. Agora o valor inicial é 'wrap'.

voltar para o topo


EXEMPLO

  print wrap("\t","","Este é um pedaço de texto com a
      formatação normal de um livro");

voltar para o topo


AUTOR

David Muir Sharnoff <muir@idiom.com> com ajuda de Tim Pierce e muitos outros.

voltar para o topo


TRADUÇÃO

Igor Sutton <igor@izut.com>

voltar para o topo