Para criar um arquivo com esses dados, basta chamar a função csv() passando como parâmetro de entrada in um array de hashes* e como parâmetro de saída out o nome do arquivo desejado.
Analogamente, para ler o conteúdo de um arquivo CSV e colocá-lo numa estrutura de dados, podemos utilizar o seguinte código:
Utilizaremos a mesma função csv(), só que agora passando como parâmetro de entrada in o nome do arquivo, além do parâmetro headers que indica para a função utilizar a primeira linha como cabeçalho.
Os módulos Text::CSV e Text::CSV_XS possuem muito mais opções do que mostradas aqui. Este código é apenas a forma mais curta que eu encontrei pra ler e gravar arquivos CSV. Uma boa ideia é explorar a boa documentação de ambos.
Note, que o módulo sabe se virar sozinho quando alguma das "células" está "vazia", como é o caso do pronome do "Ciclano Augusto" no exemplo.
* Tecnicamente eu deveria dizer ArrayRef de HashRefs, mas é mais fácil de explicar usando os termos mais simples que eu citei.
O compartilhamento de código em Perl é feito por meio de módulos que são distribuídos na forma de pacotes que contém também as instruções para instalação e configuração desses módulos.
A principal fonte de módulos e pacotes em Perl é um repositório chamado CPAN (Comprehensive Perl Archive Network), que pode ser acessado pelo site metacpan.org.
O CPAN está online desde 1995 e possui atualmente mais de 196 mil módulos de mais de 14 mil autores diferentes. Se você precisa fazer alguma coisa em Perl, provavelmente já existe um módulo pronto no CPAN. Se não existe, você pode criar um e fazer o upload para lá.