Please help!!! I'm trying to complete an assignment to determine the number of HTML tags within a string at each level of nesting. ie: for the string
"<p><strong>a</strong><a>b</a></p>"
<p> is at level 0
<strong> and <a> are at level 1
etc...
My code is below. The problem is that apparently my RegEx is wrong (in the while loop), and so the loop is infinite, and no values are printed--just "". I'm just learning perl, and RegEx is really confusing to me. Any feedback would be appreciated!
Thanks!
Josh

--------begin code--------
#!usr/bin/perl
#Exercise 8.9
#To determine how many HTML tags are included in a string at each level of nesting.
use strict;
use warnings;
my $string = "<p><strong>a</strong><a>b</a></p><strong>c<italic>d<a>e</a></italic></stron g>";
print("The HRML string is:\n$string\n\n");
our @counter;
count($string, 0);
for (0 .. $#counter){
print("There are $counter[$_] valid level",$_," html tags.\n");
}
sub count
{
my $string = shift();
my $level = shift();
while ($string =~ m/.*?<([\w]*?)>(.\s*)<\/\1>/g){
#should remember html tag as 1 and contents as 2
$counter[$level]++;
print("Tag is \"\1\", contains \"\2\" ");
print("at level $level\n");
count($string, $level+1);
#recursively calling count with the string and the level increased by one
}
}
--------end code--------

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to