$ perl test.pl # no debugger, not utf8 ID is XYZ_ABC_123456.7890 $ perl test.pl u # no debugger, utf8 ID is XYZ_ABC_123456.7890 $ perl -d test.pl # debugging, not utf8 Loading DB routines from perl5db.pl version 1.28 ... main::(test.pl:6): my $filedata = "Here is XYZ_ABC_123456.7890 Foo Bar"; DB<1> c ID is XYZ_ABC_123456.7890 Debugged program terminated... DB<1> q ## and now the kicker: $ perl -d test.pl u # debugging, utf8 Loading DB routines from perl5db.pl version 1.28 ... main::(test.pl:6): my $filedata = "Here is XYZ_ABC_123456.7890 Foo Bar"; DB<1> c perl(18841) malloc: *** vm_allocate(size=4294832128) failed (error code=3) perl(18841) malloc: *** error: can't allocate region perl(18841) malloc: *** set a breakpoint in szone_error to debug Out of memory! Debugged program terminated. Use q to quit or R to restart, use O inhibit_exit to avoid stopping after program termination, h q, h R or h O to get additional info. DB<1> q $ perl -v This is perl, v5.8.6 built for darwin-thread-multi-2level (with 2 registered patches, see perl -V for more detail)