Nós usamos a mesma técnica em nosso site. Nossos servidores executam o Apache, MySQL e PHP no Linux.
Nosso registro DNS contém uma entrada de caractere curinga de subdomínio, como o EK já sugerido:
www IN A 123.456.789.012
* IN CNAME www
Isso redirecionará todas as solicitações para x.y.yourdomain.com para o mesmo ip de www.seudominio.com.br - também é possível ter subdomínios de subdomínios.
Eu não sei perl, mas no PHP você pode acessar o nome do host a qualquer momento assim:
$_SERVER['HTTP_HOST']
Tenho certeza de que há um equivalente em Perl para acessar o cabeçalho de host da solicitação HTTP. Usamos um arquivo central de script PHP para esse propósito.
Editar: Encontrou algum tempo para fornecer mais detalhes sobre como lidar com esses domínios.
Você pode salvar o subdomínio completo como chave primária em seu banco de dados. Isso garante que os domínios inseridos pelo usuário sejam exclusivos. Você também pode usar essas informações para verificações de disponibilidade durante o registro de seu usuário.
Acho que seu aplicativo pode manipular vários usuários por meio de um ID de usuário ou algo assim. Apenas salve este id de usuário junto com o subdomínio no banco de dados. Agora você pode pesquisar o ID do usuário pelo domínio atual enviado pelo cabeçalho do Host HTTP a qualquer momento.