Strange, but when I tried your script, it went into an infinte loop and started creating a bunch of "Daughter Perl debugger" sessions. If you take out the BEGIN block and just do #!./perl -d on the shebang line, the debugger works as expected:
#!/usr/bin/perl -d
use strict;
use warnings;
print "Hello\n";