use strict; use warnings; use Benchmark qw(cmpthese); my $str = < \&graff, 'graff2' => \&graff2, 'duff' => \&duff, 'duff2' => \&duff2, 'jbrug' => \&jbrug, 'jbrug2' => \&jbrug2, } ); sub graff { my $txt = substr $str, 0, $maxlen; } sub graff2 { my $txt = substr $str, 0, rindex $str, " ", $maxlen; } sub duff { my $txt = $str; $txt =~ s/(.{1,$maxlen})\b.*/$1.../; } sub duff2 { my ($txt) = $str =~ m/(.{1,$maxlen}\b)/; } sub jbrug { my $txt = $str; $txt =~ m/.{$maxlen}/gs; } sub jbrug2 { my @a = split("",$str); my $txt = ''; for (my $i=0; $i<$maxlen; $i++) { $txt .= $a[$i]; } }