Fix line numbering issues with POD filtered by Switch.pm
Rafael Garcia-Suarez [Sun, 28 Dec 2008 22:20:46 +0000 (23:20 +0100)]
Patch provided by Daniel Klein <danielklein-à-airpost.net> :

  I noticed a very subtle bug in the code: it filters out all detected POD
  from the source code. This means that any line number reporting after
  POD code will be out by the number of POD lines removed. So if there is
  an error or a "warn"ing in the code it will be harder for the programmer
  to track down.

lib/Switch.pm

index aa1bade..4dbdeae 100644 (file)
@@ -115,7 +115,8 @@ sub filter_blocks
                        }
                        next component;
                }
-               if ($source =~ m/\G\s*($pod_or_DATA)/gc) {
+               if ($source =~ m/(\G\s*$pod_or_DATA)/gc) {
+                       $text .= $1;
                        next component;
                }
                @pos = Text::Balanced::_match_variable(\$source,qr/\s*/);