> ----------------------------------------------------------------- > > Switch.pm seems to have a parse problem. > > The following test case illustrates this: > > perl -MSwitch -e '$foo = (1/2); switch($s) { case /foo/ { print } }' > > If you change the divide operation to another type of operation (+ for > instance) the problem no longer manifests, > also, if you change the case from pattern matching to another type of > matching the problem no longer manifests. > > The source parser being used in Switch seems to hook on the divisor > operator which is outside of its scope. > > This seems to have been present in Switch.pm for some time. > > ----------------------------------------------------------------- Hello, First of all thank you for your bug report. Second, the Switch module is not part of the perl CORE but is a separtae module that lives on CPAN. It would be best to fill the bug report on the queue of the switch module ( http://rt.cpan.org/Public/Dist/Display.html?Name=Switch ). The syntax error happens because Switch uses source filters which rewrite the source... But source filters are limited in what they can do correctly and will break correct code sooner or later. Also of intrest: in perl v5.10 a native 'switch' called given/when was added ( http://perldoc.perl.org/perlsyn.html#Switch-statements ). Kind regards, BramThread Previous | Thread Next