Jump to content

User:Jmax-/perlalg

From Wikipedia, the free encyclopedia
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
use warnings;
use strict;
use POSIX qw(floor);

my $res = search('talbot', 'Philippe Adjutor Talbot');
print "Found on $res\n";

sub search {
    my ($search_string, $page) = @_;
    my @revisions = get_revs($page); # revision data
    my $total_revisions = @revisions; # count
    my $revisions_left = $total_revisions - 1; # revisions left to check
    my $revision_number_to_check = floor($revisions_left / 2);
    
    while ($revisions_left > 1) {
        my $revision_to_check = $revisions->[$revision_number_to_check]; # revision datum
        $revisions_left = floor($revisions_left / 2);
        if (check_page($revision_to_check, $search_string)) {
            $revision_number_to_check -= floor($revisions_left / 2);
        } else {
            $revision_number_to_check += floor($revisions_left / 2);
        }
    }
    my $revision_to_check = $revisions->[$revision_number_to_check]; # revision datum
    if (check_page($revision_to_check, $search_string)) {
        return $revision_number_to_check;
    } else {
        return $revision_number_to_check + 1;
    }
}

sub check_page { # TODO
    # uses query.php to see if $page contains $search_string 
    # returns 1 if it does, 0 otherwise.
}

sub get_rev { # TODO
    # returns revisions for a specific page as a list of hashrefs.
}