The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


Lingua::ZH::Wrap - Wrap Chinese text


This document describes version 0.03 of Lingua::ZH::Wrap, released July 25, 2004.


Example 1

    use Lingua::ZH::Wrap;

    $initial_tab = "\t";        # Tab before first line
    $subsequent_tab = "";       # All other lines flush left

    print wrap( $initial_tab, $subsequent_tab, @lines );

Example 2

    use Lingua::ZH::Wrap qw(wrap $columns $overflow);

    $columns  = 75;             # Change columns
    $overflow = 1;              # Chinese char may occupy 76th col

    print wrap( '', '', @lines );


Lingua::ZH::Wrap::wrap() is a very simple paragraph formatter. It formats a single paragraph at a time by breaking lines at Chinese character boundries.

Indentation is controlled for the first line ($initial_tab) and all subsequent lines ($subsequent_tab) independently. Please note: $initial_tab and $subsequent_tab are the literal strings that will be used: it is unlikely you would want to pass in a number.


Lingua::ZH::Wrap::wrap() has a number of variables that control its behavior.

Lines are wrapped at $Lingua::ZH::Wrap::columns columns; if a Chinese character just extends columns by one byte, it will be wrapped into the next line, unless $Lingua::ZH::Wrap::overflow is set to a true value.


The algorithm doesn't care about breaking non-Chinese words. Also, if you pass in strings encoded unicode, it will currently first decode into Big5, do the conversion, then convert back.

Patches are, of course, very welcome; in particular, I'd like to use Lingua::ZH::TaBE to avoid beginning-of-line punctuations, as well as employing other semantic-sensitive formatting techniques.




Autrijus Tang <>


Copyright 2003, 2004 by Autrijus Tang <>.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.