## Either substr( $x, 0, index( $x, $char ), ''); ## or $x =~ s[(^/*$char)][]; #### for my $char ( unpack '(A1)*', substr $x, 0, 100, '' ) { ## } #### use strict; use warnings; use Benchmark qw( cmpthese ); my %tests = ( subst => '$x =~ s/.//;', substr_lval => 'substr($x,0,1) = "";', substr_mod => 'substr($x,0,1,"");', reverse => '$x = reverse $x; chop($x); $x = reverse($x);', substr_copy => '$x = substr($x,1);', ); our $loops ||= 1e4; for (values %tests) { $_ = <