Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / v9 / man / man3 / FindBin.3
CommitLineData
920dae64
AT
1.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sh \" Subsection heading
6.br
7.if t .Sp
8.ne 5
9.PP
10\fB\\$1\fR
11.PP
12..
13.de Sp \" Vertical space (when we can't use .PP)
14.if t .sp .5v
15.if n .sp
16..
17.de Vb \" Begin verbatim text
18.ft CW
19.nf
20.ne \\$1
21..
22.de Ve \" End verbatim text
23.ft R
24.fi
25..
26.\" Set up some character translations and predefined strings. \*(-- will
27.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28.\" double quote, and \*(R" will give a right double quote. | will give a
29.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
30.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
31.\" expand to `' in nroff, nothing in troff, for use with C<>.
32.tr \(*W-|\(bv\*(Tr
33.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34.ie n \{\
35. ds -- \(*W-
36. ds PI pi
37. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
39. ds L" ""
40. ds R" ""
41. ds C` ""
42. ds C' ""
43'br\}
44.el\{\
45. ds -- \|\(em\|
46. ds PI \(*p
47. ds L" ``
48. ds R" ''
49'br\}
50.\"
51.\" If the F register is turned on, we'll generate index entries on stderr for
52.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53.\" entries marked with X<> in POD. Of course, you'll have to process the
54.\" output yourself in some meaningful fashion.
55.if \nF \{\
56. de IX
57. tm Index:\\$1\t\\n%\t"\\$2"
58..
59. nr % 0
60. rr F
61.\}
62.\"
63.\" For nroff, turn off justification. Always turn off hyphenation; it makes
64.\" way too many mistakes in technical documents.
65.hy 0
66.if n .na
67.\"
68.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69.\" Fear. Run. Save yourself. No user-serviceable parts.
70. \" fudge factors for nroff and troff
71.if n \{\
72. ds #H 0
73. ds #V .8m
74. ds #F .3m
75. ds #[ \f1
76. ds #] \fP
77.\}
78.if t \{\
79. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80. ds #V .6m
81. ds #F 0
82. ds #[ \&
83. ds #] \&
84.\}
85. \" simple accents for nroff and troff
86.if n \{\
87. ds ' \&
88. ds ` \&
89. ds ^ \&
90. ds , \&
91. ds ~ ~
92. ds /
93.\}
94.if t \{\
95. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101.\}
102. \" troff and (daisy-wheel) nroff accents
103.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110.ds ae a\h'-(\w'a'u*4/10)'e
111.ds Ae A\h'-(\w'A'u*4/10)'E
112. \" corrections for vroff
113.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115. \" for low resolution devices (crt and lpr)
116.if \n(.H>23 .if \n(.V>19 \
117\{\
118. ds : e
119. ds 8 ss
120. ds o a
121. ds d- d\h'-1'\(ga
122. ds D- D\h'-1'\(hy
123. ds th \o'bp'
124. ds Th \o'LP'
125. ds ae ae
126. ds Ae AE
127.\}
128.rm #[ #] #H #V #F C
129.\" ========================================================================
130.\"
131.IX Title "FindBin 3"
132.TH FindBin 3 "2001-09-21" "perl v5.8.8" "Perl Programmers Reference Guide"
133.SH "NAME"
134FindBin \- Locate directory of original perl script
135.SH "SYNOPSIS"
136.IX Header "SYNOPSIS"
137.Vb 2
138\& use FindBin;
139\& use lib "$FindBin::Bin/../lib";
140.Ve
141.PP
142.Vb 1
143\& or
144.Ve
145.PP
146.Vb 2
147\& use FindBin qw($Bin);
148\& use lib "$Bin/../lib";
149.Ve
150.SH "DESCRIPTION"
151.IX Header "DESCRIPTION"
152Locates the full path to the script bin directory to allow the use
153of paths relative to the bin directory.
154.PP
155This allows a user to setup a directory tree for some software with
156directories \f(CW\*(C`<root>/bin\*(C'\fR and \f(CW\*(C`<root>/lib\*(C'\fR, and then the above
157example will allow the use of modules in the lib directory without knowing
158where the software tree is installed.
159.PP
160If perl is invoked using the \fB\-e\fR option or the perl script is read from
161\&\f(CW\*(C`STDIN\*(C'\fR then FindBin sets both \f(CW$Bin\fR and \f(CW$RealBin\fR to the current
162directory.
163.SH "EXPORTABLE VARIABLES"
164.IX Header "EXPORTABLE VARIABLES"
165.Vb 4
166\& $Bin - path to bin directory from where script was invoked
167\& $Script - basename of script from which perl was invoked
168\& $RealBin - $Bin with all links resolved
169\& $RealScript - $Script with all links resolved
170.Ve
171.SH "KNOWN ISSUES"
172.IX Header "KNOWN ISSUES"
173If there are two modules using \f(CW\*(C`FindBin\*(C'\fR from different directories
174under the same interpreter, this won't work. Since \f(CW\*(C`FindBin\*(C'\fR uses a
175\&\f(CW\*(C`BEGIN\*(C'\fR block, it'll be executed only once, and only the first caller
176will get it right. This is a problem under mod_perl and other persistent
177Perl environments, where you shouldn't use this module. Which also means
178that you should avoid using \f(CW\*(C`FindBin\*(C'\fR in modules that you plan to put
179on \s-1CPAN\s0. To make sure that \f(CW\*(C`FindBin\*(C'\fR will work is to call the \f(CW\*(C`again\*(C'\fR
180function:
181.PP
182.Vb 2
183\& use FindBin;
184\& FindBin::again(); # or FindBin->again;
185.Ve
186.PP
187In former versions of FindBin there was no \f(CW\*(C`again\*(C'\fR function. The
188workaround was to force the \f(CW\*(C`BEGIN\*(C'\fR block to be executed again:
189.PP
190.Vb 2
191\& delete $INC{'FindBin.pm'};
192\& require FindBin;
193.Ve
194.SH "KNOWN BUGS"
195.IX Header "KNOWN BUGS"
196If perl is invoked as
197.PP
198.Vb 1
199\& perl filename
200.Ve
201.PP
202and \fIfilename\fR does not have executable rights and a program called
203\&\fIfilename\fR exists in the users \f(CW$ENV{PATH}\fR which satisfies both \fB\-x\fR
204and \fB\-T\fR then FindBin assumes that it was invoked via the
205\&\f(CW$ENV{PATH}\fR.
206.PP
207Workaround is to invoke perl as
208.PP
209.Vb 1
210\& perl ./filename
211.Ve
212.SH "AUTHORS"
213.IX Header "AUTHORS"
214FindBin is supported as part of the core perl distribution. Please send bug
215reports to <\fIperlbug@perl.org\fR> using the perlbug program
216included with perl.
217.PP
218Graham Barr <\fIgbarr@pobox.com\fR>
219Nick Ing-Simmons <\fInik@tiuk.ti.com\fR>
220.SH "COPYRIGHT"
221.IX Header "COPYRIGHT"
222Copyright (c) 1995 Graham Barr & Nick Ing\-Simmons. All rights reserved.
223This program is free software; you can redistribute it and/or modify it
224under the same terms as Perl itself.