tetsunosukeのnotebook

tetsunosukeのメモです

perl

Perl練習問題の解答 for ablaboさん

なんかエラーが起こったりとかするんで、下記のプログラムはあてにならないらしい。指摘されちゃいました。いい加減だなあ自分^-^;;;id:ablaboさんのところの練習問題(http://d.hatena.ne.jp/ablabo/20060129/1138529862)で「自分ならこう書く」を書かなき…

perlのブロック化コメント

よく忘れるシリーズ。C言語とかJavaScriptの場合 /* ここからコメント 複数行コメント */みたいなことができます。しかしPerlの場合は #comment というような一行のコメントしかできません。ところが How can I comment out a large block of perl code? You…

ファイルの全体を読み込む

あるファイルの内容を読み込んで、該当箇所を置換するようなプログラムを書いていました。例えばhtmlファイルの中にと書いておいて、別のファイルから読み込んでその中に埋め込むといったような、日記なんかを書くときに便利なスクリプトです。んで、例のご…

定数。

id:ablaboさんのところで my $pi = 3.14; を見かけたんで。自分も良く忘れるんだけどシンボルテーブルによる定数定義の仕方。 *PI = \3.14159265358979;これで$PIは変更不能になる。あとはconstantモジュールを使うと use constant AAA => 'aaa'; な感じでAA…

ひとつのFormに二つ以上のsubmitがある場合の処理

自分としては <input type="submit" name="submit1" value="一つ目の機能"> <input type="submit" name="submit2" value="二つ目の機能">という形で書くのが筋だと思っています。 <input type="submit" name="submit" value="一つ目の機能"> <input type="submit" name="submit" value="二つ目の機能">この形でもいいっちゃいいわけですが、これをやるとname="submit"で受け取った値が日本語になるため、文字コードが保証できなくなるケ…

CGIでJavaScriptのコードを返す

language="JavaScript" を指定してるので text/plain にしてましたが やはり text/javascript の方が良いですかねぇ? http://www.w3.org/TR/xhtml1/#h-4.8そもそも <script language="javascript">自体が過去の遺物と考えています。最新のXHTMLでは(HTML4.01あたりから) <script type="text/javascript">と書くべき。DTD…

LWPで外部サーバのコンテンツを取得

http://mixi.jp/view_bbs.pl?id=3827693LWP::Simple だと HTTP のレスポンスヘッダが取れないとの事なので まぁ元記事を書いた人が悪いんですが(笑)確かに以下のように書いてあります。 You will not be able to examine the response code or response he…

log4perlの使い方。

追記:どうも「log4perl」で検索してここにたどり着く方が多いようなのですが、もし「こんなことを探しているんだ」というのがあればコメントいただければこちらでも調査/記載します。メモし忘れていた。詳細はこのへんからみる。 http://search.cpan.org/~m…

モジュールの入っていないレンタルサーバでモジュールを使いたい

http://mixi.jp/view_bbs.pl?id=3680066モジュールが使えないレンタルサーバでは、モジュールと同程度の関数を用意しなくてはいけないって話になりかけてるから、いやいやそんなことないよ、って話。動かしたいものをcurrent.cgiとして http://search.cpan.o…

割り算

id:babieさんのところで少し盛り上がったPerlでの割り算のお話。 $ perl -e 'print 10 / 3, "\n"' 3.33333333333333あうあう、知らなかった……。私ぁ今までどうやって生きてきたんだろう。 で、3 を得るには、正規表現置換かなんかで "." 以降削るのが良いの…

Simpleなモジュールのコーディング

package Module; use strict; # constructor sub new{ my $class = shift; # if called new Module($val1,$val2); my($val1, $val2) = @_; #members declaration my $self = { mVal1 => '', mVal2 => '' }; bless $self, $class; } # function sub func{ my …

カレントディレクトリ以下のモジュールにPATHを通す

use File::Basename; BEGIN{ push @INC, dirname(__FILE__); } ってFile::Basenameに通ってなかったらどうするんですか。

LDIFファイルを解析しちゃう

use strict; use Net::LDAP; use Net::LDAP::LDIF; if(!@ARGV){die &usage;} my $ldifFile = shift @ARGV; my $ldif = Net::LDAP::LDIF->new($ldifFile); print "<<======START======>>","\n"; my $entries = 0; while(not $ldif->eof()){ $entries++; print…