Perl glob Function



This function returns a list of files matching EXPR as they would be expanded by the standard Bourne shell. If the EXPR does not specify a path, uses the current directory. If EXPR is omitted, the value of $_ is used.

From Perl 5.6 on, expansion is done internally, rather than using an external script. Expansion follows the csh (and any derivatives, including tcsh and bash) style of expansion, which translates as the following −

  • Files beginning with a single period are ignored unless EXPR explicitly matches.

  • The * character matches zero or more characters of any type.

  • The ? character matches one character of any type.

  • The [..] construct matches the characters listed, including ranges, as per regular expressions.

  • The ~ characters matches the home directory; ~name matches the home directory for the user name.

  • The {..} construct matches against any of the comma-separated words enclosed in the braces.


Following is the simple syntax for this function −

glob EXPR


Return Value

This function returns undef on error otherwise First file in the list of expanded names in scalar context and Empty list on error otherwise List of expanded file names in list context.


Following is the example code showing its basic usage −


(@file_list) = glob "perl_g*";

print "Returned list of file @file_list\n";

When above code is executed, it produces the following result −

Returned list of file