-Base62x 新增 -Perl 版本手艺完成 Base62x.pm

在此前的一篇Blog(-R/G2SW )中,“-gMIS 吉密斯优化更新+分组项区段AddGroupBySeg/+复制AddByCopy等”, 我们提到“注册行动registerAct: 革新增添 Base62x.class.js”, 初尝跨编程言语、运转时环境举行数据交流的方便,此次也因着布置一个新的 -GWA2 的项目,需要在 -PHP-Perl 中举行多字节非ASCII字符数据的通报,于是就引荐了 -Base62x , 如许 Base62x in Perl 的事情就排上日程,在两个周末的试验下,完成了 Base62x in Perl 的初个版本. 以下是一些运用细节,同时也能够在 -GitHub-Wadelau 上寻觅取得, 或许直接接见 -Base62x .

1. 面向对象编程OOP的 Base62x.pm

use Base62x;

my $base62x = Base62x->new();
my $str = “Hello World!\n”;
my $encoded = $base62x->encode($str);
$str = $base62x->decode($encoded);

在 Perl 顺序的最先,引入 Base62x.pm , 然后天生响应的对象实例,经由过程挪用 该实例的 encode/decode 要领完成响应的编码与解码。
同 Base62x 的其他版本相通,完成了跨编程言语、运转时环境的数据平安交流。
同 Base62x的其他版本一样,Perl版本也完成了针对数字进制转换和ASCII快速处置惩罚的相干要领。如,

my $i = 100;
    # treas $i as base 10 and transform it into Base62x
my $numInBase62x = $base62x->encode($i, 10);
    # try to decode a Base62x num into base 10
$i = $base62x->decode($numInBase62x, 10);

OOP的挪用体式格局,合适举行轮回内反复挪用的运用场景,因为在实例化时,举行了环境变量的初始化而节省了后续反复行动。
.

2. 函数式编程的Base62x.pm

除了 OOP式的写法,Base62x.pm 还供应了函数式编程的挪用体式格局,列以下。

use Base62x qw (base62x_encode base62x_decode);

my $str = “Hello World!\n”;
my $encoded = base62x_encode($str);
$str = base62x_decode($encoded);

函数式编程合适单一次启动并运转的运用场景。
细致完成能够参考 Base62x.pm 的代码。
.

停止现在,Base62x 已能够供应的编程言语版本包含 C, Java, PHP, JavaScript, Perl. 个中JavaScript 另有两个完成, Base62x.class.js 和 npm base62x.

Base62x: An alternative approach to Base64 for only-alphanumeric characters in output.
Base62x is an non-symbolic Base64 encoding scheme. It can be used safely in computer file systems, programming languages for data exchange, internet communication systems, and is an ideal substitute and successor of many variants of Base64 encoding scheme.
Base62x 是一种无标记的Base64编码方案。在计算机文件体系、编程言语数据交流、互联网络通信体系中能够平安地运用,同时是种种变种Base64编码方案的抱负替代品、继任者。

-R/J2SL

    原文作者:wadelau
    原文地址: https://segmentfault.com/a/1190000017972120
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞