Edward- I don't see a quick way to do this directly from rcols() but you could use the EXCLUDE option to have rcols skip the lines with entries matching a "bad" pattern. If you need to do more, then I suggest adding a data validation check to the input file before slurping in with rcols.
--Chris On Tue, Apr 3, 2012 at 12:14 PM, Hyer, Dr. Edward <[email protected]> wrote: > Chris, > > The problem was not with PDL, exactly: basically, a routine created a > temporary ASCII file, which either because of errors in the inputs or errors > in the processing code, contained bad data-- specifically, values that > exceeded the format codes used to write them, resulting in '***' in the file. > When PDL 'readcols' got to that file, it spat out a warning telling me that > the temporary file had bad values. > But because the warning was non-fatal, the routine moved on, the temporary > file was erased, and the error log gave no indication of how to find where > the problem had occurred-- that is, where the bad data had come from. > What I need is a way to couch the call to PDL so that the error in 'readcol' > is fatal, stops everything, and gives me a backtrace. > > You were talking about the Perl debugger, which I am sure is capable of this, > but I have never used. > > I hate asking for "suggestions for dumb people" but that's what I need. > > Thanks, > > --Edward H. > > > -----Original Message----- > From: Chris Marshall [mailto:[email protected]] > Sent: Tuesday, April 03, 2012 4:49 AM > To: Hyer, Dr. Edward > Cc: [email protected] > Subject: Re: [Perldl] Catching, or at least tracing, PDL errors > > Were you able to track down the problem? > > --Chris > > On Fri, Mar 30, 2012 at 2:12 PM, Chris Marshall <[email protected]> > wrote: >> You'll have to provide more information about >> your PDL install (version number,...) since my >> line 459 in Misc.pm does not have a multiplication >> on it. You could try running under the perl >> debugger and put a breakpoint on the line in >> question when the argument "********" is found. >> >> --Chris >> >> To track this down, >> >> On Fri, Mar 30, 2012 at 1:04 PM, Hyer, Dr. Edward >> <[email protected]> wrote: >>> Here is my error: >>> >>> Argument "********" isn't numeric in multiplication (*) at >>> >>> /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/PDL/IO/Misc.pm >>> line 459, <$fh> line 6 (#1) >>> (W numeric) The indicated string was fed as an argument to an operator >>> that expected a numeric value instead. If you're fortunate the message >>> will identify which operator was so unfortunate. >>> >>> I know how it happened, but I'm having a terrible time finding the problem >>> and fixing it because I have no information on the backtrace, and this >>> error is non-fatal. I tried using 'use diagnostics' but to no avail. >>> >>> This happened on one of thousands of calls to this library, and without a >>> backtrace, I have no way to figure out which one. >>> >>> Thanks in advance, >>> >>> --Edward H. >>> >>> >>> Dr. Edward J. Hyer >>> Physical Scientist >>> Naval Research Laboratory >>> Marine Meteorology Division >>> 7 Grace Hopper Avenue, Stop 2 >>> Monterey, California 93940 >>> 831-656-4023 >>> FAX 831-656-4769 >>> [email protected] >>> >>> >>> _______________________________________________ >>> Perldl mailing list >>> [email protected] >>> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl _______________________________________________ Perldl mailing list [email protected] http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
