App-uniprint
view release on metacpan or search on metacpan
script/uniprint view on Meta::CPAN
#!perl
use 5.010001;
use strict;
use utf8;
use warnings;
use charnames ();
use Encode qw(decode_utf8);
use Getopt::Long;
our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
our $DATE = '2025-11-28'; # DATE
our $DIST = 'App-uniprint'; # DIST
our $VERSION = '0.002'; # VERSION
my %Opts = (
);
sub parse_cmdline {
my $res = GetOptions(
'help|h' => sub {
print <<USAGE;
Usage:
uniprint [OPTION]... STRING ...
uniprint [OPTION]... < INPUT
uniprint --help, -h
uniprint --version, -v
Options:
(None at the moment)
For more details, see the manpage/documentation.
USAGE
exit 0;
},
'version|v' => sub {
no warnings 'once';
say "uniprint version ", ($main::VERSION // 'dev');
exit 0;
},
);
exit 99 if !$res;
}
sub _print_char {
my $char = shift;
my $ord = ord($char);
my $name = charnames::viacode($ord);
printf "%s\t%6d\t%05x\t%s\n", $char, $ord, $ord, $name;
}
sub run {
binmode STDOUT, ":encoding(UTF-8)";
if (@ARGV) {
for my $arg (@ARGV) {
for my $char (split //, decode_utf8($arg, 1)) {
_print_char($char);
}
}
} else {
while (defined(my $line = <>)) {
chomp $line;
for my $char (split //, $line) {
_print_char($char);
}
}
}
}
# MAIN
parse_cmdline();
run();
1;
# ABSTRACT: Print each Unicode character of input, along with its codepoint and name
# PODNAME: uniprint
__END__
=pod
=encoding UTF-8
=head1 NAME
uniprint - Print each Unicode character of input, along with its codepoint and name
=head1 VERSION
This document describes version 0.002 of uniprint (from Perl distribution App-uniprint), released on 2025-11-28.
=head1 SYNOPSIS
% uniprint [OPTION]... STRING ...
% uniprint [OPTION]... < INPUT
Examples:
% uniprint "IðU, ð«°"
I 73 00049 LATIN CAPITAL LETTER I
ð 128153 1f499 BLUE HEART
U 85 00055 LATIN CAPITAL LETTER U
, 44 0002c COMMA
32 00020 SPACE
ð«° 129776 1faf0 HAND WITH INDEX FINGER AND THUMB CROSSED
=head1 DESCRIPTION
=head1 EXIT CODES
0 on success.
99 on command-line options error.
=head1 OPTIONS
=over
=back
=head1 FAQ
=head1 HOMEPAGE
Please visit the project's homepage at L<https://metacpan.org/release/App-uniprint>.
=head1 SOURCE
Source repository is at L<https://github.com/perlancar/perl-App-uniprint>.
=head1 SEE ALSO
L<uni> from L<App::Uni>
=head1 AUTHOR
perlancar <perlancar@cpan.org>
=head1 CONTRIBUTING
To contribute, you can send patches by email/via RT, or send pull requests on
GitHub.
Most of the time, you don't need to build the distribution yourself. You can
simply modify the code, then test via:
% prove -l
If you want to build the distribution (e.g. to try to install it locally on your
system), you can install L<Dist::Zilla>,
L<Dist::Zilla::PluginBundle::Author::PERLANCAR>,
L<Pod::Weaver::PluginBundle::Author::PERLANCAR>, and sometimes one or two other
Dist::Zilla- and/or Pod::Weaver plugins. Any additional steps required beyond
that are considered a bug and can be reported to me.
( run in 1.731 second using v1.01-cache-2.11-cpan-e1769b4cff6 )