---
name: "FindBin"
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/FindBin/3pm"
---

# FindBin(3pm)

Locate directory of original perl script

## NAME

FindBin - Locate directory of original perl script

## SYNOPSIS

```
 use FindBin;
 use lib "$FindBin::Bin/../lib";
```

```
 or
```

```
 use FindBin qw($Bin);
 use lib "$Bin/../lib";
```

## DESCRIPTION

Locates the full path to the script bin directory to allow the use of paths relative to the bin directory.

This allows a user to setup a directory tree for some software with directories \<root\>/bin and \<root\>/lib and then the above example will allow the use of modules in the lib directory without knowing where the software tree is installed.

If perl is invoked using the **-e** option or the perl script is read from `STDIN` then FindBin sets both `$Bin` and `$RealBin` to the current directory.

## EXPORTABLE VARIABLES

```
 $Bin         - path to bin directory from where script was invoked
 $Script      - basename of script from which perl was invoked
 $RealBin     - $Bin with all links resolved
 $RealScript  - $Script with all links resolved
```

## KNOWN BUGS

if perl is invoked as

```
   perl filename
```

and *filename* does not have executable rights and a program called *filename* exists in the users `$ENV{PATH}` which satisfies both **-x** and **-T** then FindBin assumes that it was invoked via the `$ENV{PATH}`.

Workaround is to invoke perl as

```
 perl ./filename
```

## AUTHORS

Graham Barr \<*bodg@tiuk.ti.com*\> Nick Ing-Simmons \<*nik@tiuk.ti.com*\>

## COPYRIGHT

Copyright (c) 1995 Graham Barr & Nick Ing-Simmons. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

## REVISION

$Revision: 1.4 $
