When I create a new directory at the same level (~/learn/perl/oldp5p), then copy over all the contents from the original directory to the new one, then run the program from the new directory, the problem appears:
$ cd ../oldp5p
$ cat abc.pl
print "hello world\n";
print "goodbye world\n";
$ perl abc.pl
hello world
goodbye world
$ perl -d abc.pl
hello world
goodbye world
Var=
But when I wipeout the original directory, create a new directory with the same name, then copy over the test program to the new directory and run the debugger, the problem goes away.
$ cd ..
$ rmtree1.pl p5p
$ mkdir p5p
$ cp -v oldp5p/abc.pl p5p
'oldp5p/abc.pl' -> 'p5p/abc.pl'
$ cd p5p
$ perl abc.pl
hello world
goodbye world
$ perl -d abc.pl
Loading DB routines from perl5db.pl version 1.49_04
Editor support available.
Enter h or 'h h' for help, or 'man perldebug' for more help.
main::(abc.pl:1): print "hello world\n";
DB<1> q
So if seems as if something in the original directory is "polluting" the operation of the debugger.