just want to ask if there is a better way of doing this
That depends on what makes one solution "better" than another and also how representative your sample set is.
use strict;
use warnings;
use Test::More;
my @set = (
{
file => '-/yf/-/22211_01_09_2000_XYz.pdf',
zip => '22211'
},
{
file => '_/gt/-/02239_04_04_1989_PkW.pdf',
zip => '02239'
},
{
file => '-/xy/-/02239_04_04_1989_PkW.pdf',
zip => '02239'
},
);
plan tests => 2 * @set;
for my $datum (@set) {
is zip_substr ($datum->{file}), $datum->{zip}, "Substr for $datum-
+>{file}";
is zip_regex ($datum->{file}), $datum->{zip}, "Regex for $datum-
+>{file}";
}
sub zip_substr {
return substr (shift, 7, 5);
}
sub zip_regex {
my ($zip) = shift =~ m#/(\d{5})_#a;
return $zip;
}
|