How do I make a series of text links from a directory of html files

Posted on 2007-11-20
Last Modified: 2011-10-03
This is in reference to

I would like this script to also generate a list of the index pages used to generate the drop down list.  This text list will be layed out in a table, with each cell containing a linked number to its corresponding index##.htm page.  The table should be generated dynamically.

Also, I would like that the links in the drop down list somehow include the corresponding index##.htm into each of its generated links, so that I may use a javascript to 'grab' that info for other use.

Question by:kailee
1 Comment
LVL 39

Accepted Solution

Adam314 earned 500 total points
ID: 20320566


use HTML::Parser;

use CGI qw(:standard);

print header, start_html('title');

my  $p = HTML::Parser->new(

   api_version => 3,

   start_h => [\&start, "tagname, attr"],

   end_h   => [\&end,   "tagname, skipped_text"],


my $value;

sub start{

      my ($tag, $attr) = @_;

      $value=undef,return if $tag ne 'a';

      return unless $attr->{href} =~ /openingindex\.htm$/;




my %texts;

sub end{

    my ($tag, $text) = @_;

    return if $tag ne 'a';

    return unless $value;

    $text =~ s/^\s*(.*?)\s*/$1/;

    $texts{$text}->[0] = $value;

    push @{$texts{$text}}, $FileName;


my $FileName;

$p->parse_file($FileName) foreach $FileName (<index??.htm>);

#To print a drop-down list:

print "<option value=\"$texts{$_}->[0]\">$_</option>\n" foreach (sort keys %texts);

#To print a table:

print "<tr><td>$_->[0]</td><td>$_->[1]</td></tr>\n" foreach (map {[$_, join(" ", @{$texts{$_}}[1..$#{$texts{$_}}] )]} keys %texts);

Open in new window


Featured Post

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

Many time we need to work with multiple files all together. If its windows system then we can use some GUI based editor to accomplish our task. But what if you are on putty or have only CLI(Command Line Interface) as an option to  edit your files. I…
In the distant past (last year) I hacked together a little toy that would allow a couple of Manager types to query, preview, and extract data from a number of MongoDB instances, to their tool of choice: Excel (…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

757 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now