[Israel.pm] mangled $_

Gaal Yahas gaal at forum2.org
Thu Dec 23 08:16:02 PST 2004

Jason Friedman wrote:

>I am using a CPAN module, Text::Capitalize (it properly capitilizes
>titles), but it "mangles" my $_. To get around it, I am doing:
>  my $underscore = $_; 
>  my $cap_title = capitalize_title($1,PRESERVE_ALLCAPS => 1); 
>  $_ = $underscore;
>Is there a better way of doing this or at least being warned?
Taking a peek at the source code here:


There are a few palaces where $_ is being written to without being 
localized. I'd call
this a bug (it's definitely not documented behavior). Consider looking 
up the authors and
sending a patch. As for what you can do to protect yourself from this 
kind of thing in
general, unfortunately there isn't much. You could localize $_ yourself 
around calls to
code you don't trust; that's effectively what you're doing above, but a 
scoped local $_
should achieve the same thing with possibly less fussy syntax.


Gaal Yahas <gaal at forum2.org>

More information about the Perl mailing list