~ubuntu-branches/ubuntu/intrepid/perl-doc-html/intrepid

« back to all changes in this revision

Viewing changes to perlwin32.html

  • Committer: Bazaar Package Importer
  • Author(s): Roberto C. Sanchez
  • Date: 2008-05-17 20:14:19 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20080517201419-qgbuogq2ckkdisyi
Tags: 5.10.0-2
Supersede botched upload of 5.10.0-1.

Show diffs side-by-side

added added

removed removed

Lines of Context:
54
54
      <h2>Links:</h2>
55
55
      <ul>
56
56
        <li><a href="http://search.cpan.org">CPAN</a></li>
 
57
        <li><a href="http://www.perl.org">Perl.org</a></li>
57
58
        <li><a href="http://www.perl.com">Perl.com</a></li>
58
 
        <li><a href="http://www.perl.org">Perl.org</a></li>
 
59
        <li><a href="http://perlbuzz.com">Perl Buzz</a></li>
 
60
        <li><a href="http://www.perlfoundation.org/perl5/index.cgi">Perl 5 Wiki</a></li>
 
61
        <li><a href="http://jobs.perl.org">Perl Jobs</a></li>
59
62
        <li><a href="http://www.pm.org">Perl Mongers</a></li>
60
63
        <li><a href="http://www.perlmonks.org">Perl Monks</a></li>
61
64
        <li><a href="http://planet.perl.org">Planet Perl</a></li>
65
68
      <ul>
66
69
        <li>Site maintained by<br><a href="http://perl.jonallen.info">Jon Allen</a>
67
70
            (<a href="http://perl.jonallen.info">JJ</a>)</li>
68
 
        <li class="spaced">Last updated on<br>23 April 2006</li>
 
71
        <li class="spaced">Last updated on<br>23 December 2007</li>
69
72
        <li class="spaced">See the <a href="http://perl.jonallen.info/projects/perldoc">project page</a> for
70
73
        more details</li>
71
74
      </ul>
76
79
    <div id="centerContent">
77
80
      <div id="contentHeader">
78
81
        <div id="contentHeaderLeft"><a href="#" onClick="showLeft()">Show navigation</a></div>
79
 
        <div id="contentHeaderCentre">-- Perl 5.8.8 documentation --</div>
 
82
        <div id="contentHeaderCentre">-- Perl 5.10.0 documentation --</div>
80
83
        <div id="contentHeaderRight"><a href="#" onClick="showRight()">Show toolbar</a></div>
81
84
      </div>
82
85
      <div id="breadCrumbs"><a href="index.html">Home</a> &gt; <a href="index-platforms.html">Platform specific</a> &gt; perlwin32</div>
118
121
away free.  The Borland compiler is available as "Borland C++ Compiler Free
119
122
Command Line Tools" and is the same compiler that ships with the full
120
123
"Borland C++ Builder" product.  The Microsoft compiler is available as
121
 
"Visual C++ Toolkit 2003", and also as part of the ".NET Framework SDK", and
122
 
is the same compiler that ships with "Visual Studio .NET 2003 Professional".</p>
 
124
"Visual C++ Toolkit 2003" or "Visual C++ 2005/2008 Express Edition" (and also
 
125
as part of the ".NET Framework SDK") and is the same compiler that ships with
 
126
"Visual C++ .NET 2003 Professional" or "Visual C++ 2005/2008 Professional"
 
127
respectively.</p>
123
128
<p>This port can also be built on the Intel IA64 using:</p>
124
129
<pre class="verbatim">      Microsoft Platform SDK      Nov 2001 (64-bit compiler and tools)</pre><p>The MS Platform SDK can be downloaded from <a href="http://www.microsoft.com/">http://www.microsoft.com/</a>.</p>
125
130
<p>This port fully supports MakeMaker (the set of modules that
176
181
latter step is only essential if you want to use dmake as your default
177
182
make for building extensions using MakeMaker.</p>
178
183
</li>
 
184
<li><a name="Microsoft-Visual-C%2b%2b-2008-Express-Edition-Beta-2"></a><b>Microsoft Visual C++ 2008 Express Edition Beta 2</b>
 
185
<p>This free version of Visual C++ 2008 Professional contains the same compiler
 
186
and linker that ship with the full version, and also contains everything
 
187
necessary to build Perl, rather than requiring a separate download of the
 
188
Platform SDK like previous versions did.</p>
 
189
<p>The Beta 2 package is currently available from</p>
 
190
<p><a href="http://msdn2.microsoft.com/en-us/express/future/default.aspx">http://msdn2.microsoft.com/en-us/express/future/default.aspx</a>
 
191
<a href="http://msdn2.microsoft.com/en-gb/express/future/default.aspx">http://msdn2.microsoft.com/en-gb/express/future/default.aspx</a></p>
 
192
<p>The final release version will probably be found by searching in the Download
 
193
Center at <a href="http://www.microsoft.com/downloads/search.aspx?displaylang=en">http://www.microsoft.com/downloads/search.aspx?displaylang=en</a> in due
 
194
course.</p>
 
195
<p>Install Visual C++ 2008, then setup your environment using</p>
 
196
<pre class="verbatim">  <span class="j">C:</span>\<span class="w">Program</span> <span class="w">Files</span>\<span class="w">Microsoft</span> <span class="w">Visual</span> <span class="w">Studio</span> <span class="n">9.0</span>\<span class="w">Common7</span>\<span class="w">Tools</span>\<span class="w">vsvars32</span>.<span class="w">bat</span></pre>
 
197
<p>(assuming the default installation location was chosen).</p>
 
198
<p>Perl should now build using the win32/Makefile.  You will need to edit that
 
199
file to set</p>
 
200
<pre class="verbatim">  <span class="w">CCTYPE</span> = <span class="w">MSVC90FREE</span></pre>
 
201
<p>first.</p>
 
202
</li>
 
203
<li><a name="Microsoft-Visual-C%2b%2b-2005-Express-Edition"></a><b>Microsoft Visual C++ 2005 Express Edition</b>
 
204
<p>This free version of Visual C++ 2005 Professional contains the same compiler
 
205
and linker that ship with the full version, but doesn't contain everything
 
206
necessary to build Perl.</p>
 
207
<p>You will also need to download the "Platform SDK" (the "Core SDK" and "MDAC
 
208
SDK" components are required) for more header files and libraries.</p>
 
209
<p>These packages can both be downloaded by searching in the Download Center at
 
210
<a href="http://www.microsoft.com/downloads/search.aspx?displaylang=en">http://www.microsoft.com/downloads/search.aspx?displaylang=en</a>.  (Providing exact
 
211
links to these packages has proven a pointless task because the links keep on
 
212
changing so often.)</p>
 
213
<p>Try to obtain the latest version of the Platform SDK.  Sometimes these packages
 
214
contain a particular Windows OS version in their name, but actually work on
 
215
other OS versions too.  For example, the "Windows Server 2003 R2 Platform SDK"
 
216
also runs on Windows XP SP2 and Windows 2000.</p>
 
217
<p>According to the download pages these packages are only supported on Windows
 
218
2000/XP/2003, so trying to use these tools on Windows 95/98/ME and even Windows
 
219
NT probably won't work.</p>
 
220
<p>Install Visual C++ 2005 first, then the Platform SDK.  Setup your environment
 
221
as follows (assuming default installation locations were chosen):</p>
 
222
<pre class="verbatim">  SET PlatformSDKDir=C:\Program Files\Microsoft Platform SDK</pre><pre class="verbatim">  <span class="w">SET</span> <span class="w">PATH</span>=<span class="i">%SystemRoot</span>%\<span class="w">system32</span><span class="sc">;</span><span class="i">%SystemRoot</span>%<span class="sc">;</span><span class="j">C:</span>\<span class="w">Program</span> <span class="w">Files</span>\<span class="w">Microsoft</span> <span class="w">Visual</span> <span class="w">Studio</span> <span class="n">8</span>\<span class="w">Common7</span>\<span class="w">IDE</span><span class="sc">;</span><span class="j">C:</span>\<span class="w">Program</span> <span class="w">Files</span>\<span class="w">Microsoft</span> <span class="w">Visual</span> <span class="w">Studio</span> <span class="n">8</span>\<span class="w">VC</span>\<span class="w">BIN</span><span class="sc">;</span><span class="j">C:</span>\<span class="w">Program</span> <span class="w">Files</span>\<span class="w">Microsoft</span> <span class="w">Visual</span> <span class="w">Studio</span> <span class="n">8</span>\<span class="w">Common7</span>\<span class="w">Tools</span><span class="sc">;</span><span class="j">C:</span>\<span class="w">Program</span> <span class="w">Files</span>\<span class="w">Microsoft</span> <span class="w">Visual</span> <span class="w">Studio</span> <span class="n">8</span>\<span class="w">SDK</span>\<span class="v">v2.0</span>\<span class="w">bin</span><span class="sc">;</span><span class="j">C:</span>\<span class="w">WINDOWS</span>\<span class="w">Microsoft</span>.<span class="w">NET</span>\<span class="w">Framework</span>\<span class="v">v2.0.50727</span><span class="sc">;</span><span class="j">C:</span>\<span class="w">Program</span> <span class="w">Files</span>\<span class="w">Microsoft</span> <span class="w">Visual</span> <span class="w">Studio</span> <span class="n">8</span>\<span class="w">VC</span>\<span class="w">VCPackages</span><span class="sc">;</span><span class="i">%PlatformSDKDir</span>%\<span class="w">Bin</span></pre>
 
223
<pre class="verbatim">  SET INCLUDE=C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE;%PlatformSDKDir%\include</pre><pre class="verbatim">  SET LIB=C:\Program Files\Microsoft Visual Studio 8\VC\LIB;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\lib;%PlatformSDKDir%\lib</pre><pre class="verbatim">      SET LIBPATH=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727</pre><p>(The PlatformSDKDir might need to be set differently depending on which version
 
224
you are using. Earlier versions installed into "C:\Program Files\Microsoft SDK",
 
225
while the latest versions install into version-specific locations such as
 
226
"C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2".)</p>
 
227
<p>Perl should now build using the win32/Makefile.  You will need to edit that
 
228
file to set</p>
 
229
<pre class="verbatim">  <span class="w">CCTYPE</span> = <span class="w">MSVC80FREE</span></pre>
 
230
<p>and to set CCHOME, CCINCDIR and CCLIBDIR as per the environment setup above.</p>
 
231
</li>
179
232
<li><a name="Microsoft-Visual-C%2b%2b-Toolkit-2003"></a><b>Microsoft Visual C++ Toolkit 2003</b>
180
233
<p>This free toolkit contains the same compiler and linker that ship with
181
 
Visual Studio .NET 2003 Professional, but doesn't contain everything
 
234
Visual C++ .NET 2003 Professional, but doesn't contain everything
182
235
necessary to build Perl.</p>
183
236
<p>You will also need to download the "Platform SDK" (the "Core SDK" and "MDAC
184
237
SDK" components are required) for header files, libraries and rc.exe, and
192
245
changing so often.)</p>
193
246
<p>Try to obtain the latest version of the Platform SDK.  Sometimes these packages
194
247
contain a particular Windows OS version in their name, but actually work on
195
 
other OS versions too.  For example, the "Windows Server 2003 SP1 Platform SDK"
 
248
other OS versions too.  For example, the "Windows Server 2003 R2 Platform SDK"
196
249
also runs on Windows XP SP2 and Windows 2000.</p>
197
 
<p>According to the download pages the Toolkit and the .NET Framework SDK are only
198
 
supported on Windows 2000/XP/2003, so trying to use these tools on Windows
199
 
95/98/ME and even Windows NT probably won't work.</p>
 
250
<p>According to the download pages these packages are only supported on Windows
 
251
2000/XP/2003, so trying to use these tools on Windows 95/98/ME and even Windows
 
252
NT probably won't work.</p>
200
253
<p>Install the Toolkit first, then the Platform SDK, then the .NET Framework SDK.
201
254
Setup your environment as follows (assuming default installation locations
202
255
were chosen):</p>
203
 
<pre class="verbatim">  SET PATH=%SystemRoot%\system32;%SystemRoot%;C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin;C:\Program Files\Microsoft SDK\Bin;C:\Program Files\Microsoft.NET\SDK\v1.1\Bin
204
 
        SET INCLUDE=C:\Program Files\Microsoft Visual C++ Toolkit 2003\include;C:\Program Files\Microsoft SDK\include;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include
205
 
        SET LIB=C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib;C:\Program Files\Microsoft SDK\lib;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib</pre><p>Several required files will still be missing:</p>
 
256
<pre class="verbatim">  SET PlatformSDKDir=C:\Program Files\Microsoft Platform SDK</pre><pre class="verbatim">  SET PATH=%SystemRoot%\system32;%SystemRoot%;C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin;%PlatformSDKDir%\Bin;C:\Program Files\Microsoft.NET\SDK\v1.1\Bin</pre><pre class="verbatim"> SET INCLUDE=C:\Program Files\Microsoft Visual C++ Toolkit 2003\include;%PlatformSDKDir%\include;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include</pre><pre class="verbatim">      SET LIB=C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib;%PlatformSDKDir%\lib;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib</pre><p>(The PlatformSDKDir might need to be set differently depending on which version
 
257
you are using. Earlier versions installed into "C:\Program Files\Microsoft SDK",
 
258
while the latest versions install into version-specific locations such as
 
259
"C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2".)</p>
 
260
<p>Several required files will still be missing:</p>
206
261
<ul>
207
262
<li>
208
263
<p>cvtres.exe is required by link.exe when using a .res file.  It is actually
209
264
installed by the .NET Framework SDK, but into a location such as the
210
265
following:</p>
211
 
<pre class="verbatim">  <span class="j">C:</span>\WINDOWS\Microsoft.NET\Framework\<span class="v">v1.1.4322</span></pre>
212
 
<p>Copy it from there to C:\Program Files\Microsoft SDK\Bin</p>
 
266
<pre class="verbatim">  <span class="j">C:</span>\<span class="w">WINDOWS</span>\<span class="w">Microsoft</span>.<span class="w">NET</span>\<span class="w">Framework</span>\<span class="v">v1.1.4322</span></pre>
 
267
<p>Copy it from there to %PlatformSDKDir%\Bin</p>
213
268
</li>
214
269
<li>
215
270
<p>lib.exe is normally used to build libraries, but link.exe with the /lib
216
271
option also works, so change win32/config.vc to use it instead:</p>
217
272
<p>Change the line reading:</p>
218
 
<pre class="verbatim">  ar=<span class="q">&#39;lib&#39;</span></pre>
 
273
<pre class="verbatim">  <span class="w">ar</span>=<span class="q">&#39;lib&#39;</span></pre>
219
274
<p>to:</p>
220
 
<pre class="verbatim">  ar=<span class="q">&#39;link /lib&#39;</span></pre>
 
275
<pre class="verbatim">  <span class="w">ar</span>=<span class="q">&#39;link /lib&#39;</span></pre>
221
276
<p>It may also be useful to create a batch file called lib.bat in
222
277
C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin containing:</p>
223
278
<pre class="verbatim">  @echo off
228
283
<li>
229
284
<p>setargv.obj is required to build perlglob.exe (and perl.exe if the USE_SETARGV
230
285
option is enabled).  The Platform SDK supplies this object file in source form
231
 
in C:\Program Files\Microsoft SDK\src\crt.  Copy setargv.c, cruntime.h and
 
286
in %PlatformSDKDir%\src\crt.  Copy setargv.c, cruntime.h and
232
287
internal.h from there to some temporary location and build setargv.obj using</p>
233
 
<pre class="verbatim">  cl.exe /c /I. /D_CRTBLD setargv.c</pre><p>Then copy setargv.obj to C:\Program Files\Microsoft SDK\lib</p>
 
288
<pre class="verbatim">  cl.exe /c /I. /D_CRTBLD setargv.c</pre><p>Then copy setargv.obj to %PlatformSDKDir%\lib</p>
234
289
<p>Alternatively, if you don't need perlglob.exe and don't need to enable the
235
290
USE_SETARGV option then you can safely just remove all mention of $(GLOBEXE)
236
291
from win32/Makefile and setargv.obj won't be required anyway.</p>
238
293
</ul>
239
294
<p>Perl should now build using the win32/Makefile.  You will need to edit that
240
295
file to set</p>
241
 
<pre class="verbatim">  CCTYPE = MSVC70FREE</pre>
 
296
<pre class="verbatim">  <span class="w">CCTYPE</span> = <span class="w">MSVC70FREE</span></pre>
242
297
<p>and to set CCHOME, CCINCDIR and CCLIBDIR as per the environment setup above.</p>
243
298
</li>
244
299
<li><a name="Microsoft-Platform-SDK-64-bit-Compiler"></a><b>Microsoft Platform SDK 64-bit Compiler</b>
304
359
<p>The default value for CCHOME in the makefiles for Visual C++
305
360
may not be correct for some versions.  Make sure the default exists
306
361
and is valid.</p>
307
 
<p>You may also need to comment out the <code class="inline">DELAYLOAD = ...</code>
 
362
<p>You may also need to comment out the <code class="inline"><span class="w">DELAYLOAD</span> = ...</code>
308
363
 line in the
309
364
Makefile if you're using VC++ 6.0 without the latest service pack and
310
365
the linker reports an internal error.</p>
 
366
<p>If you are using VC++ 4.2 or earlier then you'll have to change the /EHsc
 
367
option in the CXX_FLAG macro to the equivalent /GX option.</p>
311
368
<p>If you have either the source or a library that contains des_fcrypt(),
312
369
enable the appropriate option in the makefile.  A ready-to-use version
313
370
of fcrypt.c, based on the version originally written by Eric Young at
324
381
<li>
325
382
<p>Type "dmake" (or "nmake" if you are using that make).</p>
326
383
<p>This should build everything.  Specifically, it will create perl.exe,
327
 
perl58.dll at the perl toplevel, and various other extension dll's
 
384
perl510.dll at the perl toplevel, and various other extension dll's
328
385
under the lib\auto directory.  If the build fails for any reason, make
329
386
sure you have done the previous steps correctly.</p>
330
387
</li>
352
409
option -VI- for backward (bugward) compatibility for using the old Borland
353
410
search algorithm  to locate header files.</p>
354
411
<p>If you run the tests on a FAT partition, you may see some failures for
355
 
<code class="inline"><a class="l_k" href="functions/link.html">link()</a></code> related tests:</p>
356
 
<pre class="verbatim">    Failed <a class="l_w" href="Test.html">Test</a>                     Stat Wstat Total Fail  Failed  List</pre>
357
 
<pre class="verbatim">    ../ext/IO/lib/IO/t/io_dup.t                    6    4  66.67%  2-5
358
 
    ../lib/File/Temp/t/mktemp.t                    9    1  11.11%  2
359
 
    ../lib/File/Temp/t/posix.t                     7    1  14.29%  3
360
 
    ../lib/File/Temp/t/security.t                 13    1   7.69%  2
361
 
    ../lib/File/Temp/t/tempfile.t                 20    2  10.00%  2 4
362
 
    comp/multiline.t                               6    2  33.33%  5-6
363
 
    io/dup.t                                       8    6  75.00%  2-7
364
 
    op/write.t                                    47    7  14.89%  1-3 6 9-11</pre><p>Testing on NTFS avoids these errors.</p>
365
 
<p>Furthermore, you should make sure that during <code class="inline">make test</code>
 
412
<code class="inline"><a class="l_k" href="functions/link.html">link()</a></code> related tests (<i>op/write.t</i>, <i>op/stat.t</i> ...). Testing on
 
413
NTFS avoids these errors.</p>
 
414
<p>Furthermore, you should make sure that during <code class="inline"><span class="w">make</span> <span class="w">test</span></code>
366
415
 you do not
367
416
have any GNU tool packages in your path: some toolkits like Unixutils
368
 
include some tools (<code class="inline">type</code>
 
417
include some tools (<code class="inline"><span class="w">type</span></code>
369
418
 for instance) which override the Windows
370
419
ones and makes tests fail. Remove them from your path while testing to
371
420
avoid these errors.</p>
372
421
<p>Please report any other failures as described under <a href="#BUGS-AND-CAVEATS">"BUGS AND CAVEATS"</a>.</p>
373
422
<a name="Installation-of-Perl-on-Win32"></a><h2>Installation of Perl on Win32</h2>
374
423
<p>Type "dmake install" (or "nmake install").  This will put the newly
375
 
built perl and the libraries under whatever <code class="inline">INST_TOP</code>
 
424
built perl and the libraries under whatever <code class="inline"><span class="w">INST_TOP</span></code>
376
425
 points to in the
377
426
Makefile.  It will also install the pod documentation under
378
 
<code class="inline"><span class="i">$INST_TOP</span>\<span class="i">$INST_VER</span>\<a class="l_w" href="lib.html">lib</a>\pod</code>
 
427
<code class="inline"><span class="i">$INST_TOP</span>\<span class="i">$INST_VER</span>\<span class="w">lib</span>\<span class="w">pod</span></code>
379
428
 and HTML versions of the same under
380
 
<code class="inline"><span class="i">$INST_TOP</span>\<span class="i">$INST_VER</span>\<a class="l_w" href="lib.html">lib</a>\pod\html</code>
 
429
<code class="inline"><span class="i">$INST_TOP</span>\<span class="i">$INST_VER</span>\<span class="w">lib</span>\<span class="w">pod</span>\<span class="w">html</span></code>
381
430
.</p>
382
431
<p>To use the Perl you just installed you will need to add a new entry to
383
 
your PATH environment variable: <code class="inline"><span class="i">$INST_TOP</span>\bin</code>
 
432
your PATH environment variable: <code class="inline"><span class="i">$INST_TOP</span>\<span class="w">bin</span></code>
384
433
, e.g.</p>
385
 
<pre class="verbatim">    set PATH=c:\perl\bin;%PATH%</pre><p>If you opted to uncomment <code class="inline">INST_VER</code>
386
 
 and <code class="inline">INST_ARCH</code>
 
434
<pre class="verbatim">    set PATH=c:\perl\bin;%PATH%</pre><p>If you opted to uncomment <code class="inline"><span class="w">INST_VER</span></code>
 
435
 and <code class="inline"><span class="w">INST_ARCH</span></code>
387
436
 in the makefile
388
437
then the installation structure is a little more complicated and you will
389
 
need to add two new PATH components instead: <code class="inline"><span class="i">$INST_TOP</span>\<span class="i">$INST_VER</span>\bin</code>
 
438
need to add two new PATH components instead: <code class="inline"><span class="i">$INST_TOP</span>\<span class="i">$INST_VER</span>\<span class="w">bin</span></code>
390
439
 and
391
 
<code class="inline"><span class="i">$INST_TOP</span>\<span class="i">$INST_VER</span>\bin\<span class="i">$ARCHNAME</span></code>
 
440
<code class="inline"><span class="i">$INST_TOP</span>\<span class="i">$INST_VER</span>\<span class="w">bin</span>\<span class="i">$ARCHNAME</span></code>
392
441
, e.g.</p>
393
442
<pre class="verbatim">    set PATH=c:\perl\5.6.0\bin;c:\perl\5.6.0\bin\MSWin32-x86;%PATH%</pre><a name="Usage-Hints-for-Perl-on-Win32"></a><h2>Usage Hints for Perl on Win32</h2>
394
443
<ul>
404
453
backtick commands via PERL5SHELL.  See <a href="perlrun.html">perlrun</a>.</p>
405
454
<p>Perl does not depend on the registry, but it can look up certain default
406
455
values if you choose to put them there.  Perl attempts to read entries from
407
 
<code class="inline">HKEY_CURRENT_USER\Software\Perl</code>
408
 
 and <code class="inline">HKEY_LOCAL_MACHINE\Software\Perl</code>
 
456
<code class="inline"><span class="w">HKEY_CURRENT_USER</span>\<span class="w">Software</span>\<span class="w">Perl</span></code>
 
457
 and <code class="inline"><span class="w">HKEY_LOCAL_MACHINE</span>\<span class="w">Software</span>\<span class="w">Perl</span></code>
409
458
.
410
459
Entries in the former override entries in the latter.  One or more of the
411
460
following entries (of type REG_SZ or REG_EXPAND_SZ) may be set:</p>
468
517
the caret as a quote character).</p>
469
518
<p>Here are some examples of usage of the "cmd" shell:</p>
470
519
<p>This prints two doublequotes:</p>
471
 
<pre class="verbatim">    perl -e <span class="q">&quot;print &#39;\&quot;\&quot;&#39; &quot;</span></pre>
 
520
<pre class="verbatim">    <span class="w">perl</span> -e <span class="q">&quot;print &#39;\&quot;\&quot;&#39; &quot;</span></pre>
472
521
<p>This does the same:</p>
473
 
<pre class="verbatim">    perl -e <span class="q">&quot;print \&quot;\\\&quot;\\\&quot;\&quot; &quot;</span></pre>
 
522
<pre class="verbatim">    <span class="w">perl</span> -e <span class="q">&quot;print \&quot;\\\&quot;\\\&quot;\&quot; &quot;</span></pre>
474
523
<p>This prints "bar" and writes "foo" to the file "blurch":</p>
475
 
<pre class="verbatim">    perl -e <span class="q">&quot;print &#39;foo&#39;; print STDERR &#39;bar&#39;&quot;</span> &gt; blurch</pre>
 
524
<pre class="verbatim">    <span class="w">perl</span> -e <span class="q">&quot;print &#39;foo&#39;; print STDERR &#39;bar&#39;&quot;</span> &gt; <span class="w">blurch</span></pre>
476
525
<p>This prints "foo" ("bar" disappears into nowhereland):</p>
477
526
<pre class="verbatim">    perl -e "print 'foo'; print STDERR 'bar'" 2&gt; nul</pre><p>This prints "bar" and writes "foo" into the file "blurch":</p>
478
527
<pre class="verbatim">    perl -e "print 'foo'; print STDERR 'bar'" 1&gt; blurch</pre><p>This pipes "foo" to the "less" pager and prints "bar" on the console:</p>
479
 
<pre class="verbatim">    perl -e <span class="q">&quot;print &#39;foo&#39;; print STDERR &#39;bar&#39;&quot;</span> | <a class="l_w" href="less.html">less</a></pre>
 
528
<pre class="verbatim">    <span class="w">perl</span> -e <span class="q">&quot;print &#39;foo&#39;; print STDERR &#39;bar&#39;&quot;</span> | <span class="w">less</span></pre>
480
529
<p>This pipes "foo\nbar\n" to the less pager:</p>
481
530
<pre class="verbatim">    perl -le "print 'foo'; print STDERR 'bar'" 2&gt;&amp;1 | less</pre><p>This pipes "foo" to the pager and writes "bar" in the file "blurch":</p>
482
531
<pre class="verbatim">    perl -e "print 'foo'; print STDERR 'bar'" 2&gt; blurch | less</pre><p>Discovering the usefulness of the "command.com" shell on Windows 9x
596
645
<p>Windows .NET Server supports the LLP64 data model on the Intel Itanium
597
646
architecture.</p>
598
647
<p>The LLP64 data model is different from the LP64 data model that is the
599
 
norm on 64-bit Unix platforms.  In the former, <code class="inline"><a class="l_k" href="functions/int.html">int</a></code> and <code class="inline">long</code>
 
648
norm on 64-bit Unix platforms.  In the former, <code class="inline"><a class="l_k" href="functions/int.html">int</a></code> and <code class="inline"><span class="w">long</span></code>
600
649
 are
601
650
both 32-bit data types, while pointers are 64 bits wide.  In addition,
602
 
there is a separate 64-bit wide integral type, <code class="inline">__int64</code>
 
651
there is a separate 64-bit wide integral type, <code class="inline"><span class="w">__int64</span></code>
603
652
.  In contrast,
604
653
the LP64 data model that is pervasive on Unix platforms provides <code class="inline"><a class="l_k" href="functions/int.html">int</a></code>
605
 
as the 32-bit type, while both the <code class="inline">long</code>
 
654
as the 32-bit type, while both the <code class="inline"><span class="w">long</span></code>
606
655
 type and pointers are of
607
656
64-bit precision.  Note that both models provide for 64-bits of
608
657
addressability.</p>
652
701
regular batch file to the OS, may be used.  The install process
653
702
makes available the "pl2bat.bat" script which can be used to wrap
654
703
perl scripts into batch files.  For example:</p>
655
 
<pre class="verbatim">  pl2bat foo.pl</pre>
 
704
<pre class="verbatim">  <span class="w">pl2bat</span> <span class="w">foo</span>.<span class="w">pl</span></pre>
656
705
<p>will create the file "FOO.BAT".  Note "pl2bat" strips any
657
706
.pl suffix and adds a .bat suffix to the generated file.</p>
658
707
<p>If you use the 4DOS/NT or similar command shell, note that
690
739
<p>A full set of HTML documentation is installed, so you should be
691
740
able to use it if you have a web browser installed on your
692
741
system.</p>
693
 
<p><code class="inline">perldoc</code>
 
742
<p><code class="inline"><span class="w">perldoc</span></code>
694
743
 is also a useful tool for browsing information contained
695
744
in the documentation, especially in conjunction with a pager
696
 
like <code class="inline"><a class="l_w" href="less.html">less</a></code> (recent versions of which have Win32 support).  You may
 
745
like <code class="inline"><span class="w">less</span></code>
 
746
 (recent versions of which have Win32 support).  You may
697
747
have to set the PAGER environment variable to use a specific pager.
698
748
"perldoc -f foo" will print information about the perl operator
699
749
"foo".</p>
700
 
<p>One common mistake when using this port with a GUI library like <code class="inline">Tk</code>
 
750
<p>One common mistake when using this port with a GUI library like <code class="inline"><span class="w">Tk</span></code>
701
751
 
702
752
is assuming that Perl's normal behavior of opening a command-line
703
753
window will go away.  This isn't the case.  If you want to start a copy
704
 
of <code class="inline">perl</code>
705
 
 without opening a command-line window, use the <code class="inline">wperl</code>
 
754
of <code class="inline"><span class="w">perl</span></code>
 
755
 without opening a command-line window, use the <code class="inline"><span class="w">wperl</span></code>
706
756
 
707
757
executable built during the installation process.  Usage is exactly
708
 
the same as normal <code class="inline">perl</code>
709
 
 on Win32, except that options like <code class="inline">-h</code>
 
758
the same as normal <code class="inline"><span class="w">perl</span></code>
 
759
 on Win32, except that options like <code class="inline">-<span class="w">h</span></code>
710
760
 
711
761
don't work (since they need a command-line window to print to).</p>
712
 
<p>If you find bugs in perl, you can run <code class="inline">perlbug</code>
 
762
<p>If you find bugs in perl, you can run <code class="inline"><span class="w">perlbug</span></code>
713
763
 to create a
714
 
bug report (you may have to send it manually if <code class="inline">perlbug</code>
 
764
bug report (you may have to send it manually if <code class="inline"><span class="w">perlbug</span></code>
715
765
 cannot
716
766
find a mailer on your system).</p>
717
767
<a name="BUGS-AND-CAVEATS"></a><h1>BUGS AND CAVEATS</h1>
724
774
files (it seems to either catch file part written and treat it as suspicious,
725
775
or virus checker may have it "locked" in a way which inhibits miniperl
726
776
updating it). The build does complete with</p>
727
 
<pre class="verbatim">   set PERLIO=perlio</pre>
 
777
<pre class="verbatim">   <span class="w">set</span> <span class="w">PERLIO</span>=<span class="w">perlio</span></pre>
728
778
<p>but that may be just luck. Other AntiVirus software may have similar issues.</p>
729
779
<p>Some of the built-in functions do not act exactly as documented in
730
780
<a href="perlfunc.html">perlfunc</a>, and a few are not implemented at all.  To avoid
750
800
currently be considered unsupported.</p>
751
801
<p>Please send detailed descriptions of any problems and solutions that
752
802
you may find to &lt;<i>perlbug@perl.org</i>&gt;, along with the output
753
 
produced by <code class="inline">perl -V</code>
 
803
produced by <code class="inline"><span class="w">perl</span> -<span class="w">V</span></code>
754
804
.</p>
755
805
<a name="ACKNOWLEDGEMENTS"></a><h1>ACKNOWLEDGEMENTS</h1>
756
806
<p>The use of a camel with the topic of Perl is a trademark
782
832
<p>Support for fork() emulation was added in 5.6 (ActiveState Tool Corp).</p>
783
833
<p>Win9x support was added in 5.6 (Benjamin Stuhl).</p>
784
834
<p>Support for 64-bit Windows added in 5.8 (ActiveState Corp).</p>
785
 
<p>Last updated: 30 September 2005</p>
 
835
<p>Last updated: 29 August 2007</p>
786
836
</div>
787
837
      <div id="contentFooter"><a href="http://www.perl.org"><img src="perlpowered.png" border=0></a></div>
788
838
    </div>
800
850
          <!--<select name="r"><option value="1" selected>Go to top result<option value="0">Show results list</select>-->
801
851
        </form>
802
852
      </p>
 
853
      <script language="JavaScript" type="text/javascript" src="/perl-version.js"></script>
803
854
      <h2>Labels:</h2>
804
855
      <p>
805
856
        <a href="#" onClick="addLabel('perlwin32','perlwin32.html')">Add this page</a>