Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!apple!mrspoc!starnet!rich From: rich@starnet.uucp (Richard Mahn) Newsgroups: comp.lang.perl Subject: Re: new user findings Message-ID: <1991May24.131231.1284@starnet.uucp> Date: 24 May 91 13:12:31 GMT References: <13850@exodus.Eng.Sun.COM> Reply-To: rich@starnet.UUCP (Richard Mahn) Distribution: na Organization: Starnet-Public Access UNIX-Los Altos,CA 415-949-3133, login:info Lines: 44 In <13850@exodus.Eng.Sun.COM> matt@snave.Eng.Sun.COM (Matt Evans) writes: >======================= > 1) caller command: >======================= > > PERL core dumps on the following > code: > the problem occurs when there are arguments to the subroutine caller is referring to. In other words if the routine was called by &DO_SOMETHING no problems, if it was called by &DO_SOMETHING(1) core crashes. One solution is to run under debug. Then it works. You could also wait until patch 4. If you're really in a hurry, the following patch keeps it from crashing, but you don't get the argument values. Larry said he'll have it working completely in patch 4. *** dolist.c Fri May 10 10:20:58 1991 --- dolist.c.orig Wed May 1 09:34:25 1991 *************** *** 1590,1596 **** str_2mortal(str_nmake((double)csv->hasargs)) ); (void)astore(stack,++sp, str_2mortal(str_nmake((double)csv->wantarray)) ); ! if (perldb && csv->hasargs) { ARRAY *ary = csv->argarray; if (dbargs->ary_max < ary->ary_fill) --- 1590,1596 ---- str_2mortal(str_nmake((double)csv->hasargs)) ); (void)astore(stack,++sp, str_2mortal(str_nmake((double)csv->wantarray)) ); ! if (csv->hasargs) { ARRAY *ary = csv->argarray; if (dbargs->ary_max < ary->ary_fill) ----- Richard Mahn Starnet Connections rich@starnet.uucp apple!starnet!rich