in reply to Re: index() problem
in thread index() problem

OK, the aim of the code is to go through the first file (news.txt) and where it finds 'The Lecht' then match it to 'The Lecht' in the second file (resort_list_for_parser.txt).
Once matched it should then add in a appropriate anchor tag.

It seems to be grabing the data from the string 'Lech' instead.
Here's the code as requested:

The file's is opened and $line is set here:

open(NEWS,"news.txt") || die "Cannot open file"; my @news_lines = <NEWS>; close (NEWS); open(RESORT_LIST,"resort_list_for_parser.txt") || die "Cannot open fil +e"; my @resort_list_lines = <RESORT_LIST>; close (RESORT_LIST); foreach $line (@news_lines) { $line =~ s/\n\r//sgi; $line =~ s/\r//sgi; $line =~ s/\n//sgi;
Within the foreach above the follwing code exists:
foreach $resort_line (@resort_list_lines) { my ($resort_lookup,$resort,$country) = split (/:/,$resort_ +line,3); $resort =~ s/\r//sgi; $resort =~ s/\n//sgi; $resort_string_position = index($line,$resort_lookup); if ($resort_string_position != -1) { my $resort_lookup_length = length($resort_lookup); substr($line, $resort_string_position, $resort_lookup_l +ength) = "<html formatting>$resort_lookup</html formatting>"; } } }

Edit by tye: Replace BR with CODE tags

Replies are listed 'Best First'.
Re: Re: Re: index() problem
by runrig (Abbot) on Feb 06, 2004 at 00:09 UTC
    If index was the problem, you should have been able to demonstrate it in two or three lines of code. We don't know what your data file(s) contain(s) (and I for one don't care to know), but you should be able to debug this program by throwing in some debug print statements to display some of those variables before you do the index, like $line and $resort_lookup.
Re^3: index() problem
by Roy Johnson (Monsignor) on Feb 06, 2004 at 14:47 UTC
    A general note: Your uses of s/// are overkill. The s and i options are useless on \r and \n, and you could do the same thing with one tr/[\r\n]//d

    We monks still can't see what the values are in the variables in question. What I meant for you to provide was an example that we could run to observe the problem. Explicitly set the value of $line to whatever it is when you see the problem, include the relevant lines of code, and show the output, along with what you expected instead.


    The PerlMonk tr/// Advocate