Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
print "gsave\n" or die $!;
-our @books = (
- red_book(),
- green_book(),
- purple_book(),
- blue_book(),
- lotus_book(),
- yellow_book(),
- [black_book_pair(), black_book_more()],
- );
-
-print tile(@books) or die $! if 1;
+our @books = qw(
+ red_book
+ green_book
+ purple_book
+ blue_book
+ lotus_book
+ yellow_book
+ black_book_pair/black_book_more
+ );
+
+our @tiles;
+
+foreach my $spec (@books) {
+ my @datas;
+ foreach my $book (split m{/}, $spec) {
+ push @datas, ${*::}{"$book"}();
+ }
+ push @tiles, @datas == 1 ? @datas : \@datas;
+}
+
+print tile(@tiles) or die $! if 1;