$o;
}
+our $ps_framing;
+
sub tile {
my @tiles;
my $index_i = 1;
- foreach my $d (@_) {
- foreach my $dd (ref $d ? @$d : $d) {
+
+ foreach my $spec (@_) {
+ my @datas;
+ foreach my $stem (split m{/}, $spec) {
+ my $func = $stem;
+ $func =~ y/-/_/;
+ $func = ${*::}{"book_$func"} // die "$func ?";
+ my $data = $func->();
+ open F, ">book-$stem.ps" or die $!;
+ print F $ps_framing, $data, "\nshowpage\n" or die $!;
+ close F or die $!;
+ push @datas, $data;
+ }
+ foreach my $dd (@datas) {
push @tiles, [ $dd, $index_i ];
}
$index_i++;
- }
+ }
my $pos = 0;
my $o = '';
};
-our $ps_framing = <<END;
+$ps_framing = <<END;
%!
$page_pre
print "gsave\n" or die $!;
-our @tiles;
-
-foreach my $spec (@ARGV) {
- my @datas;
- foreach my $stem (split m{/}, $spec) {
- my $func = $stem;
- $func =~ y/-/_/;
- $func = ${*::}{"book_$func"} // die "$func ?";
- my $data = $func->();
- open F, ">book-$stem.ps" or die $!;
- print F $ps_framing, $data, "\nshowpage\n" or die $!;
- close F or die $!;
- push @datas, $data;
- }
- push @tiles, @datas == 1 ? @datas : \@datas;
-}
-
-print tile(@tiles) or die $! if 1;
+print tile(@ARGV) or die $! if 1;