2013-09-05 34 views
14

Tôi muốn tạo một UniqueId. Có chức năng nào tôi có thể gọi, sao cho mỗi khi tôi sử dụng nó sẽ cho tôi một Id mới, luôn luôn có một giá trị khác?Cách chúng tôi có thể tạo một Id duy nhất trong Perl

+0

như khi nào tôi sẽ gọi chương trình con đó, nó sẽ cung cấp cho tôi Id duy nhất –

+0

băm mật mã? Trình tạo số ngẫu nhiên về cơ bản –

+0

băm mật mã là gì ?? –

Trả lời

6

Cách tốt hơn bạn có thể sử dụng điều này cũng

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; 
} 

Từ đây bạn có thể tìm hiểu về Link

+0

nếu tôi muốn nối tôi có thể làm trong chức năng này ?? –

+1

yup trong $ uuid1 u có thể nối với nhau – Developer

+0

tính năng này hoạt động tốt cho tôi –

20

Sử dụng Data::UUID tạo ID duy nhất:

use Data::UUID; 

$ug = Data::UUID->new; 
$uuid1 = $ug->create(); # Or create_str() 
+0

+1 cho ans đẹp – Backtrack

0

tôi đã sử dụng Data::Uniqid, module này có 3 phương pháp:

use Data::Uniqid qw (suniqid uniqid luniqid); 
$id = suniqid; #genrates a very short id valid only for the localhost and with a liftime of 1 day 
$id = uniqid; #generates a short id valid on the local host 
$id = luniqid; #generates a long id valid everywhere and ever 
3

Một thay thế sử dụng Data::GUID, mà được cho là hơi ít gây nhầm lẫn hơn dữ liệu :: UUID

use Data::GUID; 
my $guid = Data::GUID->new; 
my $uniqueIdString = guid->as_string; 

hoặc

use Data::GUID; 
my $uniqueIdString = Data::GUID->new->as_string; 
4

Có lẽ đáng chú ý là với các máy Windows, bạn cũng có thể sử dụng Win32:

use Win32;  
my $guid = Win32::GuidGen(); 
+0

... được bao gồm trong một cài đặt Perl trên Windows. – Wolf