NAME

WWW::MSA::Hadith

SYNOPSIS

use WWW::MSA::Hadith;

      my $h = new WWW::MSA::Hadith();
      $h->query('(paradise or heaven) and laugh and man and last');
      $h->submit();

      while ( my $result = $h->get_result() ) {
        print $h->read( $result->{id} );
        print "-" x 32;
        print "\n";
      }

DESCRIPTION

WWW::MSA::Hadith is Perl interface to MSA-USC's Classic Hadith Search engine located at
http://www.usc.edu/dept/MSA/reference/searchhadith.html

As of this release, only Sahih Bukhari database is supported. Will try to add other databases in subsequent releases.

PROGRAMMING STYLE

Searching Hadith database is very straight-forward, and consists of the following steps:

1 Create WWW::MSA::Hadith object:

my $h = new WWW::MSA::Hadith();

2 Define the search query:

$h->query("warn and peace");

3 Submit the search to remote server:

$h->submit();

4 Iterate through the results:

          while (my $result = $h->get_result() ) {
            # do something....
          }

get_result() method, as seen above, results the next result fetched from the database. To iterate over all the results, you should use it in a while() loop or alternative.

Return value of get_result() is a reference to a hash-table. Hash consists of such keys as id - unique id for the returned Hadith, url

As you noticed, returned result does not include the full content. To fetch the full content for a specific hadith, you need to call read() method and pass it id field of the result:

$full_text = $h->read($result->{id});

To view the demo of this library, send an e-mail to hadith@handalak.com and submit the search keyword in the subject of the mail. You will receive the results in the reply.

TODO

I've been thinking of creating better programming interface through XML-RPC API.

SEE ALSO

http://www.usc.edu/dept/MSA/reference/searchhadith.html

AUTHOR

Sherzod B. Ruzmetov, <sherzodr@cpan.org>

COPYRIGHT AND LICENSE

Copyright 2003 by Sherzod B. Ruzmetov.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.