Acme-Spider

 view release on metacpan or  search on metacpan

Spider.pm  view on Meta::CPAN

package Acme::Spider;
$Acme::Spider::VERSION = '0.02';

=head1 NAME

Acme::Spider - frighten some other modules

=head1 SYNOPSIS

  use Acme::Spider;

=head1 DESCRIPTION

Damian Conway is afraid of spiders, and all his code is afraid of this spider.

=head1 TODO

As the spider evolves, it will become better at recognising Damian's modules.
It's a pity evolution doesn't happen without some help.

=cut

use strict;
use warnings;
use Carp;

my $re = do {
	my @data = <DATA>;
	chomp @data;
	my $data = join '|', @data;
	qr/^(?:$data)/;
};

sub victim {
	my ($file) = @_;
	return scalar $file =~ $re;
}

sub bite {
	my ($self, $file) = @_;
	# we need to expand this test to include other Damian modules.
	if (victim($file)) {
		carp "$file doesn't like spiders";
		return 0;
	}
	return undef;
}

BEGIN { unshift @INC, \&bite }

=head1 AUTHORS

Marty Pauley E<lt>marty@kasei.comE<gt>
Karen Pauley E<lt>karen@kasei.comE<gt>

=head1 COPYRIGHT

  Copyright (C) 2006 Marty and Karen

  This program is free software; you can redistribute it and/or modify it under
  the terms of either the GNU General Public License; either version 2 of the
  License, or (at your option) any later version.

  This program is distributed in the hope that it will be useful, but WITHOUT
  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  FOR A PARTICULAR PURPOSE.

=cut

1;

__DATA__
Acme/Bleach
Acme/Don/t
Attribute/Handlers
Attribute/Handlers/Prospective
Attribute/Types
Class/Contract
Class/Delegation
Class/Multimethods
Class/Std
Class/Std/Utils
Config/Std
Contextual/Return
Coy
Debug/Phases
Filter/Simple
Getopt/Clade
Getopt/Declare
Getopt/Euclid
Hook/LexWrap
Inline/Files
IO/Busy
IO/InSitu
IO/Interactive
IO/Prompt
Leading/Zeros
Lingua/EN/Inflect
Lingua/Romana/Perligata
List/Maker
Log/StdLog



( run in 2.747 seconds using v1.01-cache-2.11-cpan-97f6503c9c8 )