Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> управление сложными структурами данных и utf8 
:(
    Опции темы
slavenk
Дата 1.7.2013, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TheAthlete
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 22.10.2009

Репутация: нет
Всего: нет



Здравствуете!
Изучаю главу 6 "Управление сложными структурами данных" книги "Шварц Р., Фой Б., Феникс Т. - Perl. Изучаем глубже. 2-е издание". Столкнулся с такой проблемой: некорректно выводятся данные в кириллице (utf8).

Нашел только костыль для Data::Dumper:

Код

use Data::Dumper;

$Data::Dumper::Useqq = 1;

{
  no warnings 'redefine';
  sub Data::Dumper::qquote {
    my $s = shift;
    return "'$s'";
  }
}


perl debugger (perl -d) и YAML некорректно показывает юникод. Подскажите пожайлуста, как решить данную проблему.
PM MAIL ICQ Skype   Вверх
arto
Дата 1.7.2013, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



# perl -CSA -de0
  DB<1> %h = ('a' => "Тест 1", 'b' => "Тест 2")

  DB<2> x \%h
0  HASH(0xac0db0)
   'a' => 'Тест 1'
   'b' => 'Тест 2'
  DB<3> 

или вы имеете ввиду что то иное?
PM MAIL ICQ   Вверх
slavenk
Дата 2.7.2013, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TheAthlete
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 22.10.2009

Репутация: нет
Всего: нет



Вот пример:

ex_1.pl

Код

#!/usr/bin/perl -w
use utf8::all;
use feature 'say';

my $test = 'тест';
say $test;


Вывод отладки:

perl -d ex_1.pl 

Loading DB routines from perl5db.pl version 1.37
Editor support available.

Enter h or 'h h' for help, or 'man perldebug' for more help.

main::(ex_1.pl:5):      my $test = 'тест';
  DB<1> s                                                                                                                                                                          
main::(ex_1.pl:6):      say $test;
  DB<1> x $test                                                                                                                                                                    
0  '\x{0442}\x{0435}\x{0441}\x{0442}'
  DB<2>       
PM MAIL ICQ Skype   Вверх
arto
Дата 2.7.2013, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



переопределите как вам надо main::dumpValue():

# perl -d t.pl
main::(t.pl:5): my $test = 'тест';
  DB<1> binmode $DB::OUT, ':utf8' if $DB::OUT;

  DB<2> sub main::dumpValue { print $DB::OUT join "\n", @{ $_[0] }; print $DB::OUT "\n" }

  DB<3> n
main::(t.pl:6): say $test;
  DB<3> x $test
тест

PM MAIL ICQ   Вверх
slavenk
Дата 2.7.2013, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TheAthlete
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 22.10.2009

Репутация: нет
Всего: нет



Спасибо большое, заработало.
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0437 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.