BEGIN { push @INC, '.' }
use Shiar_Sheet::DB;
-use open ':std' => ':utf8';
+use open ':std' => ':encoding(utf-8)';
my $db = Shiar_Sheet::DB->connect;
say 'use utf8;';
use Data::Dump 'pp';
my %rows;
-if (my $lang = shift @ARGV) {
+my $lang = shift @ARGV or die "Missing language\n";
+{
my %filter = (lang => $lang);
- my $cols = "ref, id, prio, array_to_string(form || alt, '/')";
- %rows = $db->select(_word_ref => $cols, \%filter)->map_arrays;
+ my $cols = "ref, array_to_string(form || alt, '/'), prio, id, sub";
+ %rows = $db->select(_word => $cols, \%filter)->map_arrays;
+ defined $_->[-1] or pop @$_ for values %rows;
+ $rows{''} = [
+ (undef) x 3,
+ [$db->select(word => 'id', {cat => undef, ref => undef})->flat]
+ ];
say pp \%rows
=~ s/\\x\{([0-9A-F]+)\}/chr hex $1/ger;
- exit;
-}
-else {
- %rows = $db->select(_cat_words => "coalesce(id::text, ''), forms")->map;
- $_ = [ map { [split /:/, $_, 3] } @{$_} ] for values %rows;
- say pp \%rows;
}