GDBM/MLDBM利用時のtie構文について
いつになっても覚えられない.覚えるほど頻繁に使わないし,忘れた頃に使う.昔使ったファイルを参考にする.要するにコピペ.そんなわけでテンプレートを用意することにした.折角なので大分時間が空いたけれどEmacs-lispを使ってインタラクティブ関数を作成する.
;;; GDBM_File用 (defun insert-gdbm-header () (interactive) (insert "use GDBM_File;\n")) (defun insert-gdbm-tie (hashname dbname) (interactive "sInput hashname: \nsInput dbname: ") (insert (concat "tie " hashname ", 'GDBM_File', " dbname ", &GDBM_WRCREAT, 0644 or die \"Cannot tie " dbname "\";")) (insert "\nuntie " hashname ";\n")) ;;; MLDBM (defun insert-mldbm-header () (interactive) (insert "use MLDBM qw(GDBM_File);\nuse Fcntl;\n")) (defun insert-mldbm-tie (hashname dbname) (interactive "sInput hashname: \nsInput dbname: ") (insert (concat "tie " hashname ", 'MLDBM', " dbname ", O_CREAT|O_RDWR, 0644 or die \"Cannot tie " dbname "\";")) (insert "\nuntie " hashname ";\n"))
insert-gdbm-header, insert-mldbm-headerはuse文を挿入してくれる.GDBM_Fileは忘れないけれど,MLDBMはよく忘れるので.
M-x insert-gdbm-tie Input hashname: %hoge Input dbname: $DBNAME
すると,以下のコードが挿入される
tie %hoge, 'GDBM_File', $DBNAME, &GDBM_WRCREAT, 0644 or die "Cannot tie $DBNAME"; untie %hoge;
自分でカスタマイズすると(関数作ると)使ってやりたくなる.次はDBIまわりで何か作ってみよう.