definitely fun, especially after spending all afternoon installing various modules prerequisite to LWP (smiley)
i modified this program so you can say:
www.foo.com/ instead of www.foo.com/index.html
and it reads the url from the command line and just prints the page to stdout
just in case anyone cared
#!/usr/bin/perl
use Socket;
use strict;
#i don't know what $line is
my $line; #but i left it in anyway
my $trailingslash;
my $URL = $ARGV[0]; #get URL from command line
$URL =~ s/http\:\/\///; #get rid of "http://" if it's there
if ($URL =~ m/\/$/) { #check for trailing slash
$trailingslash = 'true'; #(i.e. get /index.foo)
}
else {
$trailingslash = 0;
}
my ($HOST,@temppage) = split('/', $URL);
my $PAGE = join('/', @temppage);
if (($trailingslash) && ($PAGE)) {
$PAGE = "/$PAGE/"; #reattach the trailing slash
}
else {
$PAGE = "/$PAGE";
}
socket(HTML, PF_INET, SOCK_STREAM, getprotobyname('tcp')) || die $!;
connect(HTML, sockaddr_in(80,inet_aton($HOST)));
my $REQUEST = "GET $PAGE HTTP/1.0\n\n";
send(HTML, $REQUEST, '');
while(<HTML>)
{
print; #to STDOUT
}
close HTML;
of course, we could just make the program respond to
301 Moved Permanently. ha.
-b
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.