refactoring nested ifs
Vyacheslav Matyukhin [Wed, 6 Jun 2012 20:15:41 +0000 (00:15 +0400)]
lib/Method/Generate/Accessor.pm

index e203179..87f70eb 100644 (file)
@@ -46,17 +46,15 @@ sub generate_method {
   if (exists $spec->{default}) {
     my $default = $spec->{default};
     require Scalar::Util;
-    if (not ref $default) {
+    unless (
+      ref $default
+      and (
+        Scalar::Util::reftype $default eq 'CODE'
+        or Scalar::Util::blessed $default and $default->can('(&{}')
+      )
+    ) {
       die "Invalid default $default";
     }
-    elsif (Scalar::Util::reftype $default ne 'CODE') {
-      if (Scalar::Util::blessed $default) {
-        die "Invalid default $default" unless $default->can('(&{}');
-      }
-      else {
-        die "Invalid default $default";
-      }
-    }
   }
 
   my %methods;