dwww Home | Manual pages | Find package

Text::Glob(3pm)       User Contributed Perl Documentation       Text::Glob(3pm)

NAME
       Text::Glob - match globbing patterns against text

SYNOPSIS
        use Text::Glob qw( match_glob glob_to_regex );

        print "matched\n" if match_glob( "foo.*", "foo.bar" );

        # prints foo.bar and foo.baz
        my $regex = glob_to_regex( "foo.*" );
        for ( qw( foo.bar foo.baz foo bar ) ) {
            print "matched: $_\n" if /$regex/;
        }

DESCRIPTION
       Text::Glob implements glob(3) style matching that can be used to match
       against text, rather than fetching names from a filesystem.  If you want
       to do full file globbing use the File::Glob module instead.

   Routines
       match_glob( $glob, @things_to_test )
           Returns  the  list  of  things  which match the glob from the source
           list.

       glob_to_regex( $glob )
           Returns a compiled regex which is the  equivalent  of  the  globbing
           pattern.

       glob_to_regex_string( $glob )
           Returns  a  regex  string  which  is  the equivalent of the globbing
           pattern.

SYNTAX
       The following metacharacters and rules are respected.

       "*" - match zero or more characters
           "a*" matches "a", "aa", "aaaa" and many many more.

       "?" - match exactly one character
           "a?" matches "aa", but not "a", or "aaa"

       Character sets/ranges
           "example.[ch]" matches "example.c" and "example.h"

           "demo.[a-c]" matches "demo.a", "demo.b", and "demo.c"

       alternation
           "example.{foo,bar,baz}" matches  "example.foo",  "example.bar",  and
           "example.baz"

       leading . must be explicitly matched
           "*.foo" does not match ".bar.foo".  For this you must either specify
           the   leading   .   in   the   glob   pattern   (".*.foo"),  or  set
           $Text::Glob::strict_leading_dot to a false value while compiling the
           regex.

       "*" and "?" do not match the separator (i.e. do not match "/")
           "*.foo" does not match "bar/baz.foo".   For  this  you  must  either
           explicitly   match   the   /   in   the  glob  ("*/*.foo"),  or  set
           $Text::Glob::strict_wildcard_slash to a false value while  compiling
           the  regex,  or change the separator that Text::Glob uses by setting
           $Text::Glob::seperator (with the typo, yes) to an alternative  value
           while compiling the regex.

BUGS
       The  code  uses  qr// to produce compiled regexes, therefore this module
       requires perl version 5.005_03 or newer.

AUTHOR
       Richard Clamp <richardc@unixbeard.net>

COPYRIGHT
       Copyright  (C)  2002,  2003,  2006,  2007  Richard  Clamp.   All  Rights
       Reserved.

       This  module  is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

SEE ALSO
       File::Glob, glob(3)

perl v5.34.0                       2022-10-13                   Text::Glob(3pm)

Generated by dwww version 1.16 on Tue Dec 16 05:51:57 CET 2025.