特にまだ用途はないのだけど、STFの64ビットID生成ロジックにNet::Serverでフロントエンドつけて、さらにCache::Memcached風味な、複数サーバーのうちどれからかIDを取ってくる、という形でユニークIDジェネレーター書いてみた

Data::YUIDでよかったんだけど、コード読んだらなんか微妙なプロトコル がハードコードされてるし、ID払い出すだけでいいんだから、ソケット接続→即IDを返す!でいいような気がしたし、それならクライアントもそれだけ簡素化できるしーと思って思い立って書いてみた次第。

サーバー側は適当に固有のhost_idをふってあげて、何個か立ち上げてあげる:
use strict;
use Data::STUID::Server;

# perl server.pl <id> <port>
# perl server.pl 1 9001
# perl server.pl 2 9002
# とか Data::STUID::Server->run( port => $ARGV[1] || 9001, host => '127.0.0.1', host_id => $ARGV[0], );
で、それらにアクセスするようにクライアントを設定する感じ
use strict;
use Data::STUID::Client;

my $client = Data::STUID::Client->new(
    servers => [ qw(
        127.0.0.1:9001
        127.0.0.1:9002
    ) ]
);

for (1..10_000) {
my $id = $client->fetch_id;
print "Got $id\n";
とりあえずざっくり。