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つのパターンを考えてデータを受け取ってあげればよい。

Perl で、メールを送信する方法

open で /usr/sbin/sendmail を開いてそのハンドル SEND を使って print 文で処理する方法もある。
open で /usr/sbin/sendmail を開いてそのハンドル SEND を使って print 文で処理する方法もある。