Perl
http://d.hatena.ne.jp/kazuokohchi/20070309#1173435564 のさらに続き。検索エンジンにnamazuを使っているとIEではどうしても文字化けしていた。結局以下のようにする。 opensearchdescritionのxmlで、以下のように指定。 <Language>ja-JP</Language> <OutputEncoding>EUC-JP</OutputEncoding> <InputEncoding>UTF-8</InputEncoding>
GD.pmを使って画像をリサイズ。CentOSにGD.pmをインストールするには、事前に、yumやrpmなどで、jpeg, png, zlib, freetype, Xpm(xorg-x11)のdevelパッケージをインストールしておくこと。 #!/usr/bin/perl -w use GD; $src_image = "foo.gif"; $dest_image …
設定をちょっと変える場合 cpan> o conf 設定内容を表示 .... cpan> o conf ftp_proxy '' ftp_proxy cpan> o conf http_proxy '' http_proxy cpan> o conf commit最後に書き込んでます。すべてやり直したい場合は、 cpan > o conf initでinteractive modeで…
CPANの初期設定が面倒な人(すべてデフォルトでいい人)。 # echo no | perl -MCPAN -e shell または、 # echo no | cpanこれ、まるごとPerl! Vol.1のP216に載ってました。>著者の方ありがとうございます。 CPANの設定を消す場合 # cd # rm -fr .cpan # cd /u…
suidなperlを実行したときに、 Insecure dependency ....のエラーが出る場合で、どうしても回避したい場合の処理(perlsec.1より)。 サブパターンを参照することでも、この汚染チェックの仕組みの裏をかくことができます。 $1, $2 といった部分文字列を使うと…
CentOS 4.4にMIME-toolsをインストールしたときのメモ。MIME-toolsはメール(MIME)解析のためのperlモジュールの集まり。 # wget http://search.cpan.org/CPAN/authors/id/D/DS/DSKOLL/MIME-tools-5.420.tar.gz # zcat MIME-tools-5.420.tar.gz | tar xvf - #…
http://blog.livedoor.jp/dankogai/archives/50703529.html より。 ただし、require Foo::Barおよびuse Foo::Barでは、様相が少し違います。この二つにおいては、「Foo/Bar.pmというファイルがロードされていなければ、@INC中のDirectoryにFoo/Bar.pmにそれ…
use IO::File; # "w" or "> $f" my $fh = IO::File->new($f, O_WRONLY|O_TRUNC|O_CREAT|O_SYNC, 0644) or die "Can not open $f: $!\n"; print $fh .... ; $fh->close; O_SYNCはOSによって違うかもしれない(LinuxはO_SYNC。これはopen(2)を参照)。
perlの正規表現(perlでなくてもいいが代表的なので)で、 (?>なんとか)はアトミックなグループという。 これは正規表現エンジンが、この指定された部分に関して、後戻りのためのステートを捨てて、一回マッチしたものを分解不可能なものとする(atom:原子はこ…
perlでは同じサブルーチンがあるとredefinedしてくれるようだ。 $ cat test.pl #!/usr/bin/perl -w sub funca { print "func: a\n"; } sub funca { print "func: aa\n"; } &funca; $ perl test.pl Subroutine funca redefined at z.pl line 6. func: aa $
#!/usr/bin/perl .... $a = (split(/:/, $line))[0];と書くべきところを、 $a = split(/:/, $line)[0];と書いてしまう。 syntax error at xx.pl line N, near ")[" Execution of z.pl aborted due to compilation errors. のエラーで気づくのだが、どうして…
perlで関数を指定するところを、変数を指定したみたいで、動かないなぁ、と10分ほど悩んでしまった。 &func;と書くべきところを、 $func;と書いていたのだ。とほほ。
#!/usr/bin/perl system("foobar-command &"); print <<_EOF; Content-type: text/plain; end execute _EOFのようなCGIを起動して、本当にback groundで動くのかと思ってやってみた。結論を言えば、画面の表示は先に表示されるが、出力をhttpd(Apache2)がちゃんとにぎっているので、プロセスが終了するまではプログレスバーが途中(IEならロゴがなびいている)の状態であった。httpdがそういう仕様なので仕方がないのだが、もしかしたらと思い、 system("foobar-command >/…</_eof;>
perlでオブジェクト指向プログラミングをしているのだが、つまんないことで、1時間30分もハマった。 .... package Foo; sub new { my $class = shift; my $h = { 'title' => shift }; bless $h, $class; } sub title { my $self = shift; $self->{'title'}; …
ずっとperlやっていて、ちょっとrubyを書いたときには、 行末にセミコロン(;)をつけてしまう(個人的にはセミコロン症候群と言っています) 変数を$からはじめてしまう。 String#to_i,Integer#to_sを忘れてしまう。 ことがある。とくにString#to_iは、perlでは…
ハッシュのリファレンスと無名ハッシュの違いを今日味わいました。 sub myfunc { my $s = shift; my(%ta) = ('a' => "a$s", 'b' => "b$s"); return %ta; } foreach (qw/x y z/) { %a = myfunc($_); push(@z, \%a); } foreach (@z) { print $_->{'a'} . ':' .…
日本語を含んだ文字列で文字を切り出す場合、切り出した文字列の間にASCIIコードが奇数個含まれていると、切り出したおしりが文字化けを起こすはず。でも、文字コードがEUC-JPで、perlで実現する場合、これを使えばなんとかなるようだ。http://blog.nomadsca…