Преглед изворни кода

dpkg-buildpackage: Move code inside s///eg into a function

By using a closure, we makes the code more clear.
Guillem Jover пре 12 година
родитељ
комит
abe3bb7c5b
1 измењених фајлова са 12 додато и 2 уклоњено
  1. 12 2
      scripts/dpkg-buildpackage.pl

+ 12 - 2
scripts/dpkg-buildpackage.pl

@@ -617,8 +617,18 @@ sub run_hook {
         'u' => $uversion,
     );
 
-    $cmd =~ s/\%(.)/exists $hook_vars{$1} ? $hook_vars{$1} :
-        (warning(_g('unknown %% substitution in hook: %%%s'), $1), "\%$1")/eg;
+    my $subst_hook_var = sub {
+        my ($var) = @_;
+
+        if (exists $hook_vars{$var}) {
+            return $hook_vars{$var};
+        } else {
+            warning(_g('unknown %% substitution in hook: %%%s'), $var);
+            return "\%$var";
+        }
+    };
+
+    $cmd =~ s/\%(.)/&$subst_hook_var($1)/eg;
 
     withecho($cmd);
 }