Skip to content
A Perl interface to Hackernews on
Latest commit c06069a Oct 29, 2011 @dbb Catch pattern for debugging
Failed to load latest commit information.
lib/WWW/Hackernews Catch pattern for debugging Oct 29, 2011
t Initial commit. Oct 29, 2011
Build.PL Initial commit. Oct 29, 2011
CHANGES Initial commit. Oct 29, 2011
LICENSE Initial commit. Oct 29, 2011
MANIFEST Initial commit. Oct 29, 2011
META.yml Initial commit. Oct 29, 2011
Makefile.PL Initial commit. Oct 29, 2011 Update README Oct 29, 2011 Initial commit. Oct 29, 2011


WWW::Hackernews::Parser - a Perl interface to Hackernews stories and data.


use WWW::Hackernews::Parser;

my $top_hash_ref = hn_parse( 'top', '1' );
# equivalent to:
my $other_top_hash_ref = hn_parse();

my $second_newest = hn_parse( 'new', '2' );


  • perl - version 5.10 or above

  • LWP::Simple - Debian package: libwww-perl


The only subroutine of WWW::Hackernews::Parser is hn_parse. It takes the following arguments:

  1. target - This is what page to download the data from; is either top or new. Defaults to top.

  2. number - This is the rank of the story. 1 is the top story, and so on. Defaults to 1.

  3. datum - This is the name of the datum and hash key to be returned (list follows). The default is all, which returns the hash ref as a scalar.

Note: the arguments are shifted in the order listed above. That means if you want to pass a number, you must also pass a target. Likewise, if you want to pass a hash key, you must pass a target and a number before it.

The subroutine stores data in an anonymous hash that may contain any of the following keys, depending on what the pattern was able to match:

  • age_qty - the numercal value of the age

  • age_unit - either hour(s)or minute(s)

  • age_sec - age in seconds calculated by the above

  • comments - number of comments

  • desc - description

  • domain - the domain on which the link is hosted

  • id - the unique numerical identification number of the link

  • points - the "karma" level of the link

  • user - the name of the user who posted the link


perldoc, LWP::Simple


Copyright 2011 Daniel Bolton.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 3.0 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts.


I would like to give thanks to telemachus, tornow, and initself for helping me with this project.


If you find a bug, file an issue on the project's Github page. If you have code to contribute, fork the repository and file a pull request. The URI is:

Something went wrong with that request. Please try again.