Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]696[/thread]

Eindeutige ID



<< >> 9 Einträge, 1 Seite
gates
 2006-03-21 01:42
#7157 #7157
User since
2006-03-21
1 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen
Ich muss ein PHP Script umschreiben in Perl indem eine
eindeutige 32-stellige ID generiert wird.
md5 (uniqid (rand()))

Wie kann ich das mit Perl erstellen?

Besten Dank schon mal für Eure Hilfe.
renee
 2006-03-21 08:47
#7158 #7158
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Dafür gibt's die Funktion rand (siehe perldoc -f rand) und ein Modul (CPAN:Digest::MD5). Nur was das uniqid macht, weiß ich nicht.

edit pq: s/Digenst/Digest/\n\n

<!--EDIT|pq|1142938353-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
esskar
 2006-03-21 09:15
#7159 #7159
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
du kannst das komplette konstruktur z.b. durch

Code: (dl )
1
2
3
4
sub GetUnique
{
return &Digest::SHA1::sha1_hex(join("", map { chr rand 256 } (1) x (shift || 64)));
}


ersetzen!
Dubu
 2006-03-21 10:13
#7160 #7160
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=gates,21.03.2006, 00:42]Hallo zusammen
Ich muss ein PHP Script umschreiben in Perl indem eine
eindeutige 32-stellige ID generiert wird.
md5 (uniqid (rand()))

Wie kann ich das mit Perl erstellen?[/quote]
rand() ist klar. Bei uniqid() kann man sich eine Funktion vorstellen, die z. B. einen String aus Timestamp + Prozess-ID + Zufallszahl bildet. Das wird schon sehr einmalig. Ein Problem hast du dann eher durch md5(), weil eine Hashfunktion auch aus einer eindeutigen ID per se eben nicht einen ebenso eindeutigen Wert macht. Aber für deine Zwecke wird's vielleicht reichen.
nepos
 2006-03-21 11:12
#7161 #7161
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
uniqid generiert eine eindeutige ID basierend auf der aktuellen Zeit in Mikrosekunden. Das rand wird dabei als Prefix fuer diese eindeutige ID genommen. Wenn mans noch mehr "unique" will, kann man dem uniqid noch als 2. Parameter ein TRUE mitgeben.
Relais
 2006-03-21 13:07
#7162 #7162
User since
2003-08-06
2246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[cpan=uniq id]erleuchtet[/cpan].
Erst denken, dann posten --
27. Deutscher Perl- u. Raku -Workshop (Termin wird noch gesucht) 2025 in München.

Winter is Coming
nepos
 2006-03-21 13:18
#7163 #7163
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Aber nur ohne das Leerzeichen im Link ;)
esskar
 2006-04-18 01:06
#7164 #7164
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
schick sind auch:

CPAN:UUID und/oder
CPAN:Data::UUID
ptk
 2006-04-18 01:49
#7165 #7165
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Wenn der Code im Apache läuft, hat man üblicherweise Zugriff auf $ENV{UNIQUE_ID}.
<< >> 9 Einträge, 1 Seite



View all threads created 2006-03-21 01:42.