Hay varios problemas...
En la línea 3 estás diciendo que quieres empaquetar 16 códigos hexadecimales, pero solo pasas 8, con lo que estás generando una clave de 4 bytes.
En la línea 4 estás pidiendo lo mismo, pero... "test" no contiene códigos hexadecimales (salvo una 'e').
Según la documentación, efectivamente, hay que pasarle información al módulo en bloques de un cierto tamaño. Pero el problema lo tenemos si esos bloques son más pequeños. Una solución es... rellenar con blancos (o ceros o cualquier otro carácter que luego nos sea fácil quitar).
El tamaño del bloque nos lo da el método blocksize().
Using perl Syntax Highlighting
#!/usr/bin/env perl
use v5.20;
use Crypt::Blowfish;
my $key = pack "H*", "1234567812345678"; # convertimos 16 códigos hex a binario => 8 bytes
my $cipher = Crypt::Blowfish->new($key);
# relleno del texto al tamaño que nos pide blocksize()
my $text = "test";
say "[$text]";
$text = substr(($text . ( ' ' x $cipher->blocksize() )), 0, $cipher->blocksize);
say "[$text]";
my $encode = $cipher->encrypt($text);
my $decode = $cipher->decrypt($encode);
(my $textdc = $decode) =~ s/ +$//;
say "[$key]\n[$text]\n[$encode]\n[$decode]\n[$textdc]";
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
La salida es:
Using text Syntax Highlighting
[test]
[test ]
[4Vx4Vx]
[test ]
[6]
[test ]
[test]
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4