title: Perl script to extract particular div section from HTML code
body: <p>I am having a HTML file which is very large. I need to extract particular <code>&lt;div&gt;...&lt;/div&gt;</code> section in a variable. </p>
  
  <pre><code>##some contents
  &lt;div class="title-bar" onclick="folder(c_1)"&gt;&lt;table class="layout"&gt;&lt;tr&gt;&lt;td class="h1" width="400"&gt;Summary Of Test Report &lt;br&gt;(E:\Packages\SamplePackage)&lt;/td&gt;&lt;td&gt;&lt;a style="cursor:hand;text-decoration:none;" onclick="showTOC()"&gt;&lt;div style="float:left"&gt;&lt;div style="float:right"&gt;&lt;div style="float:left"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div expandable="1" id="c_1"&gt;&lt;a name="title"&gt;&lt;/a&gt;&lt;table class="content" cellpadding="2"&gt;&lt;tr&gt;&lt;td&gt;&lt;table id="details"&gt;&lt;tr&gt;&lt;td class="h4"&gt;Package Name:&lt;/td&gt;&lt;td class="info"&gt;E:\Packages\SamplePackage&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;OS:&lt;/td&gt;&lt;td class="info"&gt;Microsoft Windows Server 2008 R2 Standard &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;Testing:&lt;/td&gt;&lt;td class="info"&gt;Regression Test&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;Machine Name:&lt;/td&gt;&lt;td class="info"&gt;XYZTST036   (Number Of Cores: 4              
  
  ; CPU Clock Speed: 3500           
  
    Mhz; Memory: 32,494 MB)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;Duration:&lt;/td&gt;&lt;td class="info"&gt;00:28:31&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;Total No. Of Testcases:&lt;/td&gt;&lt;td class="info"&gt;54&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;No. Of Testcases Executed:&lt;/td&gt;&lt;td class="info"&gt;54&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;No. Of Testcases Passed:&lt;/td&gt;&lt;td class="info"&gt;42&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;No. Of Testcases Failed:&lt;/td&gt;&lt;td class="info"&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;No. Of Testcases NA(Not Appplicable):&lt;/td&gt;&lt;td class="info"&gt;12&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;Skipped Testcases:&lt;/td&gt;&lt;td class="info"&gt;&lt;a href="SkippedTestcaseDetails.html"&gt;None&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;Date:&lt;/td&gt;&lt;td class="info"&gt;8-02-2016
  &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;Start Time(17:58:02)/ Completion Time (18:26:33)&lt;/td&gt;&lt;td class="info"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;
  ##some contents
  </code></pre>
  
  <p>I used regex, like</p>
  
  <pre><code>my $html_filepath = "G:\\Report.html";
  open(HTML, "&lt;$html_filepath") or die "Can't open $html_filepath $!\n";
  $body .= "\nTest Report Summary:\n\n";
  my $content;
  my $summarySection;
  {
      local $/ = undef; # slurp mode
      $content = &lt;HTML&gt;;
  }
  $content =~ s/\r\n//g;
  #print $content;
  
  if ($content ne "")
  {
      if ($content =~ m/&lt;div class="title-bar" (.*)/)
      #if ( $last_line =~ m/^&lt;tr&gt; &lt;td&gt;(\d+)&lt;\/td&gt;/ )
      {
          $summarySection = "$1";
      }
  }
  print "\n $summarySection";
  </code></pre>
  
  <p>Output I got is:</p>
  
  <pre><code>&lt;div class="title-bar" onclick="folder(c_1)"&gt;&lt;table class="layout"&gt;&lt;tr&gt;&lt;td class="h1" width="400"&gt;Summary Of Test Report &lt;br&gt;(E:\Packages\SamplePackage)&lt;/td&gt;&lt;td&gt;&lt;a style="cursor:hand;text-decoration:none;" onclick="showTOC()"&gt;&lt;div style="float:left"&gt;&lt;div style="float:right"&gt;&lt;div style="float:left"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div expandable="1" id="c_1"&gt;&lt;a name="title"&gt;&lt;/a&gt;&lt;table class="content" cellpadding="2"&gt;&lt;tr&gt;&lt;td&gt;&lt;table id="details"&gt;&lt;tr&gt;&lt;td class="h4"&gt;Package Name:&lt;/td&gt;&lt;td class="info"&gt;E:\Packages\SamplePackage&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;OS:&lt;/td&gt;&lt;td class="info"&gt;Microsoft Windows Server 2008 R2 Standard &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;Testing:&lt;/td&gt;&lt;td class="info"&gt;Regression Test&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;Machine Name:&lt;/td&gt;&lt;td class="info"&gt;XYZTST036   (Number Of Cores: 4              
  
  ; CPU Clock Speed: 3500           
  
    Mhz; Memory: 32,494 MB)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;Duration:&lt;/td&gt;&lt;td class="info"&gt;00:28:31&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;Total No. Of Testcases:&lt;/td&gt;&lt;td class="info"&gt;54&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;No. Of Testcases Executed:&lt;/td&gt;&lt;td class="info"&gt;54&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;No. Of Testcases Passed:&lt;/td&gt;&lt;td class="info"&gt;42&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;No. Of Testcases Failed:&lt;/td&gt;&lt;td class="info"&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;No. Of Testcases NA(Not Appplicable):&lt;/td&gt;&lt;td class="info"&gt;12&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;Skipped Testcases:&lt;/td&gt;&lt;td class="info"&gt;&lt;a href="SkippedTestcaseDetails.html"&gt;None&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;Date:&lt;/td&gt;&lt;td class="info"&gt;8-02-2016
  </code></pre>
  
  <p>But I need the output like, </p>
  
  <pre><code>&lt;div class="title-bar" onclick="folder(c_1)"&gt;&lt;table class="layout"&gt;&lt;tr&gt;&lt;td class="h1" width="400"&gt;Summary Of Test Report &lt;br&gt;(E:\Packages\SamplePackage)&lt;/td&gt;&lt;td&gt;&lt;a style="cursor:hand;text-decoration:none;" onclick="showTOC()"&gt;&lt;div style="float:left"&gt;&lt;div style="float:right"&gt;&lt;div style="float:left"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div expandable="1" id="c_1"&gt;&lt;a name="title"&gt;&lt;/a&gt;&lt;table class="content" cellpadding="2"&gt;&lt;tr&gt;&lt;td&gt;&lt;table id="details"&gt;&lt;tr&gt;&lt;td class="h4"&gt;Package Name:&lt;/td&gt;&lt;td class="info"&gt;E:\Packages\SamplePackage&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;OS:&lt;/td&gt;&lt;td class="info"&gt;Microsoft Windows Server 2008 R2 Standard &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;Testing:&lt;/td&gt;&lt;td class="info"&gt;Regression Test&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;Machine Name:&lt;/td&gt;&lt;td class="info"&gt;XYZTST036   (Number Of Cores: 4              
  
  ; CPU Clock Speed: 3500           
  
    Mhz; Memory: 32,494 MB)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;Duration:&lt;/td&gt;&lt;td class="info"&gt;00:28:31&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;Total No. Of Testcases:&lt;/td&gt;&lt;td class="info"&gt;54&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;No. Of Testcases Executed:&lt;/td&gt;&lt;td class="info"&gt;54&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;No. Of Testcases Passed:&lt;/td&gt;&lt;td class="info"&gt;42&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;No. Of Testcases Failed:&lt;/td&gt;&lt;td class="info"&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;No. Of Testcases NA(Not Appplicable):&lt;/td&gt;&lt;td class="info"&gt;12&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;Skipped Testcases:&lt;/td&gt;&lt;td class="info"&gt;&lt;a href="SkippedTestcaseDetails.html"&gt;None&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;Date:&lt;/td&gt;&lt;td class="info"&gt;8-02-2016
  &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="h4"&gt;Start Time(17:58:02)/ Completion Time (18:26:33)&lt;/td&gt;&lt;td class="info"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;
  </code></pre>
  
  <p>I have tried the following regex,</p>
  
  <pre><code>if ($content =~ m/&lt;div class="title-bar" (.*)&lt;\/table&gt;&lt;\/div&gt;&lt;\/div&gt;/)
  </code></pre>
  
  <p>But this did not work.</p>
  
  <p>Please give me some ideas to get the content including the line break, newline and white space.</p>