mirod has asked for the wisdom of the Perl Monks concerning the following question:
I have a module in which I want to use locale or use utf8 depending on a condition. Something like:
if( $locale) { use locale; } elsif( $utf8 and $perl_version_ok) { use utf8; } if( $word=~ /^\w+$/) { ... }
Obviously the way \w matches is impacted by the locale/utf8 setting.
My problem is that use locale/utf8 is scoped to the enclosing block, hence the use pragma will not be in scope outside of the if block and \w will just match [a-zA-Z]. How could I get it to match what I want?
In addition I would need to have the locale/utf8 active in most of the module, so it might be difficult to find an enclosing block. This means also that I can't put the statements affected by the pragma in the block. This is not possible:
if( $locale) { use locale; if( $word=~ /^\w+$/) { ... } } elsif( $utf8 and $perl_version_ok) { use utf8; if( $word=~ /^\w+$/) { ... } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: use locale/utf8 scoping
by theorbtwo (Prior) on Aug 07, 2002 at 08:55 UTC | |
|
Re: use locale/utf8 scoping
by jmcnamara (Monsignor) on Aug 07, 2002 at 09:20 UTC | |
by mirod (Canon) on Aug 07, 2002 at 11:13 UTC | |
|
Re: use locale/utf8 scoping
by Zaxo (Archbishop) on Aug 07, 2002 at 16:48 UTC | |
|
Re: use locale/utf8 scoping
by mirod (Canon) on Aug 07, 2002 at 17:44 UTC |