---
name: "Module::Extract::VERSION"
section: "3pm"
platform: "linux"
package: "libmodule-extract-version-perl"
version: "1.119-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Module::Extract::VERSION"
---

# Module::Extract::VERSION(3pm)

Extract a module version safely

## NAME

Module::Extract::VERSION - Extract a module version safely

## SYNOPSIS

```
        use Module::Extract::VERSION;
        my $version   # just the version
                = Module::Extract::VERSION->parse_version_safely( $file );
        my @version_info # extra info
                = Module::Extract::VERSION->parse_version_safely( $file );
```

## DESCRIPTION

This module lets you pull out of module source code the version number for the module. It assumes that there is only one `$VERSION` in the file and the entire `$VERSION` statement is on the same line.

### Class methods

- $class-\>parse\_version\_safely( FILE );

  Given a module file, return the module version. This works just like `"mldistwatch"` in PAUSE. It looks for the single line that has the `$VERSION` statement, extracts it, evals it in a Safe compartment, and returns the result.

  In scalar context, it returns just the version as a string. In list context, it returns the list of:

  ```
          sigil
          fully-qualified variable name
          version value
          file name
          line number of $VERSION
  ```

## SOURCE AVAILABILITY

This code is in Github:

```
        https://github.com/briandfoy/module-extract-version.git
```

## AUTHOR

brian d foy, `"<briandfoy@pobox.com>"`

I stole the some of this code from `"mldistwatch"` in the PAUSE code by Andreas König, but I've moved most of it around.

Andrey Starodubtsev added code to handle the v5.12 and v5.14 `"package"` syntax.

## COPYRIGHT AND LICENSE

Copyright © 2008-2025, brian d foy `"<briandfoy@pobox.com>"`. All rights reserved.

You may redistribute this under the Artistic License 2.0.
