use Benchmark; my $string = "1234567890" x 5000 ; print "\$string is " . length( $string ) . " bytes \n"; timethese(-10,{split=>sub{ for my $c (split //, $string) { } }, for=>sub{ my $c; for ( my $i = 0; $i < length($string); $i++ ) { $c = substr( $string, $i, 1); } }});