Kentaro Shirakata
argra****@users*****
2005年 6月 15日 (水) 08:36:21 JST
Index: docs/perl/5.6.1/perlfaq3.pod diff -u docs/perl/5.6.1/perlfaq3.pod:1.3 docs/perl/5.6.1/perlfaq3.pod:1.4 --- docs/perl/5.6.1/perlfaq3.pod:1.3 Tue Jun 14 05:48:35 2005 +++ docs/perl/5.6.1/perlfaq3.pod Wed Jun 15 08:36:21 2005 @@ -444,7 +444,14 @@ =end original -*TBT* +nvi (http://www.bostic.com/vi/, CPAN の src/misc/ にもあります)は +vi クローンの一つで、残念ながら Windows では動作しませんが、 +UNIX プラットフォームを使っているなら試してみるべきです。 +第一の理由としては、厳密には vi クローンではないものの、 +実際は vi、あるいは vi の子孫であるからです。 +第二の理由としては、Perl を内蔵していて、Perl をスクリプト言語として +使えるからです。しかし、nvi はこれらの機能をもつ唯一のものではありません。 +少なくとも vim と vile も内蔵 Perl を提供しています。 =begin original @@ -481,7 +488,12 @@ =end original -*TBT* +CPAN で Tk モジュールと共に配布されている、Perl で書かれた +toyedit Textウィジェットベースのエディタがあります。 +ptkdb(http://world.std.com/~aep/ptkdb/) は 開発環境として振舞う +Perl/tk ベースのデバッガです。 +Perl Composer(http://perlcomposer.sourceforge.net/vperl.html)は +Perl/Tk GUI を使った IDE です。 =begin original @@ -1020,7 +1032,8 @@ =end original -*TBT* +オライリーの Perl リソースキットを使って Java と Perl を統合することも出来ます。 +http://www.oreilly.com/catalog/prkunix/ を参照してください。 =begin original @@ -1030,7 +1043,9 @@ =end original -*TBT* +Perl 5.6 は Java Perl Lingo(JPL) と強調できます。 +JPL はまだ開発中ですが、Perl コードを Java から呼び出せます。 +Perl ソースツリーの jpl/README を参照してください。 =head2 How can I get '#!perl' to work on [MS-DOS,NT,...]? Index: docs/perl/5.6.1/perlfaq4.pod diff -u docs/perl/5.6.1/perlfaq4.pod:1.4 docs/perl/5.6.1/perlfaq4.pod:1.5 --- docs/perl/5.6.1/perlfaq4.pod:1.4 Tue Jun 14 05:48:35 2005 +++ docs/perl/5.6.1/perlfaq4.pod Wed Jun 15 08:36:21 2005 @@ -474,7 +474,15 @@ =end original -*TBT* +この話題をこの FAQ で扱うには混乱が大きすぎますが、 +この用語を(正確に)現在ではグレゴリオ暦に取って代わられている、 +あまり使われていないユリウス暦を、うるう年(あるいはその他の面倒事)を避ける +ために使われることもあります。また、 +この用語は(不正確ですが)以下の意味にも用いられます: [1] グレゴリオ暦での日数; +[2] 特定の時点から、あるいは「起源」(Unix では 1970 年、MSDOS/Windows の世界では +1980 年)からの日数。本当に欲しいのが最初の意味でないのなら、 +Date::Manip と Date::Calc のモジュールを調べてみてください。 +(この文章のほとんどに対して David Cassell に感謝します。) =head2 How do I find yesterday's date? @@ -2118,7 +2126,9 @@ =end original -*TBT* +keys() 関数も反復動作を初期化します。 +無効コンテキストは結び付けられたハッシュに対して、ハッシュ全体を +キー-値の組を一つずつ反復動作をするより高速です。 =head2 How do I sort a hash (optionally by value instead of key)? Index: docs/perl/5.6.1/perlfaq7.pod diff -u docs/perl/5.6.1/perlfaq7.pod:1.3 docs/perl/5.6.1/perlfaq7.pod:1.4 --- docs/perl/5.6.1/perlfaq7.pod:1.3 Tue Jun 14 05:48:35 2005 +++ docs/perl/5.6.1/perlfaq7.pod Wed Jun 15 08:36:21 2005 @@ -1237,7 +1237,13 @@ =end original -*TBT* +変数に他の変数の名前を記録するというのがよくない考えであるという +別の理由としては、このような疑問はしばしば Perl のデータ構造、 +特にハッシュに関する理解の不足から発生するからです。 +シンボリックリファレンスを使うことによって、 +ユーザー定義のハッシュの代わりにパッケージのシンボルテーブルハッシュ +(C<%main::> など)を使うことができます。 +解決法は、代わりに自分自身のハッシュや真のリファレンスを使うことです。 $fred = 23; $varname = "fred"; @@ -1256,10 +1262,12 @@ =end original ここではシンボリックリファレンスの代わりに %USER_VARS ハッシュを使っています。 -*TBT* +時々これはユーザーから文字列を変数へのリファレンスとして読み込んで、 +それを perl プログラムの変数の値として拡張することがあります。 これもよくない考えです。なぜなら、プログラムが指定する名前空間と ユーザーが指定する名前空間を融合させることになるからです。 -*TBT* +以下のように文字列を読み込んであなたのプログラムの変数の実際の内容の +ために拡張するのではなく: $str = 'this has a $fred and $barney in it'; @@ -1272,7 +1280,8 @@ =end original -*TBT* +%USER_VARS のようなハッシュを保存し、このハッシュの +エントリを参照する変数リファレンスを持つよりよい方法です: $str =~ s/\$(\w+)/$USER_VARS{$1}/g; # no /e here at all @@ -1343,9 +1352,12 @@ =end original -唯一あなたが完全にシンボリックを I<使わなければならない> 場合は、 - -*TBT* +唯一あなたが完全にシンボリックリファレンスを I<使わなければならない> 場合は、 +シンボルテーブルに対するリファレンスが必要なときだけです。 +これは、フォーマット名といったものに対する真のリファレンスを得ることが +できないからです。 +そうすることはメソッド呼び出しのためにも重要です。 +なぜなら名前解決のためにシンボルテーブルを使うからです。 =begin original