2008-03-01から1ヶ月間の記事一覧

インデント関連

vim

現在行を含めn行について、m文字分左インデントを設ける n:を入力 :.,.+4と表示される 続けて、leftmと入力

エンコーディング

vim

エンコード関連のviコマンドをまとめておく。 OSのエンコード確認 :set enc ファイルのエンコード確認 :set fenc エンコードを指定してファイルを読み直す :e ++enc=euc-jp*1 *1: もちろんeuc-jp以外でもOK

文字列処理いろいろ

内部エンコーディング http://app.blog.livedoor.jp/dankogai/tb.cgi/50276015 Perl 5.8では内部で扱う文字コードもUTF-8です。それ以外のUTFはすべてEncodeモジュールで扱うことが出来ます。 perlスクリプトはUTF-8で書くのが無難ということだね。なお、内…

CGIの基礎

CGI

CGIプログラミングを読んで知らなかったこと/あいまいにしか知らなかったことをまとめる。 第1章 CGIの入力/出力 CGIは標準入力と環境変数を通してウェブサーバからの入力を受け取る。 また、標準出力を通してウェブサーバに結果を渡す。 CGIと代替手段 ■CGI…

Class::Data::Accessor

クラス変数へのアクセサ(継承可)を提供してくれるクラス。 インスタンスごとに値を変えることもできる。 use strict; use warnings; use Class::Data::Accessor; use base qw/Class::Data::Accessor/; #instance value def my $obj = bless { id => '001',…

型グロブ

テストコード use strict; use warnings; package Hoge; our $var = "hoge_var"; { our $var2 = "hoge_var2"; } package Foo; #%Hoge:: have hash keys named as var, var2 print join(', ', keys %Hoge::), "\n"; #%Hoge:: have hash values that are type …

OOP

クラスの基本 use strict; { package Person; use Carp qw(croak); #クラス変数 my $class_var = 'hoge'; #コンストラクタ sub new { ref (my $class = shift) and croak("warn: method 'new' is class method"); my $self = {Name => shift}; bless $self, …

シフト演算

perlでは算術右シフトはできないっぽい printf("-2 >> 1 is %d\n", -2 >> 1); 2 >> 1 is 2147483647 と表示される。試しに、自作関数で2進数表記にしてみると print &decimal2binary(-2), "\n"; print &decimal2binary(-2 >> 1), "\n"; sub decimal2binary {…

vimrcの設定

vim

現在の設定値 "Color syntax on"Tab set tabstop=2 set showmode set autoindent set nonumber set showmatch"Encoding set encoding=utf-8 set fileencodings=iso-2022-jp,cp932,euc-jp,utf-8 メモ: syntax on たいていはファイルタイプを認識してくれるけ…

モジュールをつくってみる

http://itpro.nikkeibp.co.jp/article/COLUMN/20071011/284280/?P=2&ST=develop を参考にした自分用のメモ。必要なものはcpanでインストールしておく。 モジュールとテストをつくる 必要なコマンド $cd /home/user/workspace $module-starter --module=My::M…

ColinuxでDebianを

手元にLinuxサーバが欲しかったので、Colinuxをインストールして使っている。 以下、はまった箇所。 1. ネットワーク設定 無線LANは設定がなかなか難しかった。有線のほうが無難。 2. apt apt-get install hogehoge を実行しようと試みると、e2fsprogsがxx…

プロンプトの表示を変更

ホームディレクトリの.bash_profileに以下を記述して、 export PS1="\u@\W:\\$ " $source .bash_profile でOK 参考) http://www.atmarkit.co.jp/flinux/rensai/linuxtips/002cngprmpt.html http://www.ep.sci.hokudai.ac.jp/~inex/y2002/1101/1101_shell.ht…

CGIのdeployスクリプト

deployというほど大げさなものではありませんが。 apacheユーザーとログインユーザーが違うのでいちいちchownやchmodしなければならないのですが、それを解決しようというもの。 #!/bin/bashsudo cp -R /home/kotaro/cgi/*.* /usr/lib/cgi-bin/ sudo chown -…

日本語を読めるようにした

vim

日本語のファイルを読めないので、まず現在のロケールを調べてみる。 #less /etc/default/locale するとなんも表示されない!!!http://debian.fam.cx/index.php?Japanese#content_1_3 を見て調べる。 #apt-get install locales # update-locale LANG=ja_JP…

DBIモジュールのインストール

CPANで install DBI install DBD::mysql とやったら、DBIはうまくインストールできたがDBD::mysqlがダメ。 mysql_configが見つからないのようなメッセージが出たので、 http://y-kit.jp/saba/xp/cpan.htm http://www.mail-archive.com/pylons-discuss@google…

パッケージ

パッケージの役割 名前空間を定義する。 デフォルトはmainパッケージ $var = "hoge"; sub func() { print "$var\n"; } #全部同じ値にアクセスしている print "$var\n"; print "$main::var\n"; &func(); &main::func(); 他パッケージからは完全修飾名でアクセ…

ourをもう少し詳しく試してみる

ourで宣言した変数はレキシカルスコープで、パッケージに属する。 完全修飾名でなくてもアクセス可。 コメントを受けて訂正。 ourで宣言した変数はパッケージに属し、グローバル変数となる。 パッケージ外からも参照でき、block scopeの影響を受けない。 参…

コンパイルと実行

perlは、コンパイラとインタプリタが共存した仕組みになっている。まず、テキストをコンパイラがコンパイルして行き、これを「コンパイルフェーズ」と呼ぶ。コンパイルフェーズに実行を行う事も出来る。コンパイルフェーズが終ると、コンパイラはコンパイル…

英辞郎のブックマークレットをつくってみた

たまに英単語を調べる時に不便なので。 和英・英和どちらでも検索できます。 使い方*1 ツールバーで右クリックし、プロパティをクリック URLに以下のコードをコピペ 調べたい単語を選択した状態で、ブックマークレットをクリックすればOK。*2 コード javascr…

クロージャ

Perlにおけるクロージャとはスコープの外に出たレキシカル変数を参照するサブルーチンのこと。 テストコード my $closure; { my $count = 0; $closure = sub {print $count++;}; } $closure->() for (0..9); 実行結果 0123456789 つまり クロージャ使うと変…

スコープ

スコープ 宣言や動作の有効範囲。 以下の2つに大別できる(不勉強のため間違ってるかも、、、) レキシカルスコープ 構文構造のみから決定されるスコープのこと。 (実行しなくても見れば分かる) ダイナミックスコープ 実行時の関数の呼び出し関係で決定さ…