summaryrefslogtreecommitdiffstats
path: root/scripts/MarkdownBook/Book.pm
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/MarkdownBook/Book.pm')
-rw-r--r--scripts/MarkdownBook/Book.pm21
1 files changed, 15 insertions, 6 deletions
diff --git a/scripts/MarkdownBook/Book.pm b/scripts/MarkdownBook/Book.pm
index a3d9eeb..f942803 100644
--- a/scripts/MarkdownBook/Book.pm
+++ b/scripts/MarkdownBook/Book.pm
@@ -16,6 +16,8 @@
use strict;
use warnings;
+use Carp;
+
package MarkdownBook::Book;
sub new
@@ -36,6 +38,8 @@ sub new
use MarkdownBook::Document::Txt;
$self->{'format'} = 'txt';
$self->{'format_mod'} = 'Txt';
+ } else {
+ croak('Unsupported format "' . $format . '"');
}
$self->{'dir'} = $dir;
@@ -114,7 +118,8 @@ sub create_documents
# Create chapter documents.
$i = 0;
- open($series_fh, '<', $self->{'dir'} . '/chapters');
+ open($series_fh, '<', $self->{'dir'} . '/chapters')
+ or croak('Cannot open chapters file');
while (<$series_fh>) {
chomp($_);
($file, $title) = split(/[ \t]+/, $_, 2);
@@ -131,7 +136,8 @@ sub create_documents
$i = -1;
@letters = ('A' .. 'Z');
if (-e $self->{'dir'} . '/appendices') {
- open($series_fh, '<', $self->{'dir'} . '/apendices');
+ open($series_fh, '<', $self->{'dir'} . '/apendices')
+ or croak('Cannot open appendices file');
while (<$series_fh>) {
chomp($_);
($file, $title) = split(/[ \t]+/, $_, 2);
@@ -194,11 +200,14 @@ sub _do_subst_macro
if ($macro eq 'toc') {
return $self->_do_gen_toc();
} elsif ($macro eq 'sectlink') {
- die('Invalid arguments to "sectlink" macro') if @args != 1;
- $sec = $self->{'sections_by_id'}->{$args[0]};
- return '[§ ' . $sec->number() . '][' . $sec->id() . ']';
+ if (@args != 1) {
+ carp('Invalid arguments to "sectlink" macro');
+ } else {
+ $sec = $self->{'sections_by_id'}->{$args[0]};
+ return '[§ ' . $sec->number() . '][' . $sec->id() . ']';
+ }
} else {
- die("Unrecognized macro \"$macro\"");
+ carp("Unrecognized macro \"$macro\"");
}
}