#!/usr/bin/perl use strict; use warnings; my $filedata = "Here is XYZ_ABC_123456.7890 Foo Bar"; my $mode = ( @ARGV and $ARGV[0] =~ /u/ ) ? ":utf8" : ''; open I, "<$mode", \$filedata ; while () { my ( $id ) = ( /(XYZ_ABC_[\d.]+)/ ); print "ID is $id\n"; } #### $ 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) #### Summary of my perl5 (revision 5 version 8 subversion 6) configuration: Platform: osname=darwin, osvers=8.0, archname=darwin-thread-multi-2level uname='darwin b28.apple.com 8.0 darwin kernel version 7.5.0: thu mar 3 18:48:46 pst 2005; root:xnuxnu-517.99.13.obj~1release_ppc power macintosh powerpc ' config_args='-ds -e -Dprefix=/usr -Dccflags=-g -pipe -Dldflags=-Dman3ext=3pm -Duseithreads -Duseshrplib' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-g -pipe -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -I/usr/local/include', optimize='-Os', cppflags='-no-cpp-precomp -g -pipe -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -I/usr/local/include' ccversion='', gccversion='3.3 20030304 (Apple Computer, Inc. build 1809)', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags ='-L/usr/local/lib' libpth=/usr/local/lib /usr/lib libs=-ldbm -ldl -lm -lc perllibs=-ldl -lm -lc libc=/usr/lib/libc.dylib, so=dylib, useshrplib=true, libperl=libperl.dylib gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags='-bundle -undefined dynamic_lookup -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT Locally applied patches: 23953 - fix for File::Path::rmtree CAN-2004-0452 security issue 33990 - fix for setuid perl security issues Built under darwin Compiled at Mar 20 2005 16:34:19 @INC: /System/Library/Perl/5.8.6/darwin-thread-multi-2level /System/Library/Perl/5.8.6 /Library/Perl/5.8.6/darwin-thread-multi-2level /Library/Perl/5.8.6 /Library/Perl /Network/Library/Perl/5.8.6/darwin-thread-multi-2level /Network/Library/Perl/5.8.6 /Network/Library/Perl /System/Library/Perl/Extras/5.8.6/darwin-thread-multi-2level /System/Library/Perl/Extras/5.8.6 /Library/Perl/5.8.1/darwin-thread-multi-2level /Library/Perl/5.8.1 . #### panic: pp_match start/end pointers at my_real_script.perl line 61, chunk 2. at my_real_script.perl line 61 ### or, alternatively (if I try to single-step past line 61: Out of memory during ridiculously large request at my_real_script.perl line 61, chunk 2.