generate better hex ids for manually created badly formed guids
This commit is contained in:
parent
0ddd109775
commit
596420cd1f
1 changed files with 6 additions and 4 deletions
|
|
@ -145,7 +145,7 @@ sub session {
|
||||||
|
|
||||||
=head2 toHex ( guid )
|
=head2 toHex ( guid )
|
||||||
|
|
||||||
Returns the hex value of a guid
|
Returns the hex value of a guid. For all GUIDs generated by the generate method, the return value will be 32 characters long. For some manually created invalid GUIDs, it may be 33 characters long.
|
||||||
|
|
||||||
=head3 guid
|
=head3 guid
|
||||||
|
|
||||||
|
|
@ -154,11 +154,13 @@ guid to convert to hex value.
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
sub toHex {
|
sub toHex {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my $id = shift;
|
my $id = shift;
|
||||||
$id =~ tr{_-}{+/};
|
$id =~ tr{_-}{+/};
|
||||||
my $bin_id = decode_base64("$id==");
|
$id .= 'AA';
|
||||||
my $hex_id = sprintf('%*v02x', '', $bin_id);
|
my $bin_id = decode_base64($id);
|
||||||
|
my $hex_id = unpack("H*", $bin_id);
|
||||||
|
$hex_id =~ s/0{3,4}$//;
|
||||||
return $hex_id
|
return $hex_id
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue