In order to use SDL_perl with FreeBSD you need to use a threaded version of Perl, because SDL use threads. Therefore you might want to reinstall Perl, appending the following flags to Configure: -Dusethreads -Duse5005threads -des But remember: Perls support for threading is still marked EXPERIMENTAL. As a nasty workaround for using SDL_perl with a non-threaded version of Perl, you might try to preload the reentrant C library, e.g.: LD_PRELOAD=/usr/lib/libc_r.so perl perlfile.pl But this won't work in any way and might break other things, you should really prefer using a threaded version of Perl instead. I'll contact the maintainer of the lang/perl5 port to add an (optional) perl binary with thread support enabled. As soon as this problem is solved, I'm going to create a SDL_perl port.