¿Por qué esta función usa mucha memoria?

Estoy tratando de descomprimir el vector binario de 140 millones de bits en la lista. Estoy comprobando el uso de memoria de esta función, pero se ve raro. El uso de memoria aumenta a 35 GB (GB y no MB). ¿Cómo puedo reducir el uso de memoria?

sub bin2list {
    # This sub translates a binary vector to a list of "1","0" 
    my $vector = shift;
    my @unpacked = split //, (unpack "B*", $vector );
    return @unpacked;

}

Respuestas a la pregunta(2)

Su respuesta a la pregunta