in reply to Re: finding commas within commas
in thread finding commas within commas

thanks, that seemed to work for me. I was wondering if you could elaborate on how that code works...i'm not too clear on how the code works exactly...
thanks once again

Replies are listed 'Best First'.
Re: Re: Re: finding commas within commas
by BrowserUk (Patriarch) on Jan 24, 2003 at 06:02 UTC

    Sure. Essentially, this is just a s/// operator. I've used angle brackets instead of slashes as the delimiter.

    $str =~ s< ( # Start capturing (to $1) \s* # Optional whitespace (forgot this before) \" # starting with a quote [^\"]+ # 1 more of anything except a quote \" # another quote \s* # optional white space ) # end capture (,|$) # capture comma seperator (or EOL*) > < # /e option makes this becomes a code block # put the contents of $1 into a localised writable var #($1 is read only!) # and use the tr/// op to remove the commas (local $a = $1) =~ tr/,//d; # The last expression in the block is used as the # replacement expression, so we put the decomma'd localise +d var here. # not forgetting to put back the final comma # If it was there* $a .$2 ; >gex; #!" Global, Execute, ignore whitespace in regex

    The weird comment (#!") I forgot to remove, is just used to keep the syntax parser in my editor happy. Sorry for any confusion it caused.

    Update* Added to correct error spotted by LAI. Use Text::CSV instead.


    Examine what is said, not who speaks.

    The 7th Rule of perl club is -- pearl clubs are easily damaged. Use a diamond club instead.