LINUX.ORG.RU

История изменений

Исправление outtaspace, (текущая версия) :

#!/usr/bin/perl

use utf8;
use strict;
use warnings;
use Data::Dumper;

# укажет что от нас ждут юникодный "выхлоп"
# без этого будут варнинги: Wide character in print
use open qw/:encoding(UTF-8) :std/;

# собственно "выхлоп"
print {*STDOUT} "привет\n";
print {*STDERR} "привет\n";

my @files = glob './*';

# проверяем, скорее всего у кириллических строк (имен файлов)
# не установлен юникодный флаг
printf qq{%s => %s\n}, $_, utf8::is_utf8($_) for @files;
print {*STDOUT} Dumper \@files;

# теперь надо явно поднять юникодный флаг для элементов массива
@files = map { utf8::decode($_); $_ } @files;

# проверяем еще раз
printf qq{%s => %s\n}, $_, utf8::is_utf8($_) for @files;
print {*STDOUT} Dumper \@files;

Исправление outtaspace, :

#!/usr/bin/perl

use utf8;
use strict;
use warnings;
use Data::Dumper;

# укажет что от нас ждут юникодный "выхлоп"
# без этого будут варнинги: Wide character in print
use open qw/:encoding(UTF-8) :std/;

# собственно "выхлоп"
print {*STDOUT} "привет\n";
print {*STDERR} "привет\n";

my @files = glob './*';

# проверяем, скорее всего у кириллических строк (имен файлов)
# не установлен юникодный флаг
printf qq{%s => %s\n}, $_, utf8::is_utf8($_) for @files;
print {*STDOUT} Dumper \@files;

# теперь надо явно поднять юникодный флаг для элементов массива
my @files = map { utf8::decode($_); $_ } glob q{./*};

# проверяем еще раз
printf qq{%s => %s\n}, $_, utf8::is_utf8($_) for @files;
print {*STDOUT} Dumper \@files;

Исправление outtaspace, :

#!/usr/bin/perl

use utf8;
use strict;
use warnings;
use Data::Dumper;

# укажет что от нас ждут юникодный "выхлоп"
# без этого будут варнинги: Wide character in print
use open qw/:encoding(UTF-8) :std/;

# собственно "выхлоп"
print {*STDOUT} "привет\n";
print {*STDERR} "привет\n";

my @files = glob q{./*};

# проверяем, скорее всего у кириллических строк (имен файлов)
# не установлен юникодный флаг
printf qq{%s => %s\n}, $_, utf8::is_utf8($_) for @files;
print {*STDOUT} Dumper \@files;

# теперь надо явно поднять юникодный флаг для элементов массива
my @files = map { utf8::decode($_); $_ } glob q{./*};

# проверяем, скорее всего у кириллических строк (имен файлов)
# не установлен юникодный флаг
printf qq{%s => %s\n}, $_, utf8::is_utf8($_) for @files;
print {*STDOUT} Dumper \@files;

Исходная версия outtaspace, :

#!/usr/bin/perl

use utf8;
use strict;
use warnings;
use Data::Dumper;

# укажет что от нас ждут юникодный "выхлоп"
# без этого будут варнинги: Wide character in print
use open qw(:encoding(UTF-8) :std);

# собственно "выхлоп"
print {*STDOUT} "привет\n";
print {*STDERR} "привет\n";

my @files = glob q{./*};

# проверяем, скорее всего у кириллических строк (имен файлов)
# не установлен юникодный флаг
printf qq{%s => %s\n}, $_, utf8::is_utf8($_) for @files;
print {*STDOUT} Dumper \@files;

# теперь надо явно поднять юникодный флаг для элементов массива
my @files = map { utf8::decode($_); $_ } glob q{./*};

# проверяем, скорее всего у кириллических строк (имен файлов)
# не установлен юникодный флаг
printf qq{%s => %s\n}, $_, utf8::is_utf8($_) for @files;
print {*STDOUT} Dumper \@files;