mirror of
https://github.com/perlbot/perlbuut
synced 2025-06-08 02:55:40 -04:00
removing the symbol table hackery, working slowly on some other cleanup
This commit is contained in:
parent
5e72911b37
commit
1bc035c900
1 changed files with 19 additions and 8 deletions
|
@ -22,6 +22,21 @@ use Data::Dumper;
|
||||||
my $COPULA = join '|', qw/is are was isn't were being am/, "to be", "will be", "has been", "have been", "shall be", "can has", "wus liek", "iz liek", "used to be";
|
my $COPULA = join '|', qw/is are was isn't were being am/, "to be", "will be", "has been", "have been", "shall be", "can has", "wus liek", "iz liek", "used to be";
|
||||||
my $COPULA_RE = qr/\b(?:$COPULA)\b/i;
|
my $COPULA_RE = qr/\b(?:$COPULA)\b/i;
|
||||||
|
|
||||||
|
#this is a hash that gives all the commands their names and functions, added to avoid some symbol table funkery that happened originally.
|
||||||
|
my %commandhash = (
|
||||||
|
"" => \&get_fact,
|
||||||
|
"forget" => \&get_fact_forget,
|
||||||
|
"learn" => \&get_fact_learn,
|
||||||
|
"relearn" => \&get_fact_learn,
|
||||||
|
"literal" => \&get_fact_literal,
|
||||||
|
"protect" => \&get_fact_protect,
|
||||||
|
"revert" => \&get_fact_revert,
|
||||||
|
"revisions" => \&get_fact_revisions,
|
||||||
|
"search" => \&get_fact_search,
|
||||||
|
"unprotect" => \&get_fact_unprotect,
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
sub new {
|
sub new {
|
||||||
my( $class ) = @_;
|
my( $class ) = @_;
|
||||||
|
|
||||||
|
@ -103,14 +118,14 @@ sub command {
|
||||||
return( 'handled', "Stored @ret" );
|
return( 'handled', "Stored @ret" );
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
my $commands_re = join '|', qw/search relearn learn forget revisions literal revert protect unprotect/;
|
my $commands_re = join '|', keys %commandhash;
|
||||||
$commands_re = qr/$commands_re/;
|
$commands_re = qr/$commands_re/;
|
||||||
|
|
||||||
my $fact_string;
|
my $fact_string;
|
||||||
|
|
||||||
if( !$call_only && $subject =~ s/^\s*($commands_re)\s+// ) {
|
if( !$call_only && $subject =~ s/^\s*($commands_re)\s+// ) {
|
||||||
my( $cmd_name ) = "get_fact_$1";
|
#i lost the object oriented calling here, but i don't care too much, BECAUSE this avoids using strings for the calling, i might change that.
|
||||||
$fact_string = $self->$cmd_name($subject, $said->{name}, $said);
|
$fact_string = $commandhash{$1}->($self,$subject, $said->{name}, $said);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$fact_string = $self->get_fact( $pm, $said, $subject, $said->{name}, $call_only );
|
$fact_string = $self->get_fact( $pm, $said, $subject, $said->{name}, $call_only );
|
||||||
|
@ -353,10 +368,6 @@ sub get_fact_learn {
|
||||||
return "Stored $subject as $predicate";
|
return "Stored $subject as $predicate";
|
||||||
}
|
}
|
||||||
|
|
||||||
{no warnings 'once'; #keep perl from complaining about this only being used once
|
|
||||||
*get_fact_relearn = \&get_fact_learn; #Alias..
|
|
||||||
}
|
|
||||||
|
|
||||||
sub get_fact_search {
|
sub get_fact_search {
|
||||||
my( $self, $body, $name ) = @_;
|
my( $self, $body, $name ) = @_;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue