From 5fa70f72d84d52dea8438dd1e2cfdd5b01593f1b Mon Sep 17 00:00:00 2001 From: Mercier Pierre-Olivier Date: Thu, 26 Sep 2013 10:07:17 +0200 Subject: [PATCH] Tinyglob: add function to match --- ACU/Tinyglob.pm | 8 ++++++++ ACU/t/tinyglob.t | 30 ++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/ACU/Tinyglob.pm b/ACU/Tinyglob.pm index d400ead..3c19a5a 100644 --- a/ACU/Tinyglob.pm +++ b/ACU/Tinyglob.pm @@ -49,4 +49,12 @@ sub tinyglob return $res; } +sub match +{ + my $glob = tinyglob(shift); + my $str = shift; + + return $str =~ /$glob/; +} + 1; diff --git a/ACU/t/tinyglob.t b/ACU/t/tinyglob.t index 9d497c5..b3d27cb 100644 --- a/ACU/t/tinyglob.t +++ b/ACU/t/tinyglob.t @@ -19,4 +19,34 @@ is(Tinyglob::tinyglob("\\\\*"), "\\\\.*"); is(Tinyglob::tinyglob("\\?"), "\\?"); is(Tinyglob::tinyglob("\\\\?"), "\\\\."); +ok(! Tinyglob::match("?", "")); +ok(! Tinyglob::match("b", "a")); +ok(! Tinyglob::match("b*", "a")); +ok(! Tinyglob::match("b?", "a")); +ok(Tinyglob::match("*", "")); + +ok(Tinyglob::match("a", "a")); +ok(Tinyglob::match("?", "a")); +ok(Tinyglob::match("*", "a")); + +ok(Tinyglob::match("ab", "ab")); +ok(Tinyglob::match("?b", "ab")); +ok(Tinyglob::match("*b", "ab")); +ok(Tinyglob::match("*", "ab")); + +ok(Tinyglob::match("b?", "ba")); +ok(Tinyglob::match("b*", "ba")); +ok(Tinyglob::match("*", "abcdef")); + +ok(Tinyglob::match("a?b", "acb")); +ok(Tinyglob::match("a*b", "acb")); +ok(Tinyglob::match("a*b", "acdefb")); + +ok(Tinyglob::match("a*b*", "acdefblkjgd")); +ok(! Tinyglob::match("a?b*", "acdefblkjgd")); +ok(Tinyglob::match("a?b*", "acblkjgd")); +ok(Tinyglob::match("a?b*", "abblkjgd")); +ok(! Tinyglob::match("a*b?", "abblkjgd")); +ok(Tinyglob::match("a*b?", "aasdasbd")); + done_testing();