I've been running RH 8 on my server for some time and regularly ran a fairly complex perl script that parsed an XML file and contained the following line:-
last if /^\t{0,2}<$tag>$/;
which would exit the loop at the end of that 'section' as $tag in fact contained "/dict". On upgrading to RH 9 this all fell apart and I spent the best part of a day trying to find out why and where it was failing. Strangely, it WOULD work if I replaced $tag with the literal string it contained (i.e. /dict) or when it found the line beginning with a single tab (i.e. way further down the file), but would NEVER recognise 2 tabs and using $tag.
On investigation I discovered that the above works perfectly with RH 8's Perl 5.8.0.55 (and my Mac's 5.8.1), but NOT with RH 9's 5.8.0.88. I upgraded to 5.8.5 and all's well again:-)
Is this a known problem with that version of Perl or as usual am I the first to discover a bug in such a widely used piece of software?
You'd have to check with the RedHat folks to see the changelog between their releases 55 and 88, to see what chages they applied. It was probably a unicode bug. The first couple of releases in the 5.8 series were kinda buggy in that area; I've only recently began to switch over completely to 5.8. If you're using a 5.8 series perl for production, I'd recomend a later release that 5.8.0 or 5.8.1
Randy.
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>