#!/usr/bin/perl -w use strict; use Benchmark; my $string = "a man, a plan, a canal, panama!"; sub using_regexp { $string =~ /^(.)/o; return $1; } sub using_split { return (split('', $string, 2))[0]; } sub using_substring { return substr($string, 0, 1); } sub using_unpack { return unpack('A1', $string); } sub using_reverse_chop { my $str = reverse $string; return chop $str; } timethese(-5, {'Using Regexp' => \&using_regexp, 'Using Split' => \&using_split, 'Using Substring' => \&using_substring, 'Using Unpack' => \&using_unpack, 'Using Reverse & Chop' => \&using_reverse_chop, });