#!/usr/bin/perl use warnings; use strict; use PDF::API2; use PDF::API2::Page; use XML::LibXML::Reader; use Data::Dumper; my $file; open( $file, 'formal.xml'); my $reader = XML::LibXML::Reader->new( IO => $file ) or die ("unable to open file"); my %nums; while ($reader->nextElement( 'Number' )) { my $number = $reader->copyCurrentNode(1)->textContent; $reader->nextElement( 'address' ); my $node = $reader->copyCurrentNode(1); my $infohash = { house => $node->getElementsByTagName( 'housenumber' )[0]->textContent, street => $node->getElementsByTagName( 'streetname' )[0]->textContent, }; $nums{$number} = $infohash; } "syntax error here "}" my $pdf = PDF::API2->new(); # $pdf->mediabox('Letter'); my $font = $pdf->corefont('Times-Roman'); my $page = $pdf->page(); $page->mediabox('Letter'); my $cnt=0; for my $line (split /\n/, Dumper(%nums)) { if ($cnt > 46) { $page = $pdf->page(); $cnt=0; } my $text = $page->text(); $text->font($font,14); $text->translate(72, 720-$cnt*14); $text->text($line); ++$cnt; } $pdf->saveas('svr.pdf');