#!/bin/perl %filters = ("RAW" => \&Parse_and_Filter_Search_String, "KI" => \&filter_KI, "IC" => \&filter_IC, "MC" => \&filter_IC, "CLASS" => \&filter_IC, "MAINCLASS" => \&filter_IC, "INDEXCLASS" => \&filter_IC, "NC" => \&filter_NC, "CNC" => \&filter_NC, "UP" => \&filter_UP, "WEEK" => \&filter_Week, "AD" => \&filter_Date, "DP" => \&filter_Date, "PD" => \&filter_Date, "PN" => \&filter_PN, "USREFS" => \&filter_PN, "(TITLE,ABSTRACT,CLAIMS)" => \&Upgrade_to_Full_Text ); $type_var_name = $ARGV[0]; # print "My input is >$type_var_name<\n"; $fulltext_field=0; $input_name=uc "$type_var_name"; if (defined($filters{"$input_name"})) { # print "Calling $input_name filter ...\n"; $filter_result = &{$filters{"$input_name"}}("banana"); print "$input_name Filter returned \"$filter_result\"\n\n"; } else { print "There is no filter for $input_name.\n"; } if ($fulltext_field) {print "\n\nAnd we've upgraded to Full Text.\n\n";} sub Parse_and_Filter_Search_String { my ($in_var) = @_; print "The Parse_and_Filter_Search_String subroutine is filtering $in_var.\n"; return "$in_var" . " in all fields"; } sub filter_KI { my ($in_var) = @_; print "The filter_KI subroutine is filtering $in_var.\n"; return "$in_var" . " in kind"; } sub filter_IC { my ($in_var) = @_; print "The filter_IC subroutine is filtering $in_var.\n"; return "$in_var" . " in International Class"; } sub filter_NC { my ($in_var) = @_; print "The filter_NC subroutine is filtering $in_var.\n"; return "$in_var" . " in National Class"; } sub filter_WEEK { my ($in_var) = @_; print "The filter_WEEK subroutine is filtering $in_var.\n"; return "$in_var" . " in Week"; } sub filter_Date { my ($in_var) = @_; print "The filter_Date subroutine is filtering $in_var.\n"; return "$in_var" . " in Some Date Field"; } sub filter_UP { my ($in_var) = @_; print "The filter_UP subroutine is filtering $in_var.\n"; return "$in_var" . " in Unadorned Patent Number"; } sub filter_PN { my ($in_var) = @_; print "The filter_PN subroutine is filtering $in_var.\n"; return "$in_var" . " in Patent Number"; } sub Upgrade_to_Full_Text { my ($in_var) = @_; print "The Upgrade_to_Full_Text subroutine is setting fulltext_field to 1.\n"; $fulltext_field=1; return "$in_var"; }