use warnings;
use open IO => ':utf8';
-use Unicode::UCD qw(charinfo);
-
our $VERSION = '1.0';
$header{content_type} = 'text/html; charset=utf-8';
print '<td>';
next;
}
- my $chr = $di->{$mnem};
- my $glyph = chr $chr;
- utf8::upgrade($glyph); # prevent latin1 output
- my $info = charinfo($chr);
+ my ($codepoint, $name, $prop, $script) = @{ $di->{$mnem} };
- my $desc = $mnem;
- $desc .= " ($_)" for $info->{name} || ();
-
- my @class = 'X';
- push @class, $_ for $info->{category} || ();
- push @class, $_ for $info->{script} || ();
+ my $glyph = chr $codepoint;
+ utf8::upgrade($glyph); # prevent latin1 output
+ my $desc = $mnem . ($name && " ($name)");
+ my @class = ('X', grep {$_} $prop, $script);
$glyph = quote($glyph);
- $glyph = "<span>$glyph</span>" if $info->{category} eq 'Zs';
+ $glyph = "<span>$glyph</span>" if $prop eq 'Zs';
printf "\n".'<td class="%s" title="%s">%s',
join(' ', @class), quote($desc), $glyph;