| WWW-Mechanize-Pluggable documentation | Contained in the WWW-Mechanize-Pluggable distribution. |
WWW::Mechanize::Plugin::HelloWorld - a sample WWW::Mechanize::Pluggable plugin
-head1 SYNOPSIS
use WWW::Mechanize::Pluggable; # This module is automatically loaded into WWW::Mechanize::Pluggable
This module shows how to mess with the WWW::Mechanize object contained
within the WWW::Mechanize::Pluggable object.
Further refinements are left to the reader. Note that the fields in the
WWW::Mechanize::Pluggable object are also available to the plugins.
my $mech = new WWW::Mechanize::Pluggable;
$mech->hello_world;
# $mech->content now eq 'hello world'
None known.
Contact the author at mcmahon@yahoo-inc.com.
Joe McMahon mcmahon@yahoo-inc.com
Copyright 2005 by Joe McMahon and Yahoo!
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
WWW::Mechanize::Pluggable, WWW::Mechanize
This function snags any 'helloworld' key-value pair off the
use WWW::Mechanize line and sets the HELLO key to it.
Currently this uses a global variable in the WW::Mechanize::Pluggable
namespace to capture the value. This is icky and should be replaced
with something more elegant.
The init() function exports hello_world into the caller's namespace.
Just a demonstration function; replaces the current content with 'hello world'.
It should be noted that this is not going to pass most tests for "successfully
fetched page" because WWW::Mechanize hasn't processed a valid
request-response pair.
| WWW-Mechanize-Pluggable documentation | Contained in the WWW-Mechanize-Pluggable distribution. |
package WWW::Mechanize::Plugin::HelloWorld; use strict; use warnings;
sub import { my ($class, %args) = @_; if (defined $args{'helloworld'}) { $WWW::Mechanize::Pluggable::HelloWorld = $args{'helloworld'}; } }
sub init { no strict 'refs'; *{caller() . '::hello_world'} = \&hello_world; }
sub hello_world { my ($self) = shift; $self->{Mech}->{content} = 'hello world'; $self->{HELLO} = $WWW::Mechanize::Pluggable::HelloWorld; } 1;