warning: Creating default object from empty value in /var/www/drupal-5.23/modules/taxonomy/taxonomy.module on line 1418.

Ubuntu の Apache で、Perl/CGI を有効にする方法

Ubuntu の Apache の設定ファイルの場所は /etc/apache2/site-available/default である。従って、 Perl をデフォルトのディレクトリ /var/www で動かすには、Perl と Apache の関連モジュールを apt-get でインストールした後、次のようにする。 # vi /etc/apache2/site-available/default
<Directory /var/www/>
  Options Indexes FollowSymLinks MultiViews +ExecCGI # ここと
  DirectoryIndex index.cgi # ここを追加。index.cgi はおまけ。
  AddHandler cgi-script .cgi .pl # もし Perl (拡張子は .cgi か .pl)を有効にしたい場合はこの行を追加
  AllowOverride None
  Order allow,deny
  allow from all
</Directory>
Ubuntu の Apache の設定ファイルの場所は /etc/apache2/site-available/default である。従って、 Perl をデフォルトのディレクトリ /var/www で動かすには、Perl と Apache の関連モジュールを apt-get でインストールした後、次のようにする。 # vi /etc/apache2/site-available/default
<Directory /var/www/>
  Options Indexes FollowSymLinks MultiViews +ExecCGI # ここと
  DirectoryIndex index.cgi # ここを追加。index.cgi はおまけ。
  AddHandler cgi-script .cgi .pl # もし Perl (拡張子は .cgi か .pl)を有効にしたい場合はこの行を追加
  AllowOverride None
  Order allow,deny
  allow from all
</Directory>

Perl で、1GB のデータ(テキストファイル)を作成する方法

次のコードを makefile.pl などというファイル名で保存して、chmod +x ./makefile.pl し、そして ./makefile.pl を実行すれば makefile.pl と同じディレクトリ上に sample.txt に1GiB (ギビバイト=2^30)ぴったりのデータ(「a」の文字で埋め尽くされた テキストファイル)が作成されていると思う。プログラム的には、例えば 1KiB のダミーデータを変数($data)に入れてそれを 1024 x 1024 回書き込んだ方が 1文字ずつ 2^30 回書き込むよりも速いと思うが、試してみたらバァッファオーバーフローしてるのか?うまくいかなかった。
ちなみに、2^30 = 1ギガバイト = 1,073,741,824 バイト = 1024 バイト x 1024 キロバイト x 1024 メガバイト

#!/usr/bin/perl

open(OUT, '>sample.txt');
for(my $i = 0; $i < 2^30; $i++) { print OUT 'a'; }
close(OUT);

1;

次のコードを makefile.pl などというファイル名で保存して、chmod +x ./makefile.pl し、そして ./makefile.pl を実行すれば makefile.pl と同じディレクトリ上に sample.txt に1GiB (ギビバイト=2^30)ぴったりのデータ(「a」の文字で埋め尽くされた テキストファイル)が作成されていると思う。プログラム的には、例えば 1KiB のダミーデータを変数($data)に入れてそれを 1024 x 1024 回書き込んだ方が 1文字ずつ 2^30 回書き込むよりも速いと思うが、試してみたらバァッファオーバーフローしてるのか?うまくいかなかった。
ちなみに、2^30 = 1ギガバイト = 1,073,741,824 バイト = 1024 バイト x 1024 キロバイト x 1024 メガバイト

#!/usr/bin/perl

open(OUT, '>sample.txt');
for(my $i = 0; $i < 2^30; $i++) { print OUT 'a'; }
close(OUT);

1;

Perl で、超フレキシブルな Factory パターンを考える。

Perl で、new しようとするクラスがなんでも OK の Factory クラスを考える。new しようとするクラスはパラメータ(なんと文字列)で与えられるという、かなり何でもアリの Factory クラスである。
Perl で、new しようとするクラスがなんでも OK の Factory クラスを考える。new しようとするクラスはパラメータ(なんと文字列)で与えられるという、かなり何でもアリの Factory クラスである。

Perl で、ブラウザから送られてきたデータを CGI.pm を使わずに処理する方法

最も原始的な例は以下のようになるだろう。今さらだけど、知っておいて損はないかもしれない。 HTTP プロトコルの場合、クライアントからサーバにデータを送る方法は POST メソッドか GET メソッドと仕様で定義されているから、POST の場合と GET の場合の2つのパターンを考えてデータを受け取ってあげればよい。
最も原始的な例は以下のようになるだろう。今さらだけど、知っておいて損はないかもしれない。 HTTP プロトコルの場合、クライアントからサーバにデータを送る方法は POST メソッドか GET メソッドと仕様で定義されているから、POST の場合と GET の場合の2つのパターンを考えてデータを受け取ってあげればよい。