Использую perl 5.20 в debian 8. Вот такой код:
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use open qw(:utf8 :std);
use Data::Dumper;
print "тест utf8\n";
my @files = glob "Стільниця/*";
push @files, "кирилица для Dumper";
print Dumper @files;
2/0; # Делаем ошибку для проверки utf8 в STDERR
Даёт вот такой результат:
Useless use of division (/) in void context at ./СÑÑлÑниÑÑ/test_utf8.pm line 14.
тест utf8
$VAR1 = 'СÑÑлÑниÑÑ/ÑеÑÑ.txt';
$VAR2 = 'СÑÑлÑниÑÑ/test_utf8.pm';
$VAR3 = "\x{43a}\x{438}\x{440}\x{438}\x{43b}\x{438}\x{446}\x{430} \x{434}\x{43b}\x{44f} Dumper";
Illegal division by zero at ./СÑÑлÑниÑÑ/test_utf8.pm line 14.
Как видите нормально прошло только print с строкой utf8, всё остальное ..., ну вы видите. Как заставить perl выводить кирилицу а не кракозябры???
А ещё где-то читал что в perl самая лучшая поддержка юникода. Если это называется «лучшая» то мне страшно представить что творится в других языках.