Actions Status MetaCPAN Release

NAME

App::Greple::charcode - greple module to annotate unicode character data

SYNOPSIS

greple -Mcharcode ...

greple -Mcharcode [ module option ] -- [ command option ] ...

COMMAND OPTION
  --no-annotate  do not print annotation
  --composite    find composite character (combining character sequence)
  --precomposed  find precomposed character
  --combind      find both composite and precomposed characters
  --dt=type      specify decomposition type
  --ansicode     find ANSI terminal control sequences

MODULE OPTION
  --[no-]column  display column number
  --[no-]char    display character itself
  --[no-]width   display width
  --[no-]code    display character code
  --[no-]name    display character name
  --[no-]visible display character name
  --[no-]split   put annotattion for each character
  --align=#      align annotation

  --config KEY[=VALUE],...
           (KEY: column char width code name visible align)

VERSION

Version 0.9902

DESCRIPTION

App::Greple::charcode displays Unicode information about the matched characters. It can also visualize zero-width combining or hidden characters, which can be useful for examining text containing such characters.

The following output, retrieved from this document for non-ASCII characters (\P{ASCII}), shows that the character \N{VARIATION SELECTOR-15} is included after the copyright character. The same character, presumably left over from editing, is also included after a normal ASCII t character.

$ greple -Mcharcode '\P{ASCII}' charcode.pm

        ┌───  12 \x{fe0e} \N{VARIATION SELECTOR-15}
        │ ┌─  14 \x{a9} \N{COPYRIGHT SIGN}
        │ ├─  14 \x{fe0e} \N{VARIATION SELECTOR-15}
Copyright︎ ©︎ 2025 Kazumasa Utashiro.

The nasal sound of the K line (カ行) in Japanese is sometimes represented by adding a semivoiced dot to the K line character, and since Unicode does not define a corresponding character, it is represented by combining the original character with a combining character. This module allows you to see how it is done.

┌─────────   0 \x{30ab} \N{KATAKANA LETTER KA}
├─────────   0 \x{309a} \N{COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK}
│ ┌───────   2 \x{30ad} \N{KATAKANA LETTER KI}
│ ├───────   2 \x{309a} \N{COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK}
│ │ ┌─────   4 \x{30af} \N{KATAKANA LETTER KU}
│ │ ├─────   4 \x{309a} \N{COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK}
│ │ │ ┌───   6 \x{30b1} \N{KATAKANA LETTER KE}
│ │ │ ├───   6 \x{309a} \N{COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK}
│ │ │ │ ┌─   8 \x{30b3} \N{KATAKANA LETTER KO}
│ │ │ │ ├─   8 \x{309a} \N{COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK}
カ゚キ゚ク゚ケ゚コ゚

COMMAND OPTIONS

CHARACTER CODE OPTIONS

The following options are used to search for Unicode combining characters.

If multiple patterns are given to greple, it normally prints only the lines that match all of the patterns. However, for the purposes of this module, it is desirable to display lines that match any of them, so the --need=1 option is specified by default.

If multiple patterns are specified, the strings matching each pattern will be displayed in a different color.

MODULE OPTIONS

CONFIGURATION

Configuration parameters can be set in several ways.

MODULE START FUNCTION

The start function of a module can be specified at the same time as the module declaration.

greple -Mcharcode::config(width,name=0)

greple -Mcharcode::config=width,name=0

PRIVATE MODULE OPTION

Module-specific options are specified between -Mcharcode and --.

greple -Mcharcode --config width,name=0 -- ...

CONFIGURATION PARAMETERS

INSTALL

cpanm -n App::Greple::charcode

SEE ALSO

App::Greple

App::Greple::charcode

App::Greple::annotate

LICENSE

Copyright︎ ©︎ 2025 Kazumasa Utashiro.

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

AUTHOR

Kazumasa Utashiro