У меня довольно простой скрипт на Perl:
use JSON;
use open qw/ :std :encoding(utf8) /;
#my $ref = JSON::decode_json($json_contents);
my $path = "/home/chambres/web/x.org/public_html/cgi-bin/links/admin/booking_import/import/file.json";
my $json_contents = slurp_utf8_file($path);
my $ref = JSON->new->utf8->decode($json_contents);
sub slurp_utf8_file {
my @back;
#open my $in, '<:encoding(UTF-8)', $_[0] or die $!;
open my $in, "<$_[0]" or die $!;
while (<$in>) {
push @back, $_
}
close ($in);
return join("", @back);
}
Файл закодирован в UTF-8 в Notepad ++:
... но когда я запускаю свой скрипт, я получаю:
perl test.cgi
Wide character in subroutine entry at test.cgi line 11.
Строка 11:
my $ref = JSON->new->utf8->decode($json_contents);
Я сбит с толку относительно того, что я делаю неправильно.Может быть, мне просто нужен перерыв!Любые советы будут высоко ценится!