Note to self: read, don't scan, the docs

Ovid on 2003-09-24T04:36:48

I was writing some Inline::C code when I became stuck trying to figure out why the following kept segfaulting:

string = SvPV(elem, PL_na);
    if (looks_like_number(string)) {

That was buried in a much larger snippet and it took a long time to narrow down. Specifically, I put print statements after every line to determine what was failing. Naturally, as soon as I saw that I was getting a segfault at "looks_like_number", I decided to read the docs (perldoc perlapi) where I saw that function, and not just scan them. That function takes a scalar, not a string.

if (looks_like_number(elem)) {
    string = SvPV(elem, PL_na);

Of course I discovered this only after I had posted a message to the Inline list. Had I taken the time to properly debug everything and narrow it down to the correct line, I would have seen the problem immediately. I find that when I program in C, I am much more likely to throw my hands up in despair than figure out what the problem actually is. I need to stop that.