Helferfunktion zum Aufruf von Subs mit zusammengesetztem Namen
authorMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 12 Jan 2011 14:52:47 +0000 (15:52 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 12 Jan 2011 15:15:39 +0000 (16:15 +0100)
Conflicts:

SL/DB/Object.pm

SL/DB/Object.pm

index 0a69826..9ac7644 100644 (file)
@@ -79,6 +79,12 @@ sub update_attributes {
   return $self;
 }
 
+sub call_sub {
+  my $self = shift;
+  my $sub  = shift;
+  return $self->$sub(@_);
+}
+
 1;
 
 __END__
@@ -132,6 +138,14 @@ Returns the manager package for the object or class that it is called
 on. Can be used from methods in this package for getting the actual
 object's manager.
 
+=item C<call_sub $name, @args>
+
+Calls the sub C<$name> on C<$self> with the arguments C<@args> and
+returns its result. This is meant for situations in which the sub's
+name is a composite, e.g.
+
+  my $chart_id = $buchungsgruppe->call_sub(($is_sales ? "income" : "expense") . "_accno_id_${taxzone_id}");
+
 =back
 
 =head1 AUTHOR