Size: a a a

2021 March 11

V2

Venom1 2 in Modern::Perl
еще раз гляну щас
источник

DS

Dmitriy Shamatrin in Modern::Perl
Конкатенация, кстати, тоже делает то же самое
источник

S

Sergey in Modern::Perl
Venom1 2
добрый день, подскажите плз, есть структура данных, например ссылка на хеш, в хеше есть значение как число. делаю encode_json() все ок, все как надо, никаких манипуляция с данными не делаю, только какие-то сравнения, делаю еще раз encode_json() уже в конце функции и там пиздец где должны быть числа уже строки. как быть господа, кто-то с таким сталкивался? не хочется держать доп копию струткуры, это какое-то расточительство ресурсов.
Использование числа в строковом контексте меняет его представление.
источник

S

Sergey in Modern::Perl
Хорошего способа это вылечить нет
источник

DS

Dmitriy Shamatrin in Modern::Perl
Плюсноль 🙂
источник

S

Sergey in Modern::Perl
Самый частый - генерировать структуру для сериализации самому, используя для чисел +0
источник

S

Sergey in Modern::Perl
А для строк - ""
источник

ММ

Максим Максимов... in Modern::Perl
Есть посередине eq 1.0
источник

DS

Dmitriy Shamatrin in Modern::Perl
Максим Максимов
Есть посередине eq 1.0
Это мой код, я написал специально чтобы показать
источник

V2

Venom1 2 in Modern::Perl
жесть, после db->do("sql", $val->{id}) становится строкой
источник

ММ

Максим Максимов... in Modern::Perl
Dmitriy Shamatrin
Конкатенация, кстати, тоже делает то же самое
Конкантенация - операция со строкой
источник

AK

Andrey Karepin in Modern::Perl
во множественном числе
источник

ММ

Максим Максимов... in Modern::Perl
Можно циклом прогнать и кастьонуть в инт int(h->{field})
источник

ММ

Максим Максимов... in Modern::Perl
Сорян за очепятки, на морозе не попадаю
источник

SZ

Sergey Zhmylove in Modern::Perl
Denis F
У тебя тут два запроса - один ставит куку, второй использует. А у меня три,  первый ставит, второй использует от первого запроса и добавляет свою и третий использует обе. Вот на шаге "добавляет свою" все и ломается.
Как ты это делаешь?
источник

SZ

Sergey Zhmylove in Modern::Perl
Короче я не разобрался, поэтому всё в один файл: https://paste.ubuntu.com/p/T9S2yBmtg4/
источник

И

Игорь in Modern::Perl
Dmitriy Shamatrin
use strict;
use warnings;

use JSON;

my $h = {
   one => 1.0
};

print encode_json($h), "\n";
if ($h->{one} == 1.0) {
   print "Equal\n";
}
print encode_json($h), "\n";
if ($h->{one} eq 1.0) {
   print "Equal\n";
}
print encode_json($h), "\n";
Кстати, JSON::PP (https://perldoc.perl.org/JSON::PP) у меня таких преобразований не делает и выводит:
{"one":1}
Equal
{"one":1}
Equal
{"one":1}


Модуль JSON - это что такое? Не могу найти его в списке модулей на https://perldoc.perl.org.
источник

DS

Dmitriy Shamatrin in Modern::Perl
https://metacpan.org/pod/JSON
Использует JSON::XS
источник

W

Warstone in Modern::Perl
Если что, лучше использовать вот этот модуль: https://metacpan.org/pod/Cpanel::JSON::XS
источник

И

Игорь in Modern::Perl
Интересненько. По описанию можно было подумать, что JSON::PP и JSON::XS должны одинаковый json давать на выходе.
JSON::PP - JSON::XS compatible pure-Perl module.
источник