use strict; use warnings; use feature qw( say ); use Tk; use Data::Dumper; use Encode; use Encode qw(is_utf8); use DBD::SQLite; my $mw; # main window $mw = MainWindow->new(); $mw->bind( '' => sub {openfile()} ); MainLoop(); exit; sub openfile{ my $initfile = $mw->getOpenFile; return unless $initfile; say "initfile $initfile"; say 'Dumper: ', Dumper($initfile); my $isutf8 = is_utf8($initfile); say "utf8 flag of initfile is ", $isutf8 ? 'on' : 'off'; if ($isutf8) { say ' contains well-formed UTF-8: ', is_utf8($initfile, 1) ? 'ja' : 'nein'; } $initfile = encode('iso-8859-1', $initfile, Encode::FB_CROAK); say "initfile $initfile"; say 'Dumper: ', Dumper($initfile); $isutf8 = is_utf8($initfile); say "utf8 flag of initfile is ", $isutf8 ? 'on' : 'off'; if ($isutf8) { say ' contains well-formed UTF-8: ', is_utf8($initfile, 1) ? 'ja' : 'nein'; } #connecting to sqlite #my $dbh = DBI->connect("dbi:SQLite:$initfile", "", "", { RaiseError => 1, AutoCommit => 1, PrintError => 0 }); #opening txt file open( my $SUDO, '<', $initfile ) or die("can't open $initfile: $!"); say "opened $initfile"; my @game = <$SUDO>; say "game\n", @game; close($SUDO); return; }