NAME

Text::VisualPrintf - printf family functions to handle Non-ASCII characters

SYNOPSIS

use Text::VisualPrintf;
Text::VisualPrintf::printf(FORMAT, LIST)
Text::VisualPrintf::sprintf(FORMAT, LIST)

use Text::VisualPrintf qw(vprintf vsprintf);
vprintf(FORMAT, LIST)
vsprintf(FORMAT, LIST)

DESCRIPTION

Text::VisualPrintf is a almost-printf-compatible library with a capability of handling multi-byte wide characters properly.

FUNCTIONS

printf(FORMAT, LIST)
sprintf(FORMAT, LIST)
vprintf(FORMAT, LIST)
vsprintf(FORMAT, LIST)

Use just like perl's printf and sprintf functions except that printf does not take FILEHANDLE as a first argument.

BUGS

Text truncation is not supported. Next program does not work.

vsprintf("%.4s", "一二三");

IMPLEMENTATION NOTES

Strings in the LIST which contains wide-width character are replaced before formatting, and recovered after the process.

Unique replacement string contains a combination of control characters (Control-A to Control-E). If the FORMAT contains all of these two bytes combinations, the function behaves just like a standard one.

Because this mechanism expects entire replacement string can be found in formatted text, it does not work when the string is truncated by maximum precision.

SEE ALSO

Text::VisualPrintf::IO

Text::VisualWidth::PP

https://github.com/kaz-utashiro/Text-VisualPrintf

AUTHOR

Kazumasa Utashiro

LICENSE

Copyright (C) 2011-2020 Kazumasa Utashiro.

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