use strict; use warnings; use Template; my $tt = Template->new({ EVAL_PERL => 1 }); my $str = 'This is too verbose to be printed in its entirety'; # 16 characters here ^ $tt->process(\*DATA, { string => $str }) || die $tt->error; __DATA__ Original string : [% string %] Formatted string : [%- PERL -%] if ( length '[%- string -%]' > 16 ) { (my $truncated = '[%- string -%]') =~ s/^(.{0,16}\b).*$/$1.../s; print $truncated; } else { print '[% string %]'; } [%- END -%] #### Original string : This is too verbose to be printed in its entirety Formatted string : This is too ...