オープンソース・ソフトウェアの開発とダウンロード

CVS リポジトリの参照

Annotation of /perldocjp/docs/perl/5.12.1/perlfaq3.pod

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (hide annotations) (download)
Fri Jun 15 17:40:06 2012 UTC (11 years, 10 months ago) by argrath
Branch: MAIN
CVS Tags: HEAD
5.12.1/perlfaq*

1 argrath 1.1
2     =encoding euc-jp
3    
4     =head1 NAME
5    
6     =begin original
7    
8     perlfaq3 - Programming Tools
9    
10     =end original
11    
12     perlfaq3 - プログラミングツール
13    
14     =head1 DESCRIPTION
15    
16     =begin original
17    
18     This section of the FAQ answers questions related to programmer tools
19     and programming support.
20    
21     =end original
22    
23     FAQ のこのセクションでは、プログラマーツールやプログラミングサポートに
24     関する質問に回答しています。
25    
26     =head2 How do I do (anything)?
27    
28     (○○をするにはどうすればいいの?)
29    
30     =begin original
31    
32     Have you looked at CPAN (see L<perlfaq2>)? The chances are that
33     someone has already written a module that can solve your problem.
34     Have you read the appropriate manpages? Here's a brief index:
35    
36     =end original
37    
38     CPAN (L<perlfaq2> を参照して下さい)はもう見ましたか?
39     あなたの問題を解決してくれるような
40     モジュールを誰かがすでに作っているのを見つけられるかもしれません。
41     適切なマニュアルページは見ましたか?
42     簡単なインデックスを挙げておきます:
43    
44     =begin original
45    
46     Basics perldata, perlvar, perlsyn, perlop, perlsub
47     Execution perlrun, perldebug
48     Functions perlfunc
49     Objects perlref, perlmod, perlobj, perltie
50     Data Structures perlref, perllol, perldsc
51     Modules perlmod, perlmodlib, perlsub
52     Regexes perlre, perlfunc, perlop, perllocale
53     Moving to perl5 perltrap, perl
54     Linking w/C perlxstut, perlxs, perlcall, perlguts, perlembed
55     Various http://www.cpan.org/misc/olddoc/FMTEYEWTK.tgz
56     (not a man-page but still useful, a collection
57     of various essays on Perl techniques)
58    
59     =end original
60    
61     基礎 perldata, perlvar, perlsyn, perlop, perlsub
62     実行 perlrun, perldebug
63     関数 perlfunc
64     オブジェクト perlref, perlmod, perlobj, perltie
65     データ構造 perlref, perllol, perldsc
66     モジュール perlmod, perlmodlib, perlsub
67     正規表現 perlre, perlfunc, perlop, perllocale
68     perl5への移行 perltrap, perl
69     Cとのリンク perlxstut, perlxs, perlcall, perlguts, perlembed
70     その他 http://www.cpan.org/misc/olddoc/FMTEYEWTK.tgz
71     (man-page ではありませんが有用な、Perl のテクニックに
72     関するコラム集です)
73    
74     =begin original
75    
76     A crude table of contents for the Perl manpage set is found in L<perltoc>.
77    
78     =end original
79    
80     無加工の Perl のマニュアルページセットの目次の一覧が L<perltoc> にあります。
81    
82     =head2 How can I use Perl interactively?
83    
84     (対話的に Perl を使うには?)
85    
86     =begin original
87    
88     The typical approach uses the Perl debugger, described in the
89     C<perldebug(1)> manpage, on an "empty" program, like this:
90    
91     =end original
92    
93     典型的なやり方は、C<perldebug(1)> マニュアルページにあるような Perl
94     デバッガを以下の例のように「空の」プログラムに対して使うことです:
95    
96     perl -de 42
97    
98     =begin original
99    
100     Now just type in any legal Perl code, and it will be immediately
101     evaluated. You can also examine the symbol table, get stack
102     backtraces, check variable values, set breakpoints, and other
103     operations typically found in symbolic debuggers.
104    
105     =end original
106    
107     これで、正しい Perl コードをタイプするだけで即座にそれが評価されます。
108     同様に、シンボルテーブルの検査やスタックのバックトレースを得ること、
109     変数の値の確認、ブレークポイントの設定、そしてシンボリックデバッガで
110     行える典型的な操作が可能です。
111    
112     =head2 Is there a Perl shell?
113    
114     (Perl シェルはありますか?)
115    
116     =begin original
117    
118     The C<psh> (Perl sh) is currently at version 1.8. The Perl Shell is a shell
119     that combines the interactive nature of a Unix shell with the power of
120     Perl. The goal is a full featured shell that behaves as expected for
121     normal shell activity and uses Perl syntax and functionality for
122     control-flow statements and other things. You can get C<psh> at
123     http://sourceforge.net/projects/psh/ .
124    
125     =end original
126    
127     C<psh> (Perl sh) は現在バージョン 1.8 です。
128     Perl Shell は Unix シェルの対話性と Perl の力を融合したものです。
129     目標は通常のシェルのような機能および、フロー制御やその他のことに
130     Perl の文法と機能を使う完全な機能を持ったシェルです。
131     C<psh> は http://www.focusresearch.com/gregor/psh/ で入手できます。
132    
133     =begin original
134    
135     C<Zoidberg> is a similar project and provides a shell written in perl,
136     configured in perl and operated in perl. It is intended as a login shell
137     and development environment. It can be found at
138     http://pardus-larus.student.utwente.nl/~pardus/projects/zoidberg/
139     or your local CPAN mirror.
140    
141     =end original
142    
143     C<Zoidberg> は似たようなプロジェクトで perl で書かれたシェルを提供します。
144     これは perl で設定され、perl で動作します。
145     これはログインシェルと開発環境を意図しています。
146     http://pardus-larus.student.utwente.nl/~pardus/projects/zoidberg/
147     またはお近くの CPAN ミラーにあります。
148    
149     =begin original
150    
151     The C<Shell.pm> module (distributed with Perl) makes Perl try commands
152     which aren't part of the Perl language as shell commands. C<perlsh> from
153     the source distribution is simplistic and uninteresting, but may still
154     be what you want.
155    
156     =end original
157    
158     (Perl と一緒に配布されている) C<Shell.pm> モジュールは、Perl が Perl 言語の
159     一部ではないコマンドをシェルコマンドのように試してみるようにさせます。
160     ソース配布と一緒にある C<perlsh> は単純で、面白みに欠けるものかも
161     しれませんが、あなたの要求には十分かもしれません。
162    
163     =head2 How do I find which modules are installed on my system?
164    
165     (自分のシステムに入っているモジュールを知るには?)
166    
167     =begin original
168    
169     From the command line, you can use the C<cpan> command's C<-l> switch:
170    
171     =end original
172    
173     コマンドラインからは、C<-l> オプション付きの C<cpan> コマンドが使えます:
174    
175     $ cpan -l
176    
177     =begin original
178    
179     You can also use C<cpan>'s C<-a> switch to create an autobundle file
180     that C<CPAN.pm> understands and can use to re-install every module:
181    
182     =end original
183    
184     また、C<cpan> の C<-a> オプションを使うことで、C<CPAN.pm> が理解して、
185     全てのモジュールを再インストールするために使える autobundle ファイルも
186     作れます。
187    
188     $ cpan -a
189    
190     =begin original
191    
192     Inside a Perl program, you can use the C<ExtUtils::Installed> module to
193     show all installed distributions, although it can take awhile to do
194     its magic. The standard library which comes with Perl just shows up
195     as "Perl" (although you can get those with C<Module::CoreList>).
196    
197     =end original
198    
199     Perl プログラム内では、
200     C<ExtUtils::Installed> モジュールを使うことで全てのインストールされた
201     ディストリビューションを知ることが出来ますが、この魔法を使うには
202     少し時間がかかります。
203     Perl と共に入る標準ライブラリは単に "Perl" として表示されます
204     (しかしこれらのリストは C<Module::CoreList> で得ることが出来ます)。
205    
206     use ExtUtils::Installed;
207    
208     my $inst = ExtUtils::Installed->new();
209     my @modules = $inst->modules();
210    
211     =begin original
212    
213     If you want a list of all of the Perl module filenames, you
214     can use C<File::Find::Rule>:
215    
216     =end original
217    
218     全ての Perl モジュールファイル名の一覧を知りたいなら、
219     C<File::Find::Rule> が利用できます:
220    
221     use File::Find::Rule;
222    
223     my @files = File::Find::Rule->
224     extras({follow => 1})->
225     file()->
226     name( '*.pm' )->
227     in( @INC )
228     ;
229    
230     =begin original
231    
232     If you do not have that module, you can do the same thing
233     with C<File::Find> which is part of the standard library:
234    
235     =end original
236    
237     このモジュールがない場合、標準ライブラリの一部である
238     C<File::Find> を使って同じことが出来ます:
239    
240     use File::Find;
241     my @files;
242    
243     find(
244     {
245     wanted => sub {
246     push @files, $File::Find::fullname
247     if -f $File::Find::fullname && /\.pm$/
248     },
249     follow => 1,
250     follow_skip => 2,
251     },
252     @INC
253     );
254    
255     print join "\n", @files;
256    
257     =begin original
258    
259     If you simply need to quickly check to see if a module is
260     available, you can check for its documentation. If you can
261     read the documentation the module is most likely installed.
262     If you cannot read the documentation, the module might not
263     have any (in rare cases):
264    
265     =end original
266    
267     単にあるモジュールが使えるかどうかを知りたいだけなら、
268     ドキュメントをチェックするという方法があります。
269     もしそのモジュールに関するドキュメントが読めるなら、
270     そのモジュールはきっとインストールされています。
271     ドキュメントが読めない場合、(まれに)モジュールにドキュメントが
272     ないという可能性もあります:
273    
274     $ perldoc Module::Name
275    
276     =begin original
277    
278     You can also try to include the module in a one-liner to see if
279     perl finds it:
280    
281     =end original
282    
283     一行野郎でモジュールを読み込めるか試すという手もあります:
284    
285     $ perl -MModule::Name -e1
286    
287     =head2 How do I debug my Perl programs?
288    
289     (私の Perl プログラムをデバッグするには?)
290    
291     =begin original
292    
293     (contributed by brian d foy)
294    
295     =end original
296    
297     (brian d foy によって寄贈されました)
298    
299     =begin original
300    
301     Before you do anything else, you can help yourself by ensuring that
302     you let Perl tell you about problem areas in your code. By turning
303     on warnings and strictures, you can head off many problems before
304     they get too big. You can find out more about these in L<strict>
305     and L<warnings>.
306    
307     =end original
308    
309     他の事をする前に、あなたのコードの問題を Perl に調べさせることで
310     あなたへの助けとすることが出来ます。
311     警告と厳密性をオンにすることによって、多くの問題を大事になる前に
312     阻止できます。
313     これらに関する詳細は L<strict> と L<warnings> にあります。
314    
315     #!/usr/bin/perl
316     use strict;
317     use warnings;
318    
319     =begin original
320    
321     Beyond that, the simplest debugger is the C<print> function. Use it
322     to look at values as you run your program:
323    
324     =end original
325    
326     その他に、もっとも単純なデバッガは C<print> 関数です。
327     プログラム実行中に値を見るために使います:
328    
329     print STDERR "The value is [$value]\n";
330    
331     =begin original
332    
333     The C<Data::Dumper> module can pretty-print Perl data structures:
334    
335     =end original
336    
337     C<Data::Dumper> モジュールは Perl のデータ構造をきれいに表示します:
338    
339     use Data::Dumper qw( Dumper );
340     print STDERR "The hash is " . Dumper( \%hash ) . "\n";
341    
342     =begin original
343    
344     Perl comes with an interactive debugger, which you can start with the
345     C<-d> switch. It's fully explained in L<perldebug>.
346    
347     =end original
348    
349     Perl には対話的デバッガが同梱されていて、C<-d> スイッチを付けることで
350     起動できます。
351     L<perldebug> で完全に説明されています。
352    
353     =begin original
354    
355     If you'd like a graphical user interface and you have C<Tk>, you can use
356     C<ptkdb>. It's on CPAN and available for free.
357    
358     =end original
359    
360     もし GUI がほしくて、C<Tk> がある場合、C<ptkdb> が使えます。
361     これは CPAN にあり、自由に使えます。
362    
363     =begin original
364    
365     If you need something much more sophisticated and controllable, Leon
366     Brocard's C<Devel::ebug> (which you can call with the C<-D> switch as C<-Debug>)
367     gives you the programmatic hooks into everything you need to write your
368     own (without too much pain and suffering).
369    
370     =end original
371    
372     もっと洗練されていて制御可能なものが必要なら、Leon Brocard の
373     C<Devel::ebug> (C<-D> オプションを使って C<-Debug> として呼び出せます)を使うと、
374     なんでもあなたが自分で書いたものを使って(それほどの苦痛なしに)プログラム上の
375     フックを作れます。
376    
377     =begin original
378    
379     You can also use a commercial debugger such as Affrus (Mac OS X), Komodo
380     from Activestate (Windows and Mac OS X), or EPIC (most platforms).
381    
382     =end original
383    
384     Affrus (Mac OS X), Activestate Komodo (Windows と Mac OS X), EPIC
385     (ほとんどのプラットフォーム) といった商用デバッガも使えます。
386    
387     =head2 How do I profile my Perl programs?
388    
389     (私の Perl プログラムのプロファイルを取るには?)
390    
391     =begin original
392    
393     (contributed by brian d foy, updated Fri Jul 25 12:22:26 PDT 2008)
394    
395     =end original
396    
397     (brian d foy によって寄贈され、Fri Jul 25 12:22:26 PDT 2008 に
398     更新されました)
399    
400     =begin original
401    
402     The C<Devel> namespace has several modules which you can use to
403     profile your Perl programs. The C<Devel::DProf> module comes with Perl
404     and you can invoke it with the C<-d> switch:
405    
406     =end original
407    
408     C<Devel> 名前空間には Perl プログラムをプロファイルするために使える
409     いくつかのモジュールがあります。
410     C<Devel::DProf> モジュールは Perl と共に配布されていて、
411     C<-d> オプションで起動できます:
412    
413     perl -d:DProf program.pl
414    
415     =begin original
416    
417     After running your program under C<DProf>, you'll get a F<tmon.out> file
418     with the profile data. To look at the data, you can turn it into a
419     human-readable report with the C<dprofpp> program that comes with
420     C<Devel::DProf>.
421    
422     =end original
423    
424     C<DProf> の元でプログラムを動かした後、プロファイルデータとして
425     F<tmon.out> ファイルが得られます。
426     このデータを見るためには、C<Devel::DProf> と共に配布されている
427     C<dprofpp> プログラムで人間が読める形のレポートに変換します。
428    
429     dprofpp
430    
431     =begin original
432    
433     You can also do the profiling and reporting in one step with the C<-p>
434     switch to C<dprofpp>:
435    
436     =end original
437    
438     また、C<dprofpp> に C<-p> オプションを付けることで、プロファイリングと
439     レポートを一度に行うことも出来ます:
440    
441     dprofpp -p program.pl
442    
443     =begin original
444    
445     The C<Devel::NYTProf> (New York Times Profiler) does both statement
446     and subroutine profiling. It's available from CPAN and you also invoke
447     it with the C<-d> switch:
448    
449     =end original
450    
451     C<Devel::NYTProf> (New York Times Profiler) は文とサブルーチンの
452     両方のプロファイリングを行います。
453     これは CPAN から入手可能で、やはり C<-d> オプションで起動できます:
454    
455     perl -d:NYTProf some_perl.pl
456    
457     =begin original
458    
459     Like C<DProf>, it creates a database of the profile information that you
460     can turn into reports. The C<nytprofhtml> command turns the data into
461     an HTML report similar to the C<Devel::Cover> report:
462    
463     =end original
464    
465     C<DProf> と同様、レポートに変換できるプロファイル情報のデータベースを
466     作成します。
467     C<nytprofhtml> コマンドで、データを C<Devel::Cover> レポートと似たような
468     HTML レポートに変換します:
469    
470     nytprofhtml
471    
472     =begin original
473    
474     CPAN has several other profilers that you can invoke in the same
475     fashion. You might also be interested in using the C<Benchmark> to
476     measure and compare code snippets.
477    
478     =end original
479    
480     CPAN には同じ形で起動できるその他のプロファイラもいくつかあります。
481     また、コード片を計測、比較するために C<Benchmark> を使うことにも
482     興味があるかもしれません。
483    
484     =begin original
485    
486     You can read more about profiling in I<Programming Perl>, chapter 20,
487     or I<Mastering Perl>, chapter 5.
488    
489     =end original
490    
491     プロファイルに関するさらなることについては I<Programming Perl> の
492     20 章か I<Mastering Perl> の 5 章を読んでください。
493    
494     =begin original
495    
496     L<perldebguts> documents creating a custom debugger if you need to
497     create a special sort of profiler. brian d foy describes the process
498     in I<The Perl Journal>, "Creating a Perl Debugger",
499     http://www.ddj.com/184404522 , and "Profiling in Perl"
500     http://www.ddj.com/184404580 .
501    
502     =end original
503    
504     L<perldebguts> には、特別な種類のプロファイラが必要な場合に
505     カスタムデバッガを作る方法が書かれています。
506     brian d foy は I<The Perl Journal> の "Creating a Perl Debugger",
507     http://www.ddj.com/184404522 と "Profiling in Perl"
508     http://www.ddj.com/184404580 で処理を記述しています。
509    
510     =begin original
511    
512     Perl.com has two interesting articles on profiling: "Profiling Perl",
513     by Simon Cozens, http://www.perl.com/lpt/a/850 and "Debugging and
514     Profiling mod_perl Applications", by Frank Wiles,
515     http://www.perl.com/pub/a/2006/02/09/debug_mod_perl.html .
516    
517     =end original
518    
519     Perl.com にはプロファイリングに関する二つの興味深い記事があります:
520     Simon Cozens による "Profiling Perl" http://www.perl.com/lpt/a/850
521     Frank Wiles による "Debugging and Profiling mod_perl Applications"
522     http://www.perl.com/pub/a/2006/02/09/debug_mod_perl.html です。
523    
524     =begin original
525    
526     Randal L. Schwartz writes about profiling in "Speeding up Your Perl
527     Programs" for I<Unix Review>,
528     http://www.stonehenge.com/merlyn/UnixReview/col49.html , and "Profiling
529     in Template Toolkit via Overriding" for I<Linux Magazine>,
530     http://www.stonehenge.com/merlyn/LinuxMag/col75.html .
531    
532     =end original
533    
534     Randal L. Schwartz はプロファイリングについて
535     I<Unix Review> の "Speeding up Your Perl Programs"
536     http://www.stonehenge.com/merlyn/UnixReview/col49.html と、
537     I<Linux Magazine> の "Profiling in Template Toolkit via Overriding"
538     http://www.stonehenge.com/merlyn/LinuxMag/col75.html で書いています。
539    
540     =head2 How do I cross-reference my Perl programs?
541    
542     (私の Perl プログラムのクロスリファレンスをとるには?)
543    
544     =begin original
545    
546     The C<B::Xref> module can be used to generate cross-reference reports
547     for Perl programs.
548    
549     =end original
550    
551     C<B::Xref> モジュールが Perl プログラムに対する
552     クロスリファレンスの報告を生成するのに使えます。
553    
554     perl -MO=Xref[,OPTIONS] scriptname.plx
555    
556     =head2 Is there a pretty-printer (formatter) for Perl?
557    
558     (Perl 用のプリティプリンター(フォーマッター)はありますか?)
559    
560     =begin original
561    
562     C<Perltidy> is a Perl script which indents and reformats Perl scripts
563     to make them easier to read by trying to follow the rules of the
564     L<perlstyle>. If you write Perl scripts, or spend much time reading
565     them, you will probably find it useful. It is available at
566     http://perltidy.sourceforge.net .
567    
568     =end original
569    
570     C<Perltidy> は Perl スクリプトを L<perlstyle> のルールに従って
571     読みやすくしようとする Perl スクリプトです。
572     Perl スクリプトを書いたとき、あるいは多くの時間を Perl スクリプトを
573     読むのに費やすとき、多分これが有用です。
574     http://perltidy.sourceforge.net で入手できます。
575    
576     =begin original
577    
578     Of course, if you simply follow the guidelines in L<perlstyle>,
579     you shouldn't need to reformat. The habit of formatting your code
580     as you write it will help prevent bugs. Your editor can and should
581     help you with this. The perl-mode or newer cperl-mode for emacs
582     can provide remarkable amounts of help with most (but not all)
583     code, and even less programmable editors can provide significant
584     assistance. Tom Christiansen and many other VI users swear by
585     the following settings in vi and its clones:
586    
587     =end original
588    
589     もちろん、あなたが L<perlstyle> に従っているのであれば、
590     リフォーマットする必要はないでしょう。
591     自分のプログラムの書式を統一しておく習慣はバグ対策になります。
592     あなたの使っているエディターはソースのフォーマッティングを
593     助けてくれるかもしれません。
594     emacs の perl モードやより新しい cperl モードは、コードの
595     ほとんど(が、全部ではありません)に対して驚くほどたくさんの手助けを
596     提供してくれるでしょうし、そしてそれよりも非力なプログラム可能な
597     エディターでさえも明らかな手助けを提供してくれるかもしれません。
598     Tom Christiansen とその他の多くの vi 使いは vi (とそのクローン)で
599     以下のような設定を使っています:
600    
601     set ai sw=4
602     map! ^O {^M}^[O^T
603    
604     =begin original
605    
606     Put that in your F<.exrc> file (replacing the caret characters
607     with control characters) and away you go. In insert mode, ^T is
608     for indenting, ^D is for undenting, and ^O is for blockdenting--as
609     it were. A more complete example, with comments, can be found at
610     http://www.cpan.org/authors/id/TOMC/scripts/toms.exrc.gz
611    
612     =end original
613    
614     これをあなたの F<.exrc> というファイル(キャレット文字はコントロール文字で
615     置き換えます)に書き込めば OK です。
616     挿入モードでは ^T はインデントを行い、^D はアンインデントを、
617     ^Oは blockdent をします。
618     コメント付きの、より完全な例は
619     http://www.perl.com/CPAN-local/authors/id/TOMC/scripts/toms.exrc.gz
620     にあります。
621    
622     =begin original
623    
624     The a2ps http://www-inf.enst.fr/%7Edemaille/a2ps/black+white.ps.gz does
625     lots of things related to generating nicely printed output of
626     documents.
627    
628     =end original
629    
630     http://www-inf.enst.fr/%7Edemaille/a2ps/black+white.ps.gz にある a2ps は
631     奇麗なドキュメントを出力するということに関して多くのことを行います。
632    
633     =head2 Is there a ctags for Perl?
634    
635     (Perl 用の ctags はありますか?)
636    
637     =begin original
638    
639     (contributed by brian d foy)
640    
641     =end original
642    
643     (brian d foy によって寄贈されました)
644    
645     =begin original
646    
647     Ctags uses an index to quickly find things in source code, and many
648     popular editors support ctags for several different languages,
649     including Perl.
650    
651     =end original
652    
653     ctags はソースコード内のものを素早く探すためにインデックスを使い、多くの
654     有名なエディタは Perl を含むいくつかの言語に対して ctags に対応しています。
655    
656     =begin original
657    
658     Exuberent ctags supports Perl: http://ctags.sourceforge.net/
659    
660     =end original
661    
662     Exuberent ctags は Perl に対応しています: http://ctags.sourceforge.net/
663    
664     =begin original
665    
666     You might also try pltags: http://www.mscha.com/pltags.zip
667    
668     =end original
669    
670     pltags も試してみてください: http://www.mscha.com/pltags.zip
671    
672     =head2 Is there an IDE or Windows Perl Editor?
673    
674     (Perl の統合開発環境とか Windows Perl Editor はありますか?)
675    
676     =begin original
677    
678     Perl programs are just plain text, so any editor will do.
679    
680     =end original
681    
682     Perl プログラムは単なるテキストなので、どんなエディタでも作成できます。
683    
684     =begin original
685    
686     If you're on Unix, you already have an IDE--Unix itself. The Unix
687     philosophy is the philosophy of several small tools that each do one
688     thing and do it well. It's like a carpenter's toolbox.
689    
690     =end original
691    
692     あなたが Unix を使っているなら、あなたはすでに統合開発環境を
693     手にしています--それは Unix 自身です。
694     Unix の哲学は、一つのことをうまくこなせる小さなツールを複数
695     組み合わせることです。
696     これは大工の道具箱に似ています。
697    
698     =begin original
699    
700     If you want an IDE, check the following (in alphabetical order, not
701     order of preference):
702    
703     =end original
704    
705     統合開発環境がほしいなら、以下をチェックしてください
706     (アルファベット順であって、有用な順ではありません):
707    
708     =over 4
709    
710     =item Eclipse
711    
712     http://e-p-i-c.sf.net/
713    
714     =begin original
715    
716     The Eclipse Perl Integration Project integrates Perl
717     editing/debugging with Eclipse.
718    
719     =end original
720    
721     The Eclipse Perl Integration Project は Perl の編集/デバッグを Eclipse に
722     統合します。
723    
724     =item Enginsite
725    
726     http://www.enginsite.com/
727    
728     =begin original
729    
730     Perl Editor by EngInSite is a complete integrated development
731     environment (IDE) for creating, testing, and debugging Perl scripts;
732     the tool runs on Windows 9x/NT/2000/XP or later.
733    
734     =end original
735    
736     EngInSite の Perl Editor Perl スクリプトを作成・テスト・デバッグするための
737     完全な統合開発環境(IDE)です; ツールは Windows 9x/NT/2000/XP 移行で
738     動作します。
739    
740     =item Komodo
741    
742     http://www.ActiveState.com/Products/Komodo/
743    
744     =begin original
745    
746     ActiveState's cross-platform (as of October 2004, that's Windows, Linux,
747     and Solaris), multi-language IDE has Perl support, including a regular expression
748     debugger and remote debugging.
749    
750     =end original
751    
752     ActiveState のクロスプラットフォーム(2004 年 10 月現在
753     Windows, Linux, Solaris) 多言語 IDE は、
754     正規表現デバッガ、リモートデバッグを含む Perl サポートがあります。
755    
756     =item Notepad++
757    
758     http://notepad-plus.sourceforge.net/
759    
760     =item Open Perl IDE
761    
762     http://open-perl-ide.sourceforge.net/
763    
764     =begin original
765    
766     Open Perl IDE is an integrated development environment for writing
767     and debugging Perl scripts with ActiveState's ActivePerl distribution
768     under Windows 95/98/NT/2000.
769    
770     =end original
771    
772     Open Perl IDE は Windows 95/98/NT/2000 で動作する ActiveState の
773     ActivePerl で Perl スクリプトを書いたりデバッグしたりするための
774     統合開発環境です。
775    
776     =item OptiPerl
777    
778     http://www.optiperl.com/
779    
780     =begin original
781    
782     OptiPerl is a Windows IDE with simulated CGI environment, including
783     debugger and syntax highlighting editor.
784    
785     =end original
786    
787     OptiPerl は擬似 CGI 環境を持つ Windows 用 IDE で、
788     デバッガと文法によって色付けされるエディタを含みます。
789    
790     =item Padre
791    
792     http://padre.perlide.org/
793    
794     =begin original
795    
796     Padre is cross-platform IDE for Perl written in Perl using wxWidgets to provide
797     a native look and feel. It's open source under the Artistic License.
798    
799     =end original
800    
801     Padre は、ネイティブな見た目を提供するために wxWidgets を使って Perl で
802     書かれた Perl のためのクロスプラットフォーム IDE です。
803    
804     =item PerlBuilder
805    
806     http://www.solutionsoft.com/perl.htm
807    
808     =begin original
809    
810     PerlBuilder is an integrated development environment for Windows that
811     supports Perl development.
812    
813     =end original
814    
815     PerlBuilder は Windows 用統合開発環境で、Perl の開発にも対応しています。
816    
817     =item visiPerl+
818    
819     http://helpconsulting.net/visiperl/
820    
821     =begin original
822    
823     From Help Consulting, for Windows.
824    
825     =end original
826    
827     Help Consulting 製で、Windows 用です。
828    
829     =item Visual Perl
830    
831     http://www.activestate.com/Products/Visual_Perl/
832    
833     =begin original
834    
835     Visual Perl is a Visual Studio.NET plug-in from ActiveState.
836    
837     =end original
838    
839     Visual Perl は ActiveState 製で、Visual Studio.NET へのプラグインです。
840    
841     =item Zeus
842    
843     http://www.zeusedit.com/lookmain.html
844    
845     =begin original
846    
847     Zeus for Window is another Win32 multi-language editor/IDE
848     that comes with support for Perl:
849    
850     =end original
851    
852     Zeus for Window は Perl にも対応した、もう一つの Win32 複数言語
853     エディタ/IDEです。
854    
855     =back
856    
857     =begin original
858    
859     For editors: if you're on Unix you probably have vi or a vi clone
860     already, and possibly an emacs too, so you may not need to download
861     anything. In any emacs the cperl-mode (M-x cperl-mode) gives you
862     perhaps the best available Perl editing mode in any editor.
863    
864     =end original
865    
866     エディタ使いへ: あなたが Unix を使っているなら、おそらく vi か
867     vi クローンがすでにあるはずで、emacs もあるかもしれません。
868     それで、あなたは何もダウンロードする必要はないかもしれません。
869     あらゆるバージョンの emacs で使える cperl-mode (M-x cperl-mode) は
870     おそらくエディタでの Perl 編集モードの中で最高のものでしょう。
871    
872     =begin original
873    
874     If you are using Windows, you can use any editor that lets you work
875     with plain text, such as NotePad or WordPad. Word processors, such as
876     Microsoft Word or WordPerfect, typically do not work since they insert
877     all sorts of behind-the-scenes information, although some allow you to
878     save files as "Text Only". You can also download text editors designed
879     specifically for programming, such as Textpad (
880     http://www.textpad.com/ ) and UltraEdit ( http://www.ultraedit.com/ ),
881     among others.
882    
883     =end original
884    
885     Windows を使っているのなら、NotePad や WordPad といった
886     プレーンテキストを扱えるエディタを使うことが出来ます。
887     Microsoft Word や WordPerfect といったワードプロセッサは
888     一般的には使えません。なぜなら色々な「裏方の」情報を追加するからです。
889     ただし、"Text Only" としてファイルをセーブできるものもあります。
890     また、Textpad ( http://www.textpad.com/ ) や UltraEdit
891     ( http://www.ultraedit.com/ ) といったプログラミングに特化した
892     テキストエディタをダウンロードすることもできます。
893    
894     =begin original
895    
896     If you are using MacOS, the same concerns apply. MacPerl (for Classic
897     environments) comes with a simple editor. Popular external editors are
898     BBEdit ( http://www.bbedit.com/ ) or Alpha (
899     http://www.his.com/~jguyer/Alpha/Alpha8.html ). MacOS X users can use
900     Unix editors as well.
901    
902     =end original
903    
904     MacOS を使っているなら、同様の考え方が適用されます。
905     (Classic 環境用の)MacPerl にはシンプルなエディタが付いています。
906     有名な外部エディタとしては BBEdit ( http://www.bbedit.com/ ) や
907     Alpha ( http://www.his.com/~jguyer/Alpha/Alpha8.html ) があります。
908     MacOS X ユーザーは Unix エディタも使えます。
909    
910     =over 4
911    
912     =item GNU Emacs
913    
914     http://www.gnu.org/software/emacs/windows/ntemacs.html
915    
916     =item MicroEMACS
917    
918     http://www.microemacs.de/
919    
920     =item XEmacs
921    
922     http://www.xemacs.org/Download/index.html
923    
924     =item Jed
925    
926     http://space.mit.edu/~davis/jed/
927    
928     =back
929    
930     =begin original
931    
932     or a vi clone such as
933    
934     =end original
935    
936     あるいは以下のような vi クローンもあります:
937    
938     =over 4
939    
940     =item Elvis
941    
942     ftp://ftp.cs.pdx.edu/pub/elvis/ http://www.fh-wedel.de/elvis/
943    
944     =item Vile
945    
946     http://dickey.his.com/vile/vile.html
947    
948     =item Vim
949    
950     http://www.vim.org/
951    
952     =back
953    
954     =begin original
955    
956     For vi lovers in general, Windows or elsewhere:
957    
958     =end original
959    
960     一般的な、Windows やその他の vi 愛好者のために:
961    
962     http://www.thomer.com/thomer/vi/vi.html
963    
964     =begin original
965    
966     nvi ( http://www.bostic.com/vi/ , available from CPAN in src/misc/) is
967     yet another vi clone, unfortunately not available for Windows, but in
968     Unix platforms you might be interested in trying it out, firstly because
969     strictly speaking it is not a vi clone, it is the real vi, or the new
970     incarnation of it, and secondly because you can embed Perl inside it
971     to use Perl as the scripting language. nvi is not alone in this,
972     though: at least also vim and vile offer an embedded Perl.
973    
974     =end original
975    
976     nvi (http://www.bostic.com/vi/ , CPAN の src/misc/ にもあります)は
977     vi クローンの一つで、残念ながら Windows では動作しませんが、
978     Unix プラットフォームを使っているなら試してみるべきです。
979     第一の理由としては、厳密には vi クローンではないものの、
980     実際は vi、あるいは vi の子孫であるからです。
981     第二の理由としては、Perl を内蔵していて、Perl をスクリプト言語として
982     使えるからです。
983     しかし、nvi はこれらの機能をもつ唯一のものではありません。
984     少なくとも vim と vile も内蔵 Perl を提供しています。
985    
986     =begin original
987    
988     The following are Win32 multilanguage editor/IDEs that support Perl:
989    
990     =end original
991    
992     以下は Perl をサポートしている Win32 多言語エディタ/IDE です。
993    
994     =over 4
995    
996     =item Codewright
997    
998     http://www.borland.com/codewright/
999    
1000     =item MultiEdit
1001    
1002     http://www.MultiEdit.com/
1003    
1004     =item SlickEdit
1005    
1006     http://www.slickedit.com/
1007    
1008     =item ConTEXT
1009    
1010     http://www.contexteditor.org/
1011    
1012     =back
1013    
1014     =begin original
1015    
1016     There is also a toyedit Text widget based editor written in Perl
1017     that is distributed with the Tk module on CPAN. The ptkdb
1018     ( http://ptkdb.sourceforge.net/ ) is a Perl/tk based debugger that
1019     acts as a development environment of sorts. Perl Composer
1020     ( http://perlcomposer.sourceforge.net/ ) is an IDE for Perl/Tk
1021     GUI creation.
1022    
1023     =end original
1024    
1025     CPAN で Tk モジュールと共に配布されている、Perl で書かれた
1026     toyedit Text ウィジェットベースのエディタがあります。
1027     ptkdb( http://ptkdb.sourceforge.net/ ) は 開発環境として振舞う
1028     Perl/tk ベースのデバッガです。
1029     Perl Composer ( http://perlcomposer.sourceforge.net/vperl.html )は
1030     Perl/Tk GUI を使った IDE です。
1031    
1032     =begin original
1033    
1034     In addition to an editor/IDE you might be interested in a more
1035     powerful shell environment for Win32. Your options include
1036    
1037     =end original
1038    
1039     エディタ/統合開発環境に加えて、Win32 環境でのより強力な
1040     シェル環境に興味があるかもしれません。
1041     選択肢としては以下のものがあります:
1042    
1043     =over 4
1044    
1045     =item Bash
1046    
1047     =begin original
1048    
1049     from the Cygwin package ( http://sources.redhat.com/cygwin/ )
1050    
1051     =end original
1052    
1053     Cygwin パッケージ ( http://sources.redhat.com/cygwin/ ) から。
1054    
1055     =item Ksh
1056    
1057     =begin original
1058    
1059     from the MKS Toolkit ( http://www.mkssoftware.com/ ), or the Bourne shell of
1060     the U/WIN environment ( http://www.research.att.com/sw/tools/uwin/ )
1061    
1062     =end original
1063    
1064     MKS ツールキット ( http://www.mkssoftware.com/ )か、
1065     U/WIN 環境 ( http://www.research.att.com/sw/tools/uwin/ ) の
1066     Bourne shell から。
1067    
1068     =item Tcsh
1069    
1070     =begin original
1071    
1072     ftp://ftp.astron.com/pub/tcsh/ , see also
1073     http://www.primate.wisc.edu/software/csh-tcsh-book/
1074    
1075     =end original
1076    
1077     ftp://ftp.astron.com/pub/tcsh/ ;
1078     http://www.primate.wisc.edu/software/csh-tcsh-book/ も参照してください。
1079    
1080     =item Zsh
1081    
1082     http://www.zsh.org/
1083    
1084     =back
1085    
1086     =begin original
1087    
1088     MKS and U/WIN are commercial (U/WIN is free for educational and
1089     research purposes), Cygwin is covered by the GNU General Public
1090     License (but that shouldn't matter for Perl use). The Cygwin, MKS,
1091     and U/WIN all contain (in addition to the shells) a comprehensive set
1092     of standard Unix toolkit utilities.
1093    
1094     =end original
1095    
1096     MKS とU/WIN は商用(U/WIN は教育・研究目的には無料)で、
1097     Cygwin は GNU General Public License で配布されています
1098     (しかしこれは Perl の使用には関係ないはずです)。
1099     Cygwin, MSK, U/WIN は全て(シェルに加えて)広範囲な標準 Unix
1100     ツールキットを含んでいます。
1101    
1102     =begin original
1103    
1104     If you're transferring text files between Unix and Windows using FTP
1105     be sure to transfer them in ASCII mode so the ends of lines are
1106     appropriately converted.
1107    
1108     =end original
1109    
1110     Unix と Windows の間でテキストファイルを FTP で転送する場合、
1111     改行コードを適切に変更するために ASCII モードにしてください。
1112    
1113     =begin original
1114    
1115     On Mac OS the MacPerl Application comes with a simple 32k text editor
1116     that behaves like a rudimentary IDE. In contrast to the MacPerl Application
1117     the MPW Perl tool can make use of the MPW Shell itself as an editor (with
1118     no 32k limit).
1119    
1120     =end original
1121    
1122     Mac OS では MacPerl Application は基本的な IDE のように振舞う
1123     シンプルな 32k テキストエディタがついています。
1124     MacPerl Application と対照的に、MPW Perl tool は MPW Shell 自身を
1125     (32k の制限なしに)エディタとして使えます。
1126    
1127     =over 4
1128    
1129     =item Affrus
1130    
1131     =begin original
1132    
1133     is a full Perl development environment with full debugger support
1134     ( http://www.latenightsw.com ).
1135    
1136     =end original
1137    
1138     は、完全なデバッガサポート付きの完全な Perl 開発環境です
1139     ( http://www.latenightsw.com )。
1140    
1141     =item Alpha
1142    
1143     =begin original
1144    
1145     is an editor, written and extensible in Tcl, that nonetheless has
1146     built in support for several popular markup and programming languages
1147     including Perl and HTML ( http://www.his.com/~jguyer/Alpha/Alpha8.html ).
1148    
1149     =end original
1150    
1151     これはエディタで、Tcl で書かれており、拡張可能です。
1152     それでもいくつかの有名なマークアップ言語とプログラミング言語
1153     ( Perl と HTML を含みます)への対応を内蔵しています
1154     ( http://www.his.com/~jguyer/Alpha/Alpha8.html )。
1155    
1156     =item BBEdit and BBEdit Lite
1157    
1158     =begin original
1159    
1160     are text editors for Mac OS that have a Perl sensitivity mode
1161     ( http://web.barebones.com/ ).
1162    
1163     =end original
1164    
1165     これは Mac OS で動作するテキストエディタで、
1166     Perl 用のモードがあります( http://web.barebones.com/ )。
1167    
1168     =back
1169    
1170     =head2 Where can I get Perl macros for vi?
1171    
1172     (vi 用の Perl マクロはどこで入手できますか?)
1173    
1174     =begin original
1175    
1176     For a complete version of Tom Christiansen's vi configuration file,
1177     see http://www.cpan.org/authors/Tom_Christiansen/scripts/toms.exrc.gz ,
1178     the standard benchmark file for vi emulators. The file runs best with nvi,
1179     the current version of vi out of Berkeley, which incidentally can be built
1180     with an embedded Perl interpreter--see http://www.cpan.org/src/misc/ .
1181    
1182     =end original
1183    
1184     Tom Christiansen の vi コンフィグレーションファイルの完全なものは
1185     vi エミュレータの標準ベンチマークファイルである
1186     http://www.cpan.org/authors/Tom_Christiansen/scripts/toms.exrc.gz
1187     を参照してください。
1188     これは Berkeley の外にあるviのカレントバージョンである nvi で
1189     最もうまく実行されます。
1190     nvi は組み込みの Perl インタプリタをつけてビルドすることもできます。
1191     http://www.cpan.org/src/misc/ を参照してください。
1192    
1193     =head2 Where can I get perl-mode for emacs?
1194    
1195     (emacs の perl-mode はどこで入手できますか?)
1196    
1197     =begin original
1198    
1199     Since Emacs version 19 patchlevel 22 or so, there have been both a
1200     perl-mode.el and support for the Perl debugger built in. These should
1201     come with the standard Emacs 19 distribution.
1202    
1203     =end original
1204    
1205     Emacs のバージョン 19 パッチレベル 22 から、perl-mode.el と組み込みの Perl
1206     デバッガをサポートしています。
1207     これらは標準の Emacs19 配布セットと一緒にあるはずです。
1208    
1209     =begin original
1210    
1211     In the Perl source directory, you'll find a directory called "emacs",
1212     which contains a cperl-mode that color-codes keywords, provides
1213     context-sensitive help, and other nifty things.
1214    
1215     =end original
1216    
1217     Perlのソースディレクトリには、"emacs" というディレクトリがあって、
1218     そこにはキーワードをカラー表示したり、コンテキスト依存な
1219     ヘルプなどのご機嫌なことを提供する cperl-mode があります。
1220    
1221     =begin original
1222    
1223     Note that the perl-mode of emacs will have fits with C<"main'foo">
1224     (single quote), and mess up the indentation and highlighting. You
1225     are probably using C<"main::foo"> in new Perl code anyway, so this
1226     shouldn't be an issue.
1227    
1228     =end original
1229    
1230     emacs の perl-mode は C<"main'foo">(シングルクォート)スタイルを扱うもので、
1231     インデントやハイライトをおかしくしてしまうことに注意してください。
1232     いずれにしろ、C<"main::foo">を使うべきでしょう。
1233    
1234     =head2 How can I use curses with Perl?
1235    
1236     (Perl で curses を使うには?)
1237    
1238     =begin original
1239    
1240     The Curses module from CPAN provides a dynamically loadable object
1241     module interface to a curses library. A small demo can be found at the
1242     directory http://www.cpan.org/authors/Tom_Christiansen/scripts/rep.gz ;
1243     this program repeats a command and updates the screen as needed, rendering
1244     B<rep ps axu> similar to B<top>.
1245    
1246     =end original
1247    
1248     CPAN にある Curses モジュールは、curses ライブラリに対する動的に
1249     ロード可能なオブジェクトモジュールインターフェースを提供します。
1250     ちょっとしたデモが
1251     http://www.cpan.org/authors/Tom_Christiansen/scripts/rep.gz
1252     にあります。
1253     このプログラムはコマンドを繰り返し、必要に応じて
1254     画面を更新し、B<top> と同じく B<rep ps axu> をレンダリングします。
1255    
1256     =head2 How can I write a GUI (X, Tk, Gtk, etc.) in Perl?
1257     X<GUI> X<Tk> X<Wx> X<WxWidgets> X<Gtk> X<Gtk2> X<CamelBones> X<Qt>
1258    
1259     (Perl で GUI (X, Tk, Gtk など) を書くには?)
1260    
1261     =begin original
1262    
1263     (contributed by Ben Morrow)
1264    
1265     =end original
1266    
1267     (Ben Morrow によって寄贈されました)
1268    
1269     =begin original
1270    
1271     There are a number of modules which let you write GUIs in Perl. Most
1272     GUI toolkits have a perl interface: an incomplete list follows.
1273    
1274     =end original
1275    
1276     Perl で GUI を書くための多くのモジュールがあります。
1277     ほとんどの GUI ツールキットには perl インターフェースがあります:
1278     以下に不完全なリストを示します。
1279    
1280     =over 4
1281    
1282     =item Tk
1283    
1284     =begin original
1285    
1286     This works under Unix and Windows, and the current version doesn't
1287     look half as bad under Windows as it used to. Some of the gui elements
1288     still don't 'feel' quite right, though. The interface is very natural
1289     and 'perlish', making it easy to use in small scripts that just need a
1290     simple gui. It hasn't been updated in a while.
1291    
1292     =end original
1293    
1294     これは Unix と Windows で動作し、現在のバージョンは Windows でも以前のように
1295     悪くはないです。
1296     しかし、GUI 要素には完全に正しい「感じ」ではないものもあります。
1297     インターフェースはとても自然で「perl っぽい」もので、単純な GUI が
1298     ほしいだけの小さいスクリプトで簡単に使えます。
1299     これはしばらくの間更新されていません。
1300    
1301     =item Wx
1302    
1303     =begin original
1304    
1305     This is a Perl binding for the cross-platform wxWidgets toolkit
1306     ( http://www.wxwidgets.org ). It works under Unix, Win32 and Mac OS X,
1307     using native widgets (Gtk under Unix). The interface follows the C++
1308     interface closely, but the documentation is a little sparse for someone
1309     who doesn't know the library, mostly just referring you to the C++
1310     documentation.
1311    
1312     =end original
1313    
1314     これは クロスプラットフォーム wxWidgets ツールキット
1315     ( http://www.wxwidgets.org ) の Perl バインディングです。
1316     これは ネイティブなウィジェット(Unix では Gtk) を使って、
1317     Unix, Win32, Mac OS X で動作します。
1318     インターフェースは C++ インターフェースに近いですが、
1319     ドキュメントはライブラリを知らない人にとっては少々手薄なので、
1320     たいていは単に C++ ドキュメントを参照することになるでしょう。
1321    
1322     =item Gtk and Gtk2
1323    
1324     =begin original
1325    
1326     These are Perl bindings for the Gtk toolkit ( http://www.gtk.org ). The
1327     interface changed significantly between versions 1 and 2 so they have
1328     separate Perl modules. It runs under Unix, Win32 and Mac OS X (currently
1329     it requires an X server on Mac OS, but a 'native' port is underway), and
1330     the widgets look the same on every plaform: i.e., they don't match the
1331     native widgets. As with Wx, the Perl bindings follow the C API closely,
1332     and the documentation requires you to read the C documentation to
1333     understand it.
1334    
1335     =end original
1336    
1337     Gtk ツールキット ( http://www.gtk.org ) の Perl バインディングがあります。
1338     バージョン 1 と 2 でインターフェースが大きく変わったので、個別の Perl
1339     モジュールになっています。
1340     これは Unix, Win32, Mac OS X で動作し(現在のところ Mac OS X では
1341     X サーバーが必要ですが、「ネイティブ」ポートも進行中です)、ウィジェットは
1342     どのプラットフォームでも同じような見た目になります(つまり、ネイティブの
1343     ウィジェットとは一致しません)。
1344     Wx と同様、Perl バインディングは C API に似ていて、これを理解するためには
1345     C のドキュメントを読む必要があります。
1346    
1347     =item Win32::GUI
1348    
1349     =begin original
1350    
1351     This provides access to most of the Win32 GUI widgets from Perl.
1352     Obviously, it only runs under Win32, and uses native widgets. The Perl
1353     interface doesn't really follow the C interface: it's been made more
1354     Perlish, and the documentation is pretty good. More advanced stuff may
1355     require familiarity with the C Win32 APIs, or reference to MSDN.
1356    
1357     =end original
1358    
1359     これは Perl から Win32 GUI ウィジェットのほとんどへのアクセスを提供します。
1360     明らかに、これは Win32 でのみ動作し、ネイティブなウィジェットを使います。
1361     Perl のインターフェースは C のインターフェースに本当に従ってはいません:
1362     これはより Perl っぽく、ドキュメントもかなりよく出来ています。
1363     より高度な機能を使うためには C Win32 API に親しんでいるか、MSDN を
1364     参照する必要があります。
1365    
1366     =item CamelBones
1367    
1368     =begin original
1369    
1370     CamelBones ( http://camelbones.sourceforge.net ) is a Perl interface to
1371     Mac OS X's Cocoa GUI toolkit, and as such can be used to produce native
1372     GUIs on Mac OS X. It's not on CPAN, as it requires frameworks that
1373     CPAN.pm doesn't know how to install, but installation is via the
1374     standard OSX package installer. The Perl API is, again, very close to
1375     the ObjC API it's wrapping, and the documentation just tells you how to
1376     translate from one to the other.
1377    
1378     =end original
1379    
1380     CamelBones ( http://camelbones.sourceforge.net ) は Mac OS X の Cocoa GUI への
1381     Perl のインターフェースで、Mac OS X でのネイティブな GUI の生成に使えます。
1382     これは CPAN.pm がどのようにインストールすればよいか知らないフレームワークを
1383     必要とするので CPAN にはありませんが、標準 OSX パッケージインストーラ経由で
1384     インストールします。
1385     再び、Perl API はそれがラッピングしている ObjC API ととても近いので、
1386     ドキュメントは単にお互いをどう変換すればいいかについて書いています。
1387    
1388     =item Qt
1389    
1390     =begin original
1391    
1392     There is a Perl interface to TrollTech's Qt toolkit, but it does not
1393     appear to be maintained.
1394    
1395     =end original
1396    
1397     TrollTech の Qt toolkit への Perl インターフェースはありますが、
1398     保守されていないようです。
1399    
1400     =item Athena
1401    
1402     =begin original
1403    
1404     Sx is an interface to the Athena widget set which comes with X, but
1405     again it appears not to be much used nowadays.
1406    
1407     =end original
1408    
1409     Sx は X に同梱されている Athena ウィジェットセットへのインターフェースですが、
1410     やはり最近ではほとんど使われていないようです。
1411    
1412     =back
1413    
1414     =head2 How can I make my Perl program run faster?
1415    
1416     (私の Perl プログラムをもっと速くするには?)
1417    
1418     =begin original
1419    
1420     The best way to do this is to come up with a better algorithm. This
1421     can often make a dramatic difference. Jon Bentley's book
1422     I<Programming Pearls> (that's not a misspelling!) has some good tips
1423     on optimization, too. Advice on benchmarking boils down to: benchmark
1424     and profile to make sure you're optimizing the right part, look for
1425     better algorithms instead of microtuning your code, and when all else
1426     fails consider just buying faster hardware. You will probably want to
1427     read the answer to the earlier question "How do I profile my Perl
1428     programs?" if you haven't done so already.
1429    
1430     =end original
1431    
1432     その最善の方法とは、よりよいアルゴリズムを使うということです。
1433     ラクダ本の第八章にはあなたが感心をよせるかもしれない幾つかの効率的な
1434     tips があります。
1435     Jon Bentleyの著作 "Programming Pearls" (ミススペルではありません!)
1436     (邦訳「珠玉のプログラミング」)にも最適化に関するいくつかの Tips があります。
1437     ベンチマークとプロファイルによって、
1438     あなたのプログラムのどこに手を入れて最適化するのが正しいのかを
1439     はっきりさせ、ちまちまと高速化を行うのではなくより良いアルゴリズムを
1440     探す手掛かりになります。
1441     そして、どうしようもなくなったときには
1442     いつ新しいハードウェアを買うかということを知る手掛かりともなります。
1443     まだ読んでいないなら、前述した "How do I profile my Perl programs?" という
1444     質問の答えも読みたいと思うでしょう。
1445    
1446     =begin original
1447    
1448     A different approach is to autoload seldom-used Perl code. See the
1449     AutoSplit and AutoLoader modules in the standard distribution for
1450     that. Or you could locate the bottleneck and think about writing just
1451     that part in C, the way we used to take bottlenecks in C code and
1452     write them in assembler. Similar to rewriting in C, modules that have
1453     critical sections can be written in C (for instance, the PDL module
1454     from CPAN).
1455    
1456     =end original
1457    
1458     別のアプローチには、時々使う Perl コードをオートローディングすると
1459     いうものがあります。
1460     このために標準配布キットにある AutoSplit モジュールと
1461     AutoLoader モジュールを参照してください。
1462     あるいは、ボトルネックとなっているところを特定し、その部分を
1463     C で書くことを考えるかもしれません。
1464     ちょうど C で書かれたプログラムのボトルネックをアセンブラで
1465     書くのと同じことです。
1466     C で書き直すという意味では、クリティカルセクションを持ったモジュールを
1467     C で書き直すというのも同様です(例えば、CPAN にある
1468     PDL モジュールがそうです)。
1469    
1470     =begin original
1471    
1472     If you're currently linking your perl executable to a shared
1473     I<libc.so>, you can often gain a 10-25% performance benefit by
1474     rebuilding it to link with a static libc.a instead. This will make a
1475     bigger perl executable, but your Perl programs (and programmers) may
1476     thank you for it. See the F<INSTALL> file in the source distribution
1477     for more information.
1478    
1479     =end original
1480    
1481     もしあなたが今、perl の実行ファイルと共有ライブラリ C<libc.so> を
1482     リンクしているのであれば、スタティックに libc.a とリンクして perl を
1483     再ビルドすることによって、しばしば 10-25% 性能を
1484     向上させることが可能です。
1485     これは perl の実行ファイルを大きなものにしてしまいますが、
1486     あなたの Perl プログラム(とプログラマー)はスタティックリンクされたことを
1487     感謝するでしょう。
1488     より詳しい情報は、ソース配布にある F<INSTALL> というファイルを
1489     参照してください。
1490    
1491     =begin original
1492    
1493     The undump program was an ancient attempt to speed up Perl program by
1494     storing the already-compiled form to disk. This is no longer a viable
1495     option, as it only worked on a few architectures, and wasn't a good
1496     solution anyway.
1497    
1498     =end original
1499    
1500     undump プログラムは、コンパイル済みの形式でディスクに格納することで
1501     Perlプログラムを高速化するのに古くは使われていました。
1502     これはほんの一部のアーキテクチャーでのみ働くものであって、
1503     最早価値ある選択肢ではなく、かつ、よい解決策ではありません。
1504    
1505     =head2 How can I make my Perl program take less memory?
1506    
1507     (私の Perl プログラムのメモリ消費量を少なくするには?)
1508    
1509     =begin original
1510    
1511     When it comes to time-space tradeoffs, Perl nearly always prefers to
1512     throw memory at a problem. Scalars in Perl use more memory than
1513     strings in C, arrays take more than that, and hashes use even more. While
1514     there's still a lot to be done, recent releases have been addressing
1515     these issues. For example, as of 5.004, duplicate hash keys are
1516     shared amongst all hashes using them, so require no reallocation.
1517    
1518     =end original
1519    
1520     時間と空間とを天秤に掛けたとき、Perl はほとんど常にメモリに関する
1521     問題を放棄します。
1522     Perl におけるスカラーは C の文字列よりもメモリを消費し、
1523     配列も同様です。
1524     ハッシュは更にメモリを使います。
1525     まだ行うことは残ってはいるものの、最近のリリースではこの問題に
1526     対処しています。
1527     たとえば 5.004 にあるように、重複したハッシュキーは全てのハッシュで
1528     共有されます。
1529     このため、(そのハッシュキーの格納のための)再割り付けの必要はありません。
1530    
1531     =begin original
1532    
1533     In some cases, using substr() or vec() to simulate arrays can be
1534     highly beneficial. For example, an array of a thousand booleans will
1535     take at least 20,000 bytes of space, but it can be turned into one
1536     125-byte bit vector--a considerable memory savings. The standard
1537     Tie::SubstrHash module can also help for certain types of data
1538     structure. If you're working with specialist data structures
1539     (matrices, for instance) modules that implement these in C may use
1540     less memory than equivalent Perl modules.
1541    
1542     =end original
1543    
1544     substr() や vec() を使って配列をシミュレートすることで大幅に効率を
1545     上げられることがあるでしょう。
1546     たとえば 1000 個のブール値を持った配列は、
1547     少なくとも 20000 バイトの空間を必要とします。
1548     しかし、これを 125 バイトのビットベクターに置き換えることができます--
1549     これで劇的にメモリを節約できます。
1550     標準の Tie::SubstrHash モジュールもデータ構造の幾つかの型に対する助けを
1551     してくれるでしょう。
1552     あなたがデータ構造のスペシャリスト(例えば行列など)モジュールとともに
1553     仕事をしようとしているのなら、
1554     C で実装されたモジュールは Perl で実装された等価なモジュールよりも
1555     少ないメモリしか使わないでしょう。
1556    
1557     =begin original
1558    
1559     Another thing to try is learning whether your Perl was compiled with
1560     the system malloc or with Perl's builtin malloc. Whichever one it
1561     is, try using the other one and see whether this makes a difference.
1562     Information about malloc is in the F<INSTALL> file in the source
1563     distribution. You can find out whether you are using perl's malloc by
1564     typing C<perl -V:usemymalloc>.
1565    
1566     =end original
1567    
1568     試してみるべきもう一つの事柄は、あなたの使っている Perl がシステムの
1569     malloc を使っているのか Perl 組み込みの malloc を使っているのかを
1570     知ることです。
1571     いずれを使っているにしろ、別のものを使うようにしてみて
1572     それによる差を確かめます。
1573     malloc に関する情報はソース配布にある F<INSTALL> というファイルにあります。
1574     C<perl -V:usemymalloc> とタイプすれば perl が使っている
1575     malloc がどちらであるかを知ることができます。
1576    
1577     =begin original
1578    
1579     Of course, the best way to save memory is to not do anything to waste
1580     it in the first place. Good programming practices can go a long way
1581     toward this:
1582    
1583     =end original
1584    
1585     もちろん、メモリを節約する一番の方法はまず無駄なことをしないことです。
1586     よいプログラミングプラクティスは以下のようなものを通じて得られています。
1587    
1588     =over 4
1589    
1590     =item * Don't slurp!
1591    
1592     (ファイル全体を読み込まない!)
1593    
1594     =begin original
1595    
1596     Don't read an entire file into memory if you can process it line
1597     by line. Or more concretely, use a loop like this:
1598    
1599     =end original
1600    
1601     ファイルを行単位で処理するときにファイル全体をメモリに読み込んでは
1602     いけません。
1603     より具体的には、以下のようなループを使います:
1604    
1605     #
1606     # Good Idea
1607     #
1608     while (<FILE>) {
1609     # ...
1610     }
1611    
1612     =begin original
1613    
1614     instead of this:
1615    
1616     =end original
1617    
1618     以下のような方式はよくないです:
1619    
1620     #
1621     # Bad Idea
1622     #
1623     @data = <FILE>;
1624     foreach (@data) {
1625     # ...
1626     }
1627    
1628     =begin original
1629    
1630     When the files you're processing are small, it doesn't much matter which
1631     way you do it, but it makes a huge difference when they start getting
1632     larger.
1633    
1634     =end original
1635    
1636     処理するファイルサイズが小さいなら、どちらの方法をとっても大きな
1637     違いはありません。
1638     しかし、ファイルが大きくなるにつれてその差は大きいものとなります。
1639    
1640     =item * Use map and grep selectively
1641    
1642     (map と grep をうまく選んで使う)
1643    
1644     =begin original
1645    
1646     Remember that both map and grep expect a LIST argument, so doing this:
1647    
1648     =end original
1649    
1650     map と grep はどちらも LIST 引数を取るので、以下のようにすると:
1651    
1652     @wanted = grep {/pattern/} <FILE>;
1653    
1654     =begin original
1655    
1656     will cause the entire file to be slurped. For large files, it's better
1657     to loop:
1658    
1659     =end original
1660    
1661     ファイル全体を読み込むことになります。
1662     大きなファイルでは以下のようにループしたほうがよいです:
1663    
1664     while (<FILE>) {
1665     push(@wanted, $_) if /pattern/;
1666     }
1667    
1668     =item * Avoid unnecessary quotes and stringification
1669    
1670     (不必要なクォートと文字列化を避ける)
1671    
1672     =begin original
1673    
1674     Don't quote large strings unless absolutely necessary:
1675    
1676     =end original
1677    
1678     本当に必要でないかぎりは大きな文字列をクォートしてはいけません。
1679    
1680     my $copy = "$large_string";
1681    
1682     =begin original
1683    
1684     makes 2 copies of $large_string (one for $copy and another for the
1685     quotes), whereas
1686    
1687     =end original
1688    
1689     このように書くと、$large_string のコピーを二つ($copy とクォートと)
1690     作ります。一方以下のようにすると:
1691    
1692     my $copy = $large_string;
1693    
1694     =begin original
1695    
1696     only makes one copy.
1697    
1698     =end original
1699    
1700     コピーは一つしか作られません。
1701    
1702     =begin original
1703    
1704     Ditto for stringifying large arrays:
1705    
1706     =end original
1707    
1708     大きな配列の文字列化でも同じことが言えます:
1709    
1710     {
1711     local $, = "\n";
1712     print @big_array;
1713     }
1714    
1715     =begin original
1716    
1717     is much more memory-efficient than either
1718    
1719     =end original
1720    
1721     これは以下のようなものよりメモリ効率がよいです:
1722    
1723     print join "\n", @big_array;
1724    
1725     =begin original
1726    
1727     or
1728    
1729     =end original
1730    
1731     または
1732    
1733     {
1734     local $" = "\n";
1735     print "@big_array";
1736     }
1737    
1738     =item * Pass by reference
1739    
1740     (リファレンスで渡す)
1741    
1742     =begin original
1743    
1744     Pass arrays and hashes by reference, not by value. For one thing, it's
1745     the only way to pass multiple lists or hashes (or both) in a single
1746     call/return. It also avoids creating a copy of all the contents. This
1747     requires some judgement, however, because any changes will be propagated
1748     back to the original data. If you really want to mangle (er, modify) a
1749     copy, you'll have to sacrifice the memory needed to make one.
1750    
1751     =end original
1752    
1753     配列とハッシュは値ではなく、リファレンスで渡します。
1754     これは一つの呼び出し/返り値で複数のリストやハッシュ(やその両方)を
1755     渡す唯一の方法です。
1756     また、これにより内容全てのコピーを作成しなくてすみます。
1757     しかし、これにはいくばくかの判断が必要です。なぜならあらゆる変更が
1758     元のデータに伝播するからです。
1759     もし本当にコピーをいじりたい(修正したい)のなら、
1760     コピーを作るためのメモリを犠牲にする必要があります。
1761    
1762     =item * Tie large variables to disk.
1763    
1764     (大きな変数をディスクに tie する)
1765    
1766     =begin original
1767    
1768     For "big" data stores (i.e. ones that exceed available memory) consider
1769     using one of the DB modules to store it on disk instead of in RAM. This
1770     will incur a penalty in access time, but that's probably better than
1771     causing your hard disk to thrash due to massive swapping.
1772    
1773     =end original
1774    
1775     「大きな」データストア(利用可能なメモリ量を超えるようなもの)を
1776     扱う時には RAM の代わりにディスクに保存するために DB モジュールの
1777     どれかを使うことを考えてください。
1778     これはアクセス時間の低下を招きますが、おそらくは大量の
1779     スワッピングによってハードディスクが激しく動くよりましです。
1780    
1781     =back
1782    
1783     =head2 Is it safe to return a reference to local or lexical data?
1784    
1785     (ローカルやレキシカルなデータへのポインターを返すことは安全ですか?)
1786    
1787     =begin original
1788    
1789     Yes. Perl's garbage collection system takes care of this so
1790     everything works out right.
1791    
1792     =end original
1793    
1794     はい。
1795     Perl のガベージコレクションシステムは全てがうまくいくように
1796     考慮されています。
1797    
1798     sub makeone {
1799     my @a = ( 1 .. 10 );
1800     return \@a;
1801     }
1802    
1803     for ( 1 .. 10 ) {
1804     push @many, makeone();
1805     }
1806    
1807     print $many[4][5], "\n";
1808    
1809     print "@many\n";
1810    
1811     =head2 How can I free an array or hash so my program shrinks?
1812    
1813     (配列やハッシュを解放して私のプログラムを小さくするには?)
1814    
1815     =begin original
1816    
1817     (contributed by Michael Carman)
1818    
1819     =end original
1820    
1821     (Michael Carman によって寄贈されました)
1822    
1823     =begin original
1824    
1825     You usually can't. Memory allocated to lexicals (i.e. my() variables)
1826     cannot be reclaimed or reused even if they go out of scope. It is
1827     reserved in case the variables come back into scope. Memory allocated
1828     to global variables can be reused (within your program) by using
1829     undef() and/or delete().
1830    
1831     =end original
1832    
1833     それは通常できません。
1834     レキシカル(例えば my() 変数) に割り当てられたメモリは、たとえスコープから
1835     外れても再請求や再利用されません。
1836     これは変数がスコープ内に戻ってくる場合のために保存されます。
1837     グローバル変数に割り当てられたメモリは undef() や delete() を使うことで
1838     (あなたのプログラム内で)再利用されます。
1839    
1840     =begin original
1841    
1842     On most operating systems, memory allocated to a program can never be
1843     returned to the system. That's why long-running programs sometimes re-
1844     exec themselves. Some operating systems (notably, systems that use
1845     mmap(2) for allocating large chunks of memory) can reclaim memory that
1846     is no longer used, but on such systems, perl must be configured and
1847     compiled to use the OS's malloc, not perl's.
1848    
1849     =end original
1850    
1851     ほとんどのシステムでは、プログラムのために
1852     割り付けたメモリは、決してシステムに返されることはありません。
1853     これは、長期間動作しているプログラムが時々自分自身を
1854     再起動する理由でもあります。
1855     一部のオペレーティングシステム(特に大きなメモリの塊を
1856     割り付けるときに mmap(2) を使うシステム)では、
1857     最早使われていないメモリの塊を回収できますが、
1858     そのようなシステムでは、perl を perl 自身ではなく OS の
1859     malloc を使うように設定し、コンパイルしなければなりません。
1860    
1861     =begin original
1862    
1863     In general, memory allocation and de-allocation isn't something you can
1864     or should be worrying about much in Perl.
1865    
1866     =end original
1867    
1868     一般的に、メモリの確保と解放の問題は Perl においてはあまり気にする必要がある
1869     問題ではありません。
1870    
1871     =begin original
1872    
1873     See also "How can I make my Perl program take less memory?"
1874    
1875     =end original
1876    
1877     "How can I make my Perl program take less memory?" も参照してください。
1878    
1879     =head2 How can I make my CGI script more efficient?
1880    
1881     (私の CGI スクリプトをもっと効率よくするには?)
1882    
1883     =begin original
1884    
1885     Beyond the normal measures described to make general Perl programs
1886     faster or smaller, a CGI program has additional issues. It may be run
1887     several times per second. Given that each time it runs it will need
1888     to be re-compiled and will often allocate a megabyte or more of system
1889     memory, this can be a killer. Compiling into C B<isn't going to help
1890     you> because the process start-up overhead is where the bottleneck is.
1891    
1892     =end original
1893    
1894     普通の Perl プログラムを速くしたり小さくしたりするための基準とは別に、
1895     CGI プログラムには更に別の基準があります。
1896     CGI プログラムは一秒に数回実行される可能性があります。
1897     実行する度毎にスクリプトの再コンパイルとシステムメモリを
1898     一メガバイト以上割りつけることが必要となります。
1899     これは問題点となり得ます。
1900     C へコンパイルすることは B<助けにはなりません>。
1901     なぜなら、プロセスのスタートアップ時のオーバーヘッドが
1902     ボトルネックだからです。
1903    
1904     =begin original
1905    
1906     There are two popular ways to avoid this overhead. One solution
1907     involves running the Apache HTTP server (available from
1908     http://www.apache.org/ ) with either of the mod_perl or mod_fastcgi
1909     plugin modules.
1910    
1911     =end original
1912    
1913     このオーバーヘッドを避けるためのポピュラーな手段が二つあります。
1914     解決策の一つは Apache HTTP サーバー(http://www.apache.org/ から入手可能)に
1915     mod_perl か mod_fastcgi のいずれかのプラグインモジュールを
1916     取り込ませて実行させるというものです。
1917    
1918     =begin original
1919    
1920     With mod_perl and the Apache::Registry module (distributed with
1921     mod_perl), httpd will run with an embedded Perl interpreter which
1922     pre-compiles your script and then executes it within the same address
1923     space without forking. The Apache extension also gives Perl access to
1924     the internal server API, so modules written in Perl can do just about
1925     anything a module written in C can. For more on mod_perl, see
1926     http://perl.apache.org/
1927    
1928     =end original
1929    
1930     mod_perl と Apache::Registry モジュール(mod_perl と一緒に配布されて
1931     います)と組み合わせることで、httpd は組み込みの Perl インタプリタと
1932     共に実行させるようになります。
1933     これで、あなたのスクリプトは事前にコンパイルされ、
1934     それを fork 抜きで同じアドレス空間で実行されるようになります。
1935     Apatche エクステンションはまた、
1936     Perl に内部サーバー API をアクセスすることを許可するので、
1937     Perl で記述されたモジュールは C で書かれたモジュールができることはなんでも
1938     できるようになります。
1939     mod_perl に関する詳細は http://perl.apache.org/ を参照してください。
1940    
1941     =begin original
1942    
1943     With the FCGI module (from CPAN) and the mod_fastcgi
1944     module (available from http://www.fastcgi.com/ ) each of your Perl
1945     programs becomes a permanent CGI daemon process.
1946    
1947     =end original
1948    
1949     FCGI モジュール(CPAN にあります)と
1950     mod_fastcgi モジュール(http://www.fastcgi.com で入手できます)は
1951     あなたの Perl プログラムのそれぞれを永続的 CGI デーモンプロセスにします。
1952    
1953     =begin original
1954    
1955     Both of these solutions can have far-reaching effects on your system
1956     and on the way you write your CGI programs, so investigate them with
1957     care.
1958    
1959     =end original
1960    
1961     これらの解決策は両方ともあなたの使うシステムで効果がない可能性があり、
1962     また、あなたが書いた CGI プログラムに依存する方法なので、
1963     注意して検査してください。
1964    
1965     =begin original
1966    
1967     See http://www.cpan.org/modules/by-category/15_World_Wide_Web_HTML_HTTP_CGI/ .
1968    
1969     =end original
1970    
1971     http://www.cpan.org/modules/by-category/15_World_Wide_Web_HTML_HTTP_CGI/
1972     参照してください。
1973    
1974     =head2 How can I hide the source for my Perl program?
1975    
1976     (私の Perl プログラムのソースを隠すには?)
1977    
1978     =begin original
1979    
1980     Delete it. :-) Seriously, there are a number of (mostly
1981     unsatisfactory) solutions with varying levels of "security".
1982    
1983     =end original
1984    
1985     削除しましょう :-) まじめな話、様々な「セキュリティ」レベルを持った
1986     幾つかの解決策があります(ほとんどは満足行くものではないでしょう)。
1987    
1988     =begin original
1989    
1990     First of all, however, you I<can't> take away read permission, because
1991     the source code has to be readable in order to be compiled and
1992     interpreted. (That doesn't mean that a CGI script's source is
1993     readable by people on the web, though--only by people with access to
1994     the filesystem.) So you have to leave the permissions at the socially
1995     friendly 0755 level.
1996    
1997     =end original
1998    
1999     しかしながら、まず最初に、あなたは読み取り権限(read permission)を
2000     落とすことはできません。
2001     なぜなら、スクリプトのソースコードはコンパイルと解釈のために
2002     読み取り可能でなければならない
2003     からです(これは CGI スクリプトのソースコードが web 上で、
2004     読み取り可能であることとは違います--
2005     ファイルシステムに対してアクセスできる人だけが読み取り可能です)。
2006     ですから、権限の設定を少なくとも socially friendly な 0755 の
2007     レベルにしておく必要があります。
2008    
2009     =begin original
2010    
2011     Some people regard this as a security problem. If your program does
2012     insecure things and relies on people not knowing how to exploit those
2013     insecurities, it is not secure. It is often possible for someone to
2014     determine the insecure things and exploit them without viewing the
2015     source. Security through obscurity, the name for hiding your bugs
2016     instead of fixing them, is little security indeed.
2017    
2018     =end original
2019    
2020     中にはこれをセキュリティ上の問題であると考えている人もいます。
2021     あなたのプログラムが安全でないことを行った場合、
2022     そして、人々がそのような安全でないことを暴露する方法を知らないことに
2023     頼っているのなら、安全ではないのです。
2024     誰かが、安全でないことを見つけだすこととソースを見ることなしにそれを
2025     暴露することはしばしば可能となるのです。
2026     セキュリティバグを直すのではなくてそのバグを隠すといった、
2027     知られていないことに頼るセキュリティ(security through obscurity)は
2028     小さなセキュリティの傷です。
2029    
2030     =begin original
2031    
2032     You can try using encryption via source filters (Starting from Perl
2033     5.8 the Filter::Simple and Filter::Util::Call modules are included in
2034     the standard distribution), but any decent programmer will be able to
2035     decrypt it. You can try using the byte code compiler and interpreter
2036     described later in L<perlfaq3>, but the curious might still be able to
2037     de-compile it. You can try using the native-code compiler described
2038     later, but crackers might be able to disassemble it. These pose
2039     varying degrees of difficulty to people wanting to get at your code,
2040     but none can definitively conceal it (true of every language, not just
2041     Perl).
2042    
2043     =end original
2044    
2045     ソースフィルタ(Perl 5.8 からは Filter::Simple と Filter::Util::Call は
2046     標準配布物に含まれています)を使った暗号化を試すこともできます。
2047     しかし、悪意在るプログラマーはそれを復号化できるかもしれません。
2048     あなたは L<perlfaq3> で後述するバイトコードコンパイラとインタプリタを
2049     使うことを試せるかもしれませんが、
2050     探りたがりの人はそれを逆コンパイルできるかもしれません。
2051     後述するネイティブコードコンパイラを試すこともできますが、
2052     クラッカーはそれを逆アセンブルできるかもしれません。
2053     これらの手段は、あなたのプログラムを手に入れようとする人達に様々な困難を
2054     もたらしますが、誰もそれを決定的に防ぐ障壁にすることはできないのです
2055     (Perl のみに限らず、あらゆる言語で真となります)。
2056    
2057     =begin original
2058    
2059     It is very easy to recover the source of Perl programs. You simply
2060     feed the program to the perl interpreter and use the modules in
2061     the B:: hierarchy. The B::Deparse module should be able to
2062     defeat most attempts to hide source. Again, this is not
2063     unique to Perl.
2064    
2065     =end original
2066    
2067     Perl プログラムのソースを取り出すのはとても簡単です。
2068     プログラムを perl インタプリタに渡して B:: 階層のモジュールを
2069     使うだけです。
2070     B::Deparse モジュールはソースを隠そうとするほとんどの試みを
2071     打ち破るはずです。
2072     繰り返しますが、これは Perl に限ったことではありません。
2073    
2074     =begin original
2075    
2076     If you're concerned about people profiting from your code, then the
2077     bottom line is that nothing but a restrictive license will give you
2078     legal security. License your software and pepper it with threatening
2079     statements like "This is unpublished proprietary software of XYZ Corp.
2080     Your access to it does not give you permission to use it blah blah
2081     blah." We are not lawyers, of course, so you should see a lawyer if
2082     you want to be sure your license's wording will stand up in court.
2083    
2084     =end original
2085    
2086     あなたが、誰かがあなたのプログラムを元になにか利益を
2087     得るのではないかということを考えているのなら、
2088     プログラムの最後の行を制限付きライセンスとすれば、
2089     あなたに法的な安全性 (legal security)をもたらすでしょう。
2090     あなたのソフトウェアをライセンスし、
2091     “This is unpublished proprietary software of XYZ Corp.
2092     Your access to it does not give you permission to use it blah blah
2093     blah.”
2094     (本ソフトウェアは、XYZ コーポレイションにより作成された非公開の
2095     独占的ソフトウェアです。
2096     あなたがこれにアクセスすることは許されていません、云々)
2097     のような文章で味付けします。
2098     もちろん私たちは弁護士ではありませんから、
2099     あなたが確実に自分のライセンスが有効なものになるようにしたいのなら、
2100     弁護士に会っておくべきでしょう。
2101    
2102     =head2 How can I compile my Perl program into byte code or C?
2103    
2104     (私の Perl プログラムをバイトコードや C へコンパイルするには?)
2105    
2106     =begin original
2107    
2108     (contributed by brian d foy)
2109    
2110     =end original
2111    
2112     (brian d foy によって寄贈されました)
2113    
2114     =begin original
2115    
2116     In general, you can't do this. There are some things that may work
2117     for your situation though. People usually ask this question
2118     because they want to distribute their works without giving away
2119     the source code, and most solutions trade disk space for convenience.
2120     You probably won't see much of a speed increase either, since most
2121     solutions simply bundle a Perl interpreter in the final product
2122     (but see L<How can I make my Perl program run faster?>).
2123    
2124     =end original
2125    
2126     一般的には、それはできません。
2127     しかし、状況によっては可能な場合もあります。
2128     人々は普通、ソースを提供することなく成果を配布したいためにこの質問をします;
2129     そしてほとんどの解決法は便利さのためにディスクスペースを犠牲にします。
2130     ほとんどの解決法は単に最終製品に Perl インタプリタを同梱しているので、
2131     どれを使ってもおそらく大して速度は向上しないでしょう
2132     (しかし L<How can I make my Perl program run faster?> を参照してください)。
2133    
2134     =begin original
2135    
2136     The Perl Archive Toolkit ( http://par.perl.org/ ) is Perl's
2137     analog to Java's JAR. It's freely available and on CPAN (
2138     http://search.cpan.org/dist/PAR/ ).
2139    
2140     =end original
2141    
2142     The Perl Archive Toolkit ( http://par.perl.org/ ) は Java における
2143     JAR のような Perl 版の類似物です。
2144     自由に利用可能で、CPAN にあります ( http://search.cpan.org/dist/PAR/ )。
2145    
2146     =begin original
2147    
2148     There are also some commercial products that may work for you, although
2149     you have to buy a license for them.
2150    
2151     =end original
2152    
2153     役に立つかもしれないいくつかの商用製品もありますが、それらのライセンスを
2154     購入する必要があります。
2155    
2156     =begin original
2157    
2158     The Perl Dev Kit ( http://www.activestate.com/Products/Perl_Dev_Kit/ )
2159     from ActiveState can "Turn your Perl programs into ready-to-run
2160     executables for HP-UX, Linux, Solaris and Windows."
2161    
2162     =end original
2163    
2164     ActiveState の The Perl Dev Kit
2165     ( http://www.activestate.com/Products/Perl_Dev_Kit/ ) は
2166     「あなたの Perl プログラムを HP-UX, Linux, Solaris, Windows 用の実行
2167     ファイルに変換します。」
2168    
2169     =begin original
2170    
2171     Perl2Exe ( http://www.indigostar.com/perl2exe.htm ) is a command line
2172     program for converting perl scripts to executable files. It targets both
2173     Windows and Unix platforms.
2174    
2175     =end original
2176    
2177     Perl2Exe ( http://www.indigostar.com/perl2exe.htm ) は perl スクリプトを
2178     実行可能ファイルに変換するコマンドラインプログラムです。
2179     これは Windows と Unix プラットフォームの両方を対象としています。
2180    
2181     =head2 How can I get C<#!perl> to work on [MS-DOS,NT,...]?
2182    
2183     (MS-DOS, NT, etc で '#!perl' が動作するようにするには?)
2184    
2185     =begin original
2186    
2187     For OS/2 just use
2188    
2189     =end original
2190    
2191     OS/2 では単に:
2192    
2193     extproc perl -S -your_switches
2194    
2195     =begin original
2196    
2197     as the first line in C<*.cmd> file (C<-S> due to a bug in cmd.exe's
2198     "extproc" handling). For DOS one should first invent a corresponding
2199     batch file and codify it in C<ALTERNATE_SHEBANG> (see the
2200     F<dosish.h> file in the source distribution for more information).
2201    
2202     =end original
2203    
2204     C<*.cmd> ファイルの先頭をこのようにするだけです(C<-S> は、
2205     cmd.exe の "extproc" に関するバグのためです)。
2206     DOS の場合は、適切なバッチファイルを作って C<ALTERNATE_SHEBANG> を
2207     行うべきでしょう(詳細は、ソース配布キットにある F<dosish.h> という
2208     ファイルを参照してください)。
2209    
2210     =begin original
2211    
2212     The Win95/NT installation, when using the ActiveState port of Perl,
2213     will modify the Registry to associate the C<.pl> extension with the
2214     perl interpreter. If you install another port, perhaps even building
2215     your own Win95/NT Perl from the standard sources by using a Windows port
2216     of gcc (e.g., with cygwin or mingw32), then you'll have to modify
2217     the Registry yourself. In addition to associating C<.pl> with the
2218     interpreter, NT people can use: C<SET PATHEXT=%PATHEXT%;.PL> to let them
2219     run the program C<install-linux.pl> merely by typing C<install-linux>.
2220    
2221     =end original
2222    
2223     Windows 95 や Windows NT で ActiveState の移植した Perl を使うのなら、
2224     これは C<.pl> という拡張子を perl インタプリタに関連づけるように
2225     レジストリを変更します。
2226     その他の移植になる perl を使うか、あるいはあなた自身が Windows に
2227     移植された gcc(cygwin や mingw)を使って標準ソースから Perl を
2228     ビルドするというのであれば自分自身でレジストリを変更する必要があるでしょう。
2229     C<.pl> とインタプリタを関連づけることによって、NT を使っている
2230     人は C<install-linux.pl> を C<install-linux> のように起動することが
2231     可能です。
2232     NT では C<SET PATHEXT=%PATHEXT%;.PL> のようにします。
2233    
2234     =begin original
2235    
2236     Under "Classic" MacOS, a perl program will have the appropriate Creator and
2237     Type, so that double-clicking them will invoke the MacPerl application.
2238     Under Mac OS X, clickable apps can be made from any C<#!> script using Wil
2239     Sanchez' DropScript utility: http://www.wsanchez.net/software/ .
2240    
2241     =end original
2242    
2243     "Classic" MacOS では、perl のプログラムは適切な Creator と Type とを
2244     持っているでしょうから、ダブルクリックするだけで
2245     MacPerl アプリケーションが起動するでしょう。
2246     Mac OS X では、クリックできるアプリケーションは Wil Sanchez の DropScript
2247     utility: http://www.wsanchez.net/software/ を使って任意の C<#!>
2248     スクリプトから作成できます。
2249    
2250     =begin original
2251    
2252     I<IMPORTANT!>: Whatever you do, PLEASE don't get frustrated, and just
2253     throw the perl interpreter into your cgi-bin directory, in order to
2254     get your programs working for a web server. This is an EXTREMELY big
2255     security risk. Take the time to figure out how to do it correctly.
2256    
2257     =end original
2258    
2259     B<重要!>: あなたが何をするにしても、どうか不満を感じないでください。
2260     そして、あなたのプログラムが web サーバのために動作するようにさせるために
2261     perl インタプリタを cgi-bin ディレクトリに放り込むようなことは
2262     しないでください。
2263     これは B<非常に> 大きなセキュリティ上のリスクとなります。
2264     正しく動作させるための方法を考えるための時間を取ってください。
2265    
2266     =head2 Can I write useful Perl programs on the command line?
2267    
2268     (コマンドライン上で便利な Perl プログラムを書けますか?)
2269    
2270     =begin original
2271    
2272     Yes. Read L<perlrun> for more information. Some examples follow.
2273     (These assume standard Unix shell quoting rules.)
2274    
2275     =end original
2276    
2277     はい。
2278     詳しくはL<perlrun>を読んでください。
2279     幾つかのサンプルを以下に挙げておきます(ここでは標準のUNIX シェル引用規則に
2280     従っていると仮定します)。
2281    
2282     # sum first and last fields
2283     perl -lane 'print $F[0] + $F[-1]' *
2284    
2285     # identify text files
2286     perl -le 'for(@ARGV) {print if -f && -T _}' *
2287    
2288     # remove (most) comments from C program
2289     perl -0777 -pe 's{/\*.*?\*/}{}gs' foo.c
2290    
2291     # make file a month younger than today, defeating reaper daemons
2292     perl -e '$X=24*60*60; utime(time(),time() + 30 * $X,@ARGV)' *
2293    
2294     # find first unused uid
2295     perl -le '$i++ while getpwuid($i); print $i'
2296    
2297     # display reasonable manpath
2298     echo $PATH | perl -nl -072 -e '
2299     s![^/+]*$!man!&&-d&&!$s{$_}++&&push@m,$_;END{print"@m"}'
2300    
2301     =begin original
2302    
2303     OK, the last one was actually an Obfuscated Perl Contest entry. :-)
2304    
2305     =end original
2306    
2307     そう、最後のは Obfuscated Perl コンテストにエントリーされてましたね :-)
2308    
2309     =head2 Why don't Perl one-liners work on my DOS/Mac/VMS system?
2310    
2311     (なぜ私の DOS/Mac/VMS システムでは一行野郎は動かないのでしょうか?)
2312    
2313     =begin original
2314    
2315     The problem is usually that the command interpreters on those systems
2316     have rather different ideas about quoting than the Unix shells under
2317     which the one-liners were created. On some systems, you may have to
2318     change single-quotes to double ones, which you must I<NOT> do on Unix
2319     or Plan9 systems. You might also have to change a single % to a %%.
2320    
2321     =end original
2322    
2323     この問題は、そういったシステムのコマンドインタプリタが、
2324     一行野郎が作られた環境であるUNIXのシェルの引用規則とは異なるこということです。
2325     一部のシステムでは、シングルクォートをダブルクォートに変更する必要が
2326     あるかもしれません(これは UNIX や Plan9 といったシステムでは
2327     B<してはいけません>)。
2328     同様に、%を%%に変更する必要もあるかもしれません。
2329    
2330     =begin original
2331    
2332     For example:
2333    
2334     =end original
2335    
2336     例を挙げましょう:
2337    
2338     # Unix (including Mac OS X)
2339     perl -e 'print "Hello world\n"'
2340    
2341     # DOS, etc.
2342     perl -e "print \"Hello world\n\""
2343    
2344     # Mac Classic
2345     print "Hello world\n"
2346     (then Run "Myscript" or Shift-Command-R)
2347    
2348     # MPW
2349     perl -e 'print "Hello world\n"'
2350    
2351     # VMS
2352     perl -e "print ""Hello world\n"""
2353    
2354     =begin original
2355    
2356     The problem is that none of these examples are reliable: they depend on the
2357     command interpreter. Under Unix, the first two often work. Under DOS,
2358     it's entirely possible that neither works. If 4DOS was the command shell,
2359     you'd probably have better luck like this:
2360    
2361     =end original
2362    
2363     問題は、これらの例の中に信頼できるものがないということです:
2364     コマンドインタープリタに依存します。
2365     UNIX では、最初の二つはほとんどの場合動作するでしょう。
2366     DOS では、どれも働かないかもしれません。
2367     4DOS をコマンドシェルとしているのなら、以下のようにするのがよいと思います:
2368    
2369     perl -e "print <Ctrl-x>"Hello world\n<Ctrl-x>""
2370    
2371     =begin original
2372    
2373     Under the Mac, it depends which environment you are using. The MacPerl
2374     shell, or MPW, is much like Unix shells in its support for several
2375     quoting variants, except that it makes free use of the Mac's non-ASCII
2376     characters as control characters.
2377    
2378     =end original
2379    
2380     Mac では、あなたが使っている環境に依存します。
2381     MacPerl シェルや MPW は、制御キャラクターのような Mac の
2382     非 ASCII キャラクターが自由に使えるという点を除いて、
2383     UNIX シェルのように数種類の引用規則をサポートします。
2384    
2385     =begin original
2386    
2387     Using qq(), q(), and qx(), instead of "double quotes", 'single
2388     quotes', and `backticks`, may make one-liners easier to write.
2389    
2390     =end original
2391    
2392     ダブルクォート(")、シングルクォート(')、バッククォート(`)の
2393     代わりに qq(), q(), qx() をそれぞれ使います。
2394     これによって一行野郎を書くことが簡単になるかもしれません。
2395    
2396     =begin original
2397    
2398     There is no general solution to all of this. It is a mess.
2399    
2400     =end original
2401    
2402     この件全てに関する一般的な解決策はありません。
2403     ごちゃごちゃです。
2404    
2405     =begin original
2406    
2407     [Some of this answer was contributed by Kenneth Albanowski.]
2408    
2409     =end original
2410    
2411     [この回答の一部はKenneth Albanowskiから寄せられました]
2412    
2413     =head2 Where can I learn about CGI or Web programming in Perl?
2414    
2415     (Perl による CGI や Web プログラミングについてどこで学べますか?)
2416    
2417     =begin original
2418    
2419     For modules, get the CGI or LWP modules from CPAN. For textbooks,
2420     see the two especially dedicated to web stuff in the question on
2421     books. For problems and questions related to the web, like "Why
2422     do I get 500 Errors" or "Why doesn't it run from the browser right
2423     when it runs fine on the command line", see the troubleshooting
2424     guides and references in L<perlfaq9> or in the CGI MetaFAQ:
2425    
2426     =end original
2427    
2428     モジュールなら、CPAN から CGI モジュールや LWP モジュールを入手しましょう。
2429     教科書なら、本にある web stuff の特に決定的な二つを参照しましょう。
2430     “Why do I get 500 Errors” (なんで 500 Errors になるの)
2431     “Why doesn't it run from the browser right when it runs fine on the command line”
2432     (なぜコマンドラインからだとちゃんと動くのに、ブラウザーからだと
2433     だめなんでしょうか)のように web に関連する問題や疑問は
2434     L<perlfaq9> か CGI MetaFAQ を参照してください:
2435    
2436     http://www.perl.org/CGI_MetaFAQ.html
2437    
2438     =head2 Where can I learn about object-oriented Perl programming?
2439    
2440     (オブジェクト指向の Perl プログラミングはどこで学べますか?)
2441    
2442     =begin original
2443    
2444     A good place to start is L<perltoot>, and you can use L<perlobj>,
2445     L<perlboot>, L<perltoot>, L<perltooc>, and L<perlbot> for reference.
2446    
2447     =end original
2448    
2449     始めるにはよい場所は L<perltoot>です。
2450     リファレンスとしてL<perlobj>, L<perlboot>, <perltooc>,
2451     <perlbot> が使えます。
2452    
2453     =begin original
2454    
2455     A good book on OO on Perl is the "Object-Oriented Perl"
2456     by Damian Conway from Manning Publications, or "Intermediate Perl"
2457     by Randal Schwartz, brian d foy, and Tom Phoenix from O'Reilly Media.
2458    
2459     =end original
2460    
2461     Perl でのオブジェクト指向に関するよい本は Manning Publications が
2462     出版する Damian Conway による "Object-Oriented Perl" か、
2463     O'Reilly Media が出版する Randal Schwartz, brian d foy,
2464     Tom Phoenix による "Intermediate Perl" です。
2465    
2466     =head2 Where can I learn about linking C with Perl?
2467    
2468     (C と Perl のリンクについてはどこで学べますか?)
2469    
2470     =begin original
2471    
2472     If you want to call C from Perl, start with L<perlxstut>,
2473     moving on to L<perlxs>, L<xsubpp>, and L<perlguts>. If you want to
2474     call Perl from C, then read L<perlembed>, L<perlcall>, and
2475     L<perlguts>. Don't forget that you can learn a lot from looking at
2476     how the authors of existing extension modules wrote their code and
2477     solved their problems.
2478    
2479     =end original
2480    
2481     もし Perl から C を呼び出したいのなら、L<perlxstut> から始めて L<perlxs>,
2482     L<xsubpp>, L<perlguts> へと進みます。
2483     C から Perl を呼び出したいのなら、L<perlembed>, L<perlcall>, L<perlguts> を
2484     読みましょう。
2485     すでにあるエクステンションの作者がどのようにそれを記述し、
2486     どのように彼らの問題を解決したのかを見ることで多くのことが
2487     学べるのだということを忘れないでください。
2488    
2489     =begin original
2490    
2491     You might not need all the power of XS. The Inline::C module lets
2492     you put C code directly in your Perl source. It handles all the
2493     magic to make it work. You still have to learn at least some of
2494     the perl API but you won't have to deal with the complexity of the
2495     XS support files.
2496    
2497     =end original
2498    
2499     XS の力の全てが必要なわけではないかもしれません。
2500     The Inline::C モジュールは Perl のソースの中に C のコードを直接書くことが
2501     できます。
2502     これはこれが動作するための全ての魔法を扱います。
2503     それでも少なくとも perl API の一部は学習する必要がありますが、XS サポート
2504     ファイルの複雑を扱う必要はありません。
2505    
2506     =head2 I've read perlembed, perlguts, etc., but I can't embed perl in my C program; what am I doing wrong?
2507    
2508     (perlembed や perlguts なんかを読んだのだけど、私の C プログラムに perl を組み込めません。何が悪いのでしょうか?)
2509    
2510     =begin original
2511    
2512     Download the ExtUtils::Embed kit from CPAN and run `make test'. If
2513     the tests pass, read the pods again and again and again. If they
2514     fail, see L<perlbug> and send a bug report with the output of
2515     C<make test TEST_VERBOSE=1> along with C<perl -V>.
2516    
2517     =end original
2518    
2519     CPAN から ExtUtils::Embed キットをダウンロードして、`make test'を
2520     実行してください。
2521     もしこのテストに合格したのなら、pod を何度も何度もくり返しくり返し
2522     読んでください。
2523     テストに失敗したなら、L<perlbug> を読んで、C<perl -V> の出力と
2524     C<make test TEST_VERBOSE=1> の出力を添付してバグレポートを送ってください。
2525    
2526     =head2 When I tried to run my script, I got this message. What does it mean?
2527    
2528     (私のスクリプトを実行したとき、こんなメッセージを受け取りました。これって何を意味しているのでしょうか?)
2529    
2530     =begin original
2531    
2532     A complete list of Perl's error messages and warnings with explanatory
2533     text can be found in L<perldiag>. You can also use the splain program
2534     (distributed with Perl) to explain the error messages:
2535    
2536     =end original
2537    
2538     perl のすべてのエラーメッセージ、警告メッセージの説明テキスト付きのリストが
2539     L<perldiag> にあります。
2540     エラーメッセージを説明するために、splain プログラムを
2541     使うこともできます(これは Perl と一緒に配布されています)。
2542    
2543     perl program 2>diag.out
2544     splain [-v] [-p] diag.out
2545    
2546     =begin original
2547    
2548     or change your program to explain the messages for you:
2549    
2550     =end original
2551    
2552     あるいは、以下のようにしてメッセージを説明的にするようにプログラムを
2553     変更します:
2554    
2555     use diagnostics;
2556    
2557     =begin original
2558    
2559     or
2560    
2561     =end original
2562    
2563     または
2564    
2565     use diagnostics -verbose;
2566    
2567     =head2 What's MakeMaker?
2568    
2569     (MakeMaker ってなんですか?)
2570    
2571     =begin original
2572    
2573     (contributed by brian d foy)
2574    
2575     =end original
2576    
2577     (brian d foy によって寄贈されました)
2578    
2579     =begin original
2580    
2581     The C<ExtUtils::MakeMaker> module, better known simply as "MakeMaker",
2582     turns a Perl script, typically called C<Makefile.PL>, into a Makefile.
2583     The Unix tool C<make> uses this file to manage dependencies and actions
2584     to process and install a Perl distribution.
2585    
2586     =end original
2587    
2588     単に "MakeMaker" としてよく知られている C<ExtUtils::MakeMaker> モジュールは、
2589     (典型的には C<Makefile.PL> という名前の) Perl スクリプトを Makefile に
2590     変換します。
2591     Unix ツール C<make> は Perl 配布を処理してインストールするための依存と
2592     作業を管理します。
2593    
2594     =head1 AUTHOR AND COPYRIGHT
2595    
2596     Copyright (c) 1997-2010 Tom Christiansen, Nathan Torkington, and
2597     other authors as noted. All rights reserved.
2598    
2599     This documentation is free; you can redistribute it and/or modify it
2600     under the same terms as Perl itself.
2601    
2602     Irrespective of its distribution, all code examples here are in the public
2603     domain. You are permitted and encouraged to use this code and any
2604     derivatives thereof in your own programs for fun or for profit as you
2605     see fit. A simple comment in the code giving credit to the FAQ would
2606     be courteous but is not required.
2607    
2608     =begin meta
2609    
2610     Translate: 吉村 寿人 <JAE00534@niftyserve.or.jp>
2611     Update: SHIRAKATA Kentaro <argrath@ub32.org> (5.6.1-)
2612     Status: completed
2613    
2614     =end meta
2615    

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26