にへるつおるぐ | src | ブログ | コンタクト | 統計 | 御串 | 小束 | 裏ミク | つ痛 | 顔本 | | Login |
|
|
10年ぶりに部屋に入るとコウモリや猫の巣窟だった |
PerlPerlのサブルーチンの引数の受け取り方
s1~s4はあまり変わらないけど、s5は他より速いみたい。 use Benchmark; sub s1{ my($a, $b) = @_; $a + $c; } sub s2{ my $a = $_[0]; my $b = $_[1]; $a + $c; } sub s3{ my($a, $b) = shift @_; $a + $c; } sub s4{ my $a = shift @_; my $b = shift @_; $a + $c; } sub s5{ $_[0] + $_[1]; } timethese( 1000000, { 's1' => sub{$r = s1(1, 2);}, 's2' => sub{$r = s2(1, 2);}, 's3' => sub{$r = s3(1, 2);}, 's4' => sub{$r = s4(1, 2);}, 's5' => sub{$r = s5(1, 2);}, } );
Add CommentTrackbackこのトラックバックURL(右クリックして、リンクのURLをコピー)を使ってこの記事にトラックバックを送ることができます。もしあなたのブログがトラックバック送信に対応していない場合にはこちらのフォームからトラックバックを送信することができます。トラックバックの手動送信に失敗したり、拒否された場合には、あけび猫が入力しますので、こちらまでご連絡下さい。重複したトラックバックは、自動的に1つにまとめられるようなので、気軽に色々試してみて下さい。 |
やっぱりCGIは走らせたい所。
で、鯖の事は以前少し勉強して稼働させたことがあるけど、
どーもparlが上手く動作してくれないのでエラーが出てします。
なんのエラーか忘れたけど、相対パスの設定とかがおかしかったのかなぁ??
もう一回勉強しなおさないとねぇ。
freeBSDと、REDHATならどっち使う?
以前はREDHATで稼働させてました。
するけど、最近は、freeBSDを使ってみたことが無いのでどうかナゾ。
REDHAT系は、あのGUIをつかったネットワークインターフェースの
設定のやり方が未だによく分からず。かといって設定ファイルをいじくる
のは面倒。。。freeBSDは比較的設定ファイルが簡単そうだった
イメージがある。特に、ブートメカニズムが。
今はどうか謎だけど、昔はパッケージ管理システムがDebianが他の
ものよりも優れていて、あけび猫は、もっぱら、Debianにfile-rc
を入れて使ってるでふにゃ~。ネットワークインターフェースの
設定ファイルも比較的簡単そうな気がするし。
CGIは、エラーが出たら、取りあえず、Webサーバのerror.log見て
対処するしかでふにゃ。
そうそう、なぜかpassが通らなかったり、変なエラーを起こしちゃう。
今度HDDを入れたときに デュアルブートにしてみて実験してみますわ。
いずれにしても、REDHATも完成度が高いので、安定して動作してたんだけど
なんだか引っかかる物があって、その謎が解明できないんだよね。
エラーログ観ても同じ事ばかりで、それに対処しても上手くpassが通らなかったりする。
相対パスの階層設定も疑ってけど、そんな初歩的なミスはないはずだったりする。
謎が多い・・・。
再起動すると設定が忘れられたりして、結局、設定ファイルを直接
編集しないといけない事態になってた気がする。。
REDHAT9の頃はそうやってだましだまし使ってたけど、REDHATが
有料化された機会に、さっくりとDebianに移行したでふにゃ。
CGIが動かない原因でありがちなのは下記のとおりでふにゃ。
1. Webサーバの設定でCGIの実行が許可されていない。
2. CGIスクリプトの属性で実行が許可されていない。
3. CGIスクリプトの1行目で指定された位置にスクリプトを実行する
プログラムが存在していない。
4. CGIスクリプトの1行目の改行コードに問題がある。
対策は下記のとおり。
1. WebサーバがApacheの場合、「Options ExecCGI」や「AddHandler
cgi-script .cgi」といったディレクティブが効いているか確認する。
「.htaccess」を使っている場合には、サーバー設定にて
「AllowOverride All」といったディレクティブが効いているか確認する。
2. 取りあえずよく分からない時には、属性を「777」に変更してみる。
それで動いた場合には、念の為、Webサーバ自体のユーザや
グループが自分が想定しているものと違っていないか確認する。
3. Perlスクリプトの作者の環境によって、Perlの実行プログラムの
インストール位置が異なるので、できればスクリプトを修正する
よりも、スクリプトが想定している位置にPerlの実行プログラムを
リンクしてやるのがお手軽。「/usr/bin/perl」と
「/usr/local/bin/perl」としてシンボリックリンクすると
大概のスクリプトはそのままで動作する。
4. WebサーバがUNIX系の場合、サーバにアップロードした
CGIスクリプトをバイナリモードでダウンロードし、
バイナリエディタで開いて、改行コードが16進数で「0A」になって
いるか確認する。「0D 0A」とかだと改行コードの変換が
正しく行われていない。
ちなみに、日ごろWindowsを使っている場合には、実験には、
xampp-win32とxampp-win32-perl-addonを使うのがお手軽かも?
Windowsでも、たとえば、CドライブにXAMPPを入れたとすると、
「C:\usr\bin\perl.exe」と「C:\usr\local\bin\perl.exe」として
「C:\xampp\perl\bin\perl.exe」をハードリンクすると、
大概のUNIX向けのPerlのCGIスクリプトがそのまま動作する。
(動作しない場合には「C:\xampp\perl\bin」にPATHが
通っているか確認する。)おまけに、PHPやMySQLが付いてくるので、
大概のCMSプログラムが動くと思う。ただ、XAMPPは外部に公開する
場合には設定ファイルをすみずみまで確認して、よく理解してから
でないと、サンプルプログラムとかに誰でもアクセスできてしまう
でふにゃ。
対策のトコみたら1は微妙に違うけど基本は一緒,2は試してみた。3の設定は同じ。
で、たぶん4のとこで、転けたのかもしれない。
たぶんやったようなやってないような感じ。
あれやこれやいっぺんにやったから覚えてないや。
デュアルブートは止めて、一台転がってるマシンがあるから
それで走らしてみるよ。
ぬこさんと同じのを。
そうしたら聞きやすいしね。
res thxです!