r2 - 08 Mar 2006 - IgorSutton
NOME
Text::Wrap - quebras de linha para formar parágrafosSINOPSE
Exemplo 1use 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);
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().
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'.
EXEMPLO
print wrap("\t","","Este é um pedaço de texto com a
formatação normal de um livro");
