---
name: "Getopt::Complete::Compgen"
section: "3pm"
platform: "linux"
package: "libgetopt-complete-perl"
version: "0.26-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Getopt::Complete::Compgen"
---

# Getopt::Complete::Compgen(3pm)

standard tab-completion callbacks

## NAME

Getopt::Complete::Compgen - standard tab-completion callbacks

## VERSION

This document describes Getopt::Complete::Compgen 0.26.

## SYNOPSIS

```
 # A completion spec can use any of the following, specified by a single
 # word, or a single character, automatically:

 use Getopt::Complete(
    'myfile'    => 'files',         # or 'f'
    'mydir'     => 'directories',   # or 'd'
    'mycommand' => 'commands',      # or 'c'
    'myuser'    => 'users',         # or 'u'
    'mygroup'   => 'groups',        # or 'd'
    'myenv'     => 'environment',   # or 'e'
    'myservice' => 'services',      # or 's'
    'myalias'   => 'aliases',       # or 'a'
    'mybuiltin' => 'builtins'       # or 'b'
 );
```

## DESCRIPTION

This module contains subroutines which can be used as callbacks with Getopt::Complete, and which implement all of the standard completions supported by the bash "compgen" builtin.

Running "compgen -o files abc" will produce the completion list as though the user typed "abc\<TAB\>", with the presumption the user is attempting to complete file names.

This module provides a subroutine names "files", with an alias named "f", which returns the same list.

The subroutine is suitable for use in a callback in a Getopt::Complete competion specification.

It does the equivalent for directories, executable commands, users, groups, environment variables, services, aliases and shell builtins.

These are the same:

```
 @matches = Getopt::Complete::Compgen::files("whatevercommand","abc","whateverparam",$whatever_other_args);

 @same = `bash -c "compgen -f sometext"`;
 chomp @same;
```

These are equivalent in any spec:

```
   \&Getopt::Complete::Compgen::files
   \&Getopt;:Complete::Compgen::f
  'Getopt::Complete::Compgen::files'
  'Getopt;:Complete::Compgen::f'
  'files'
  'f'
```

## SEE ALSO

Getopt::Complete

The manual page for bash details the bash built-in command "compgen", which this wraps.

## COPYRIGHT

Copyright 2010 Scott Smith and Washington University School of Medicine

## AUTHORS

Scott Smith (sakoht at cpan .org)

## LICENSE

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

The full text of the license can be found in the LICENSE file included with this module.
