Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Jargon file of the day

by Dog and Pony (Priest)
on Apr 25, 2002 at 08:34 UTC ( #161891=snippet: print w/ replies, xml ) Need Help??

Description: Small CGI program to return a random entry from the jargon file.

I started thinking about how I really should read stuff on that place more, so I whipped this together and am using it as my start page. You can currently test it at http://dogandpony.perlmonk.org/cgi-bin/jargon.pl.

#!/usr/bin/perl -w

# Random jargon file redirect.
# 
# Use it as your start page, or
# as yet another funny link on
# your home page...
#
# Stuff to do includes error handling
# and possibly local mirroring.
# But hey, it's a snippet, not production code... :)

use strict;
use LWP::Simple;
use HTML::TokeParser;
use CGI;

# Everybodys fav object.
my $q = CGI->new;

# The chapters to choose from.
my @chapters = (0, 'A'..'Z');

# Choose one.
my $chosen = $chapters[ rand(@chapters) ];

# Get the index page for choen chapter:
my $index_page = get( "http://www.tuxedo.org/~esr/jargon/html/-$chosen
+-.html" );

# Another fav object:
my $parser = HTML::TokeParser->new( \$index_page );    

# List of pages under chosen chapter:
my @href_list;

# This is based on the current format of the jargon files
# which should be unlikely to change though.
while( $parser->get_tag( 'li' ) )
{
    # Get all links on that particular page.
    push @href_list, @{$parser->get_tag( 'a' )}[1]->{'href'};
}

# And randomly choose one...
my $href = $href_list[ rand(@href_list) ];

# ... which we redirect to.
print $q->redirect( "http://www.tuxedo.org/~esr/jargon/html/$href" );
Comment on Jargon file of the day
Download Code

Back to Snippets Section

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: snippet [id://161891]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (8)
As of 2014-09-23 10:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (217 votes), past polls