my $url = qq|/directory/directory/some-file.html|;
print substr($url, 0, rindex($url,'/')),"\n";
####
(split('/',$url))[-1]
####
use strict;
use Benchmark;
use File::Basename;
my $url = qq|/directory/directory/some-file.html|;
timethese(500000, {
'substr' => sub { return substr($url, 0, rindex($url,'/')) },
'split' => sub { return (split('/',$url))[-1] },
'module' => sub { return basename($url) },
});
=for benchmark_results
Benchmark: timing 500000 iterations of module, split, substr...
module: 33 wallclock secs (33.03 usr + 0.10 sys = 33.13 CPU)
split: 5 wallclock secs ( 5.44 usr + -0.01 sys = 5.43 CPU)
substr: 1 wallclock secs ( 1.74 usr + 0.00 sys = 1.74 CPU)
(linux kernal 2.2.14-5.0, dual 450MHz)
=cut