01 #!/usr/local/bin/perl -w 02 03 ################### 04 package MyParser; 05 ################### 06 our @ISA = qw(Pod::Parser); 07 08 ########################################### 09 sub title { 10 ########################################### 11 my( $self ) = @_; 12 13 return $self->{ __title }; 14 } 15 16 ########################################### 17 sub command { 18 ########################################### 19 my ($parser, $command, 20 $paragraph, $line_num) = @_; 21 22 $paragraph =~ s/\n+$//; 23 24 if( $command eq "head1" ) { 25 $parser->{ __title } = $paragraph if 26 !defined $parser->{ __title }; 27 } 28 } 29 30 ################### 31 package main; 32 ################### 33 use strict; 34 use Sysadm::Install qw( slurp ); 35 use EBook::MOBI; 36 use Pod::Parser; 37 38 my( $pod_file ) = @ARGV; 39 40 if( !defined $pod_file ) { 41 die "usage: $0 file.pod"; 42 } 43 44 my $parser = MyParser->new(); 45 $parser->parse_from_file( 46 $pod_file, "/dev/null" ); 47 48 my $book = EBook::MOBI->new(); 49 my $pod = slurp ( $pod_file, 50 { utf8 => 1 } ); 51 52 $book->set_author( "Mike Schilli" ); 53 $book->set_title( $parser->title() ); 54 55 $book->set_encoding(':encoding(UTF-8)'); 56 57 $book->add_pod_content($pod, 'pagemode'); 58 $book->make(); 59 $book->save();