Code rot?

P

Peter M Aarestad

I tried posting this at PerlMonks.org, but didn't get very far...

So I wrote a Perl script about 5 months ago to parse a rather strange
text file. Here's a sample of the source file:

AACE_1:
{
class: mic_if_win,
label: "!AACE.*",
mic_if_handles_windows: 1
}
{
rtree_state: close,
ltree_state: close
}
AACE_1."ADDR LINE1":
{
class: field,
id: 734
}

etc. (For those who may recognize it, it's a GUI Map file used by
WinRunner, an automated testing suite.) Each header of a braced chunk
is either a screen (green-scren) name or field name - the field names
have the screen name they're on, followed by ".", followed by the
field name. I'm using the following code to parse the file:

while (<GUIFILE>) {
chomp;
if (!$desc and /^(\w+):$/) { # warnings here
# do stuff
} elsif (/^\{$/) {
# ...
} elsif (/^\}$/) {
# ...
} elsif (!$desc and /^"?$screen"?\.(.+):/) {
# ...
} elsif ($desc and /^\s*id:\s*(\d+)$/) {
# ...
} else {
# ...
}
}

This script worked fine 5 months ago, but now, for each and every line
of input, I get the warning:

Use of uninitialized value in concatenation (.) or string at
../genguimapdoc.pl line 52, <GUIFILE> line n.

and no output, as if every line is undefined (which I've been sure to
check that it's not by printing each line right before the if
statement). WTF? This script worked perfectly 5 months ago. The input
file has not changed, nor has the script. Is there something
fundamentally wrong with the regex?

(I'm currently using 5.8.0 for the latest Cygwin (1.5.5-cr-0x9b), and
back then I was using, if not 5.8.0, then 5.6.1, also for Cygwin.)
 
P

Peter M Aarestad

This issue was solved with the help of people on the Cygwin mailing
list. Basically I needed to set the environment variable

export PERLIO=crlf

and this makes everything OK. The source file is a Windows CRLF file,
and Cygwin expects text to be in UN*X LF format...
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,020
Latest member
GenesisGai

Latest Threads

Top