eliminate some false laziness in FS::Misc::send_email vs. msg_template/email.pm send_...
[freeside.git] / FS / FS / class_Common.pm
index 5ee8208..01048ec 100644 (file)
@@ -68,7 +68,7 @@ returns the error, otherwise returns false.
 
 =item check
 
-Checks all fields to make sure this is a valid package classification.  If
+Checks all fields to make sure this is a valid classification.  If
 there is an error, returns the error, otherwise returns false.  Called by the
 insert and replace methods.
 
@@ -122,14 +122,15 @@ sub _target_table {
 
 sub _target_column { 'classnum'; }
 
-use vars qw( $_category_table );
+use vars qw( %_category_table );
 sub _category_table {
-  return $_category_table if $_category_table;
   my $self = shift;
-  $_category_table = $self->table;
-  $_category_table =~ s/class/category/ # s/_class$/_category/
-    or die "can't determine an automatic category table for $_category_table";
-  $_category_table;
+  return $_category_table{ ref $self } ||= do {
+    my $category_table = $self->table;
+    $category_table =~ s/class/category/ # s/_class$/_category/
+      or die "can't determine an automatic category table for $category_table";
+    $category_table;
+  }
 }
 
 =head1 BUGS