Friday, March 26, 2010

strings vs regexp


Rate regexp strings
regexp 130890/s -- -46%
strings 240964/s 84% --

strings

my ($dir_info, $file_name, $file_extension);
if (defined $path_info) {
my $file_info = $path_info;
my $file_info_rindex = rindex $path_info, '/';
if ($file_info_rindex) {
$dir_info = substr $path_info, 0, $file_info_rindex;
$file_info = substr ($path_info, $file_info_rindex + 1) || '';
}
my $file_extension_rindex = rindex $file_info, '.';
if ($file_extension_rindex) {
$file_extension = substr $file_info, $file_extension_rindex + 1;
$file_name = substr $file_info, 0, $file_extension_rindex;
} else {
$file_name = $file_info;
}
}

regexp

($dir_info, $file_name, $file_extension) = ($path_info =~ /^(?:(.*)\/+)?([^\/]+)\.([^\.\/]+)$/s)
if defined $path_info;


удручает только количество строк кода