Get me outta here!

blog.delphinus.dev

vim とか Perl な話題とか……

Menu

Skip to content
  • プライバシーポリシー
  • perl
  • Vim
  • 映画
  • 投稿一覧
  • はじめに

Author Archives

delphinus

「第 9 地区」感想

2010年4月25日 by delphinus

ちょっと路線変更。映画の感想ネタもちょくちょく置いていきます。べ、別に Perl ネタで書くことなくなった訳じゃないんだからね!

 

 

映画『第 9 地区』予告編

あ…ありのまま、今日起こったことを話すぜ!

「俺は SF を見に行ったと思ったら始まったのは人種差別問題を扱った社会派映画だった。と思ったらやっぱり戦争モノで最後はロボットに乗って戦う映画だった。」

な、何を言ってるのかわからねーと思うが、今日の感想はそんな感じ。さすがアカデミー作品賞ノミネートは伊達じゃない。一口も二口も違った「SF 映画」だった。

Continue reading →

映画 1 Comment

【Perl】設定ファイル中に定数を使う

2010年4月24日 by delphinus

前の記事「【Perl】いろいろな形式で設定ファイルを読む」では Config::Any モジュールを使って設定ファイルを読み込む術を書いた。設定ファイルを書いていると中に定数を置きたい場合がある。例えば、以下のような設定があったときに、__FindBin__ は実行ファイルへのパスに置き換えて欲しい。

---
log_dir: __FindBin__/log
image_dir: __FindBin__/image

コード例

use Config::Any;
use Path::Class;
my $cfg = Config::Any->load_stems( ... );
my $img = dir( $cfg->{image_dir} )->file( "sample.png" );

このような機能を実現するには、Data::Visitor::Callback モジュールを load_stems (load_files) メソッドの filter オプションで使用するといい。

use Config::Any;
use Data::Visitor::Callback;
use FindBin;
my $cfg = Config::Any->load_stems( {
    stems => [qw! config !],
    filter => sub {
        Data::Visitor::Callback->new(
            plain_value => sub {
                $_ // return;
                s/__FindBin__/$FindBin::Bin/eg;
            },
        )->visit( shift );
    },
    use_ext => 1,
    flatten_to_hash => 1,
} );

Continue reading →

perl Leave a comment

【Perl】いろいろな形式で設定ファイルを読む

2010年4月22日 by delphinus

外部から設定ファイルを読み込む方法はいろいろあるが、一番お手軽なのは Config::Any モジュールを使うことだ。このモジュールを使うと様々な形式のファイルを一つの命令で読むことが出来る。

コード例

load_stems メソッド

基本は、これを使っておけば間違いない。stems オプションに指定した文字列に、対応した拡張子を自動的に補ってファイルを探してくれる。

#!/usr/bin/perl
use strict;
use warnings;
use Config::Any;
use YAML::Syck;

my $cfg = Config::Any->load_stems( {
    stems => [qw! config !],
    use_ext => 1,
    flatten_to_hash => 1,
} );

print Dump $cfg;

load_files メソッド

読み込むファイルを指定したいときはこれ。files オプションには複数のファイル名を指定でき、その中で存在するファイルだけが読み込まれる。

my $cfg = Config::Any->load_files( {
    files => [qw!
        config.json
        config.yml
    !],
    use_ext => 1,
    flatten_to_hash => 1,
} );

Continue reading →

perl Leave a comment

日本語キーボードドライバで英語配列を使う【keyhac 編】

2010年4月21日 by delphinus

「Windows で英語キーボードを使いたい!」では Autohotkey を使って、日本語キーボードドライバを使いながら英語配列にする技を書いた。

今度は keyhac というソフトを見つけたので使ってみた。Autohotkey でうまく動かなかった SandS 1 や、XKeymacs であったいくつかの問題2もこれで解決したっぽい。

まずは手始めに、使っている HHK を日本語キーボードドライバのまま、英語配列化する設定ファイルを書いた。他のキーボードで使う場合はキーコード等をいじる必要があるかもしれない。

Python という言語は初めて使ったけどおもしろいねえ。簡潔で、初級者でも内容がすぐわかるという取っつきやすさは Perl と正反対だ。早速本を買ってきたので少し勉強してみよう。

Continue reading →

keyhac python Windows キーボード Leave a comment

ヤダヤダ演算子、他、Perl 5.12 の新機能

2010年4月20日 by delphinus

割と大きな変更が多かった Perl 5.10 と比べて Perl 5.12 の変更点は小粒。内部的なことはよくわからんので、文法上の新機能を(わかる範囲で)いくつか纏めてみた。

http://perldoc.jp/docs/perl/5.12.0/perl5120delta.pod

1. ヤダヤダ演算子

「未実装であること」を表す演算子「...」が追加された。Perl6 に載る予定の機能みたいだけど、このネーミングは何なんだw 実際に英語でも「Yada Yada Operator」である。以前のバージョンからある(そしてほとんど使われていない)範囲演算子「...」と紛らわしい。未実装な関数(ブロック)に対するプレースホルダとして使うことが狙いだ。こんな風にして使う。

例

my %funcs = (
    f1 => sub { "OK!" },
    f2 => sub { 0 .. 9 },  # 範囲演算子
    f3 => sub { 0 ... 9 }, # 範囲演算子
    f4 => sub { ... },     # ヤダヤダ演算子
);
for ( sort keys %funcs ) {
    print "$_ => ";
    eval { say $funcs{ $_ }->() };
    $@ and say $@;
}

出力

f1 => OK!
f2 => 0123456789
f3 => 0123456789
f4 => Unimplemented at F:\TEMP\VINCF.tmp line 5.

Continue reading →

perl 4 Comments

ActivePerl 5.12 で PAR::Packer をインストール

2010年4月19日 by delphinus

ActivePerl 5.12 が出たみたいなので PAR::Packer のインストールをクリーンインストールから試してみた。5.10 の時はこんな感じでごく簡単に終了したのだが……。

PARでPerlスクリプトをexe化 @ ActivePerl 5.10.1 build 1007
https://blog.delphinus.dev/2010/02/par-activeperl-5101-build-1007.html

今回もまずは必要モジュールを先にインストールする。以下の 6 つだ。

  • Module::ScanDeps
  • Win32::Exe
  • Parse::Binary
  • Getopt::Argvfile
  • PAR
  • PAR::Dist

そしていよいよ PAR::Packer……なのだが、これはうまくいかない。

5.12 の PPM レポジトリにはまだ dmake 及び MinGW がリリースされておらず、コンパイルが出来ないのだ。しょうがないので、5.10 の時に使ったパッケージを無理矢理インストールする。

Continue reading →

perl Windows 1 Comment

最新版 GNU Screen のインストール on CentOS 5.4

2010年4月18日 by delphinus

久々にインストールしようとしたらいろいろと苦労したのでその記録。

以前試したときはソースツリーにバグがあった(?)為に最新版を git で持ってくるとコンパイルできなかったりしたのだが、今回試したところ、又別の問題があった。

最新版GNU Screenで縦分割(その1〜導入編〜) | blog.delphinus.dev
https://blog.delphinus.dev/2010/02/gnu-screen.html

最新ソースを手に入れてビルド開始 → 失敗

$ sudo yum install git
$ git clone git://git.savannah.gnu.org/screen.git
$ cd screen/src
$ autoconf
configure.in:48: error: possibly undefined macro: AC_USE_SYSTEM_EXTENSIONS
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.

ここでエラー。「AC_USE_SYSTEM_EXTENSIONS」でググってみると、どうやら autoconf-2.6.0 が必要らしい。CentOS 5.4 では autoconf-2.5.9 なのが問題みたいだ。Fedora からパッケージを貰ってきてインストールする。

Continue reading →

screen Unix系OS 1 Comment

Post navigation

← Older posts
Newer posts →

アカウントでログイン

最近の投稿

  • Moves API のための Perl モジュールを作りました 2013年9月11日
  • ロボットは僕に言った「君は人間じゃない」 2013年7月30日
  • 人は一生に何回キーを叩くんだろう? 2013年7月29日
  • 【Vim】カラースキームを切り替えるたった一つのさえたやりかた 2013年7月23日
  • 【WordPress】「前の記事」「次の記事」のリンクにサムネイルを付ける 2013年7月17日
  • 【Powerline】Git branch セグメントが Mac OS X で動かない? 2013年7月16日
  • 【Vim】80桁教信者の憂鬱 その2(ホットキーでトグル、他) 2013年6月24日
  • 【vim】80桁教信者の憂鬱 2013年6月20日
  • 【MacVim】メニューバーでアイコンが見えない! 2013年6月19日
  • 【unite.vim】set_substitute_pattern は衰退しました(その2) 2013年6月18日
Proudly powered by WordPress | Theme: Something Fishy by Caroline Moore.
blog.delphinus.dev
Proudly powered by WordPress | Theme: Something Fishy by Caroline Moore.