Refactor pod_rules.pl and buildtoc to use new functions in pod_lib.pl
authorNicholas Clark <nick@ccl4.org>
Thu, 10 Nov 2011 10:52:34 +0000 (11:52 +0100)
committerNicholas Clark <nick@ccl4.org>
Fri, 18 Nov 2011 10:08:59 +0000 (11:08 +0100)
This reduces code duplication.

Porting/pod_rules.pl
pod/buildtoc

index 8be1468..acea2d2 100644 (file)
@@ -274,10 +274,7 @@ pod/$_: pod/$state->{copies}{$_}
 while (my ($target, $name) = each %Targets) {
     print "Now processing $name\n" if $Verbose;
 
-    my $fh = open_or_die($name);
-    binmode $fh;
-    local $/;
-    my $orig = <$fh>;
+    my $orig = slurp_or_die($name);
     my_die "$name contains NUL bytes" if $orig =~ /\0/;
 
     my $new = do {
@@ -299,10 +296,7 @@ while (my ($target, $name) = each %Targets) {
     my $mode = (stat $name)[2] // my_die "Can't stat $name: $!";
     rename $name, "$name.old" or my_die "Can't rename $name to $name.old: $!";
 
-    open $fh, '>', $name or my_die "Can't open $name for writing: $!";
-    binmode $fh;
-    print $fh $new or my_die "print to $name failed: $!";
-    close $fh or my_die "close $name failed: $!";
+    write_or_die($name, $new);
     chmod $mode & 0777, $name or my_die "can't chmod $mode $name: $!";
 }
 
index 4058181..530dd2d 100644 (file)
@@ -164,11 +164,7 @@ $OUT =~ s/\n{3,}/\n\n/g;
 
 $OUT =~ s/([^\n]+)/wrap('', '', $1)/ge;
 
-my $filename = 'pod/perltoc.pod';
-open my $fh, '>', $filename
-    or my_die "Can't open $filename for writing: $!";
-print $fh $OUT or my_die "Can't print to $filename: $!";
-close $fh or  my_die "Can't close $filename: $!";
+write_or_die('pod/perltoc.pod', $OUT);
 
 exit(0);