---
name: "Getopt::Std"
section: "3pm"
platform: "linux"
package: "perl-5.004-doc"
version: "5.004.05-6"
release: "Debian 2.2 (Potato)"
platforms: ["linux"]
url: "https://new.carta.tech/Getopt::Std/3pm"
---

# Getopt::Std(3pm)

Process single-character switches with switch clustering getopts - Process single-character switches with switch clustering

## NAME

getopt - Process single-character switches with switch clustering

getopts - Process single-character switches with switch clustering

## SYNOPSIS

```
    use Getopt::Std;
```

```
    getopt('oDI');    # -o, -D & -I take arg.  Sets opt_* as a side effect.
    getopt('oDI', \%opts);    # -o, -D & -I take arg.  Values in %opts
    getopts('oif:');  # -o & -i are boolean flags, -f takes an argument
                      # Sets opt_* as a side effect.
    getopts('oif:', \%opts);  # options as above. Values in %opts
```

## DESCRIPTION

The *getopt()* functions processes single-character switches with switch clustering.  Pass one argument which is a string containing all switches that take an argument.  For each switch found, sets `$opt_x` (where x is the switch name) to the value of the argument, or 1 if no argument.  Switches which take an argument don't care whether there is a space between the switch and the argument.

Note that, if your code is running under the recommended `use strict` `'vars'` pragma, it may be helpful to declare these package variables via `use vars` perhaps something like this:

```
    use vars qw/ $opt_foo $opt_bar /;
```

For those of you who don't like additional variables being created, *getopt()* and *getopts()* will also accept a hash reference as an optional second argument.  Hash keys will be x (where x is the switch name) with key values the value of the argument or 1 if no argument is specified.
