Looking at the pod,
Crypt::Blowfish takes any random string up to 56 bytes (i.e. 448 bits) long for its key, e.g.
my $key = pack("H16", "0123456789ABCDEF");
All you need to do is string together 56 random bytes. What you're really after is a true random number generator, because the default
rand is insufficient for cryptographic purposes. If you're on a Unix system with a decent
/dev/random device (look at your system docs), you can use the
Crypt::Random module:
use Crypt::Random qw( makerandom );
my $r = makerandom ( Size => 448, Strength => 1 );
Another alternative which isn't quite as easy to use for cryptography is
Math::TrulyRandom, but it's slow (though one 56-byte key won't kill you, certainly). There's some discussion
here regarding cryptography and random numbers as well.