我们如何在Perl中创建唯一ID

18 perl perl-module

我想创建一个UniqueId.有没有我可以调用的函数,这样每次当我使用它时它会给我一个新的Id,总是有不同的值?

Ric*_*dle 22

使用Data :: UUID生成唯一ID:

use Data::UUID;

$ug    = Data::UUID->new;
$uuid1 = $ug->create();   # Or create_str()
Run Code Online (Sandbox Code Playgroud)


Pie*_*rre 10

如果您对可以使用的模块有一些限制并且您在 Linux 上运行脚本,则可以使用以下解决方法:

my $uuid = `cat /proc/sys/kernel/random/uuid`;
Run Code Online (Sandbox Code Playgroud)

您无需在系统上安装新软件包即可使用它。

  • 打字稍微多一些,但使用 perl 函数打开和读取文件肯定比使用外部 cat 更快,例如 `$uuid = do { open my $fh, "/proc/sys/kernel/random/uuid" or die $ !;标量 <$fh> };` (3认同)

Dev*_*per 7

更好的方法也可以使用它

use UUID::Generator::PurePerl;

sub create_search_id {
    my $this =shift;
    my $args=shift;
    my $ug = UUID::Generator::PurePerl->new();
    my $uuid1 = $ug->generate_v1();
    return $uuid1;
}
Run Code Online (Sandbox Code Playgroud)

从这里你可以了解Link


kri*_*spy 6

使用Data::GUID 的另一种选择

use Data::GUID;
my $guid = Data::GUID->new;
my $uniqueIdString = guid->as_string;
Run Code Online (Sandbox Code Playgroud)

或者

use Data::GUID;
my $uniqueIdString = Data::GUID->new->as_string;
Run Code Online (Sandbox Code Playgroud)


ian*_*eks 5

可能值得注意的是,在Windows计算机上,您也可以使用Win32:

use Win32;    
my $guid = Win32::GuidGen();
Run Code Online (Sandbox Code Playgroud)