Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Perl - помогите со splice, нужно преобразовать (перевернуть) часть байтового массива / 3 сообщений из 3, страница 1 из 1
25.07.2015, 19:27
    #39016021
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl - помогите со splice, нужно преобразовать (перевернуть) часть байтового массива
Есть у меня БД MongoDB, в которой в качестве идентификаторов документов используется DEPRECATED_UUID (субтип 0x03).
В строковом виде я его получаю так:
Код: plaintext
unpack('H*', MongoDB::BSON::Binary->data)
Значение такое: f6a5055dba32a54db0c00451c4a3843c , то есть 16 байт или 32 символа.

Есть также веб-сервис, который возвращает справочник идентификаторов с наименованиями объектов.
Веб-сервис сделан на .NET (C#, если не ошибаюсь), он возвращает UUID в своем формате:
Код: plaintext
5d05a5f632ba-4da5-b0c0-0451c4a3843c
Мне нужно этот идентификатор привести к первому формату:
Код: plaintext
1.
2.
5d05a5f632ba4da5b0c00451c4a3843c
f6a5055dba32a54db0c00451c4a3843c
Мне нужно "перевернуть" цветные группы.

Код: php
1.
2.
3.
4.
my $id = "5d05a5f632ba-4da5-b0c0-0451c4a3843c";
$id =~ s/\-//; #убираю дефисы
$id = unpack('C*', pack('H*', $id)); #преобразую в байтовый массив
splice @$id, 0, 4, reverse(@$id[0..3]) #как тут нужно сделать правильно?



________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
25.07.2015, 19:50
    #39016025
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl - помогите со splice, нужно преобразовать (перевернуть) часть байтового массива
Вроде бы так:
Код: php
1.
2.
3.
4.
5.
6.
7.
my $id = "5d05a5f632ba-4da5-b0c0-0451c4a3843c";
$id =~ s/\-//g;
$id = [unpack('C*', pack('H*', $id))];
splice @$id, 0, 4, reverse(@$id[0..3]);
splice @$id, 4, 2, reverse(@$id[4..5]);
splice @$id, 6, 2, reverse(@$id[6..7]);
$id = unpack('H*', pack('C*', @$id));



Ничего не напутал? А то у splice синтаксис какой-то запутанный.
...
Рейтинг: 0 / 0
26.07.2015, 20:45
    #39016215
volodin661
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl - помогите со splice, нужно преобразовать (перевернуть) часть байтового массива
Alibek B.,

Код: php
1.
2.
s/^(\w\w)(\w\w)(\w\w)(\w\w)(\w\w)(\w\w)(\w\w)(\w\w)/$4$3$2$1$6$5$8$7/
                for  '5d05a5f632ba4da5b0c00451c4a3843c';
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Perl - помогите со splice, нужно преобразовать (перевернуть) часть байтового массива / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]