use
vars
qw($VERSION @ISA @EXPORT @EXPORT_OK)
;
$VERSION
=
'0.02_01'
;
@ISA
=
qw(Exporter)
;
@EXPORT
=
qw()
;
@EXPORT_OK
=
qw(
rehlha rehlha_8 rehlha_16 rehlha_24 rehlha_32 rehlha_48 rehlha_64 rehlha_96
)
;
sub
rehlha {
my
$b
=
shift
@_
;
my
$ddata
=
join
(
''
,
@_
);
my
$mdkey
=
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890Kj'
;
my
@data
=
split
(//,
$ddata
);
my
$offset
=0;
my
$it
=(
length
(
$ddata
) >> 3)+1;
my
$d
=0;
$ddata
=
"0"
x
$b
;
foreach
(0..
$it
) {
foreach
my
$v
(0..(
$b
-1)) {
$d
=
shift
@data
||1;
$offset
+=
defined
(
ord
(
$d
)) ?
ord
(
$d
) : 1;
$offset
+=
vec
(
$ddata
,
$v
,8);
$offset
=
$offset
& 0x3f;
vec
(
$ddata
,
$v
,8)=
vec
(
$mdkey
,
$offset
,8);
}
}
return
(
$ddata
);
}
sub
rehlha_8 {
return
rehlha( 8,
@_
); }
sub
rehlha_16 {
return
rehlha(16,
@_
); }
sub
rehlha_24 {
return
rehlha(24,
@_
); }
sub
rehlha_32 {
return
rehlha(32,
@_
); }
sub
rehlha_64 {
return
rehlha(64,
@_
); }
sub
rehlha_48 {
return
rehlha(48,
@_
); }
sub
rehlha_96 {
return
rehlha(96,
@_
); }
1;