IT戦記

プログラミング、起業などについて書いているプログラマーのブログです😚

Perl

ついったったーの情報をデータベースに突っ込む!

久々に Perl 書いた #! /usr/bin/perl use strict; use warnings; use utf8; use DBI; use HTTP::Date; use Net::Twitter; use File::Basename; use Data::Dumper; use Config::Pit; my $config = pit_get('twitter.com'); my $dbh = DBI->connect('dbi:SQLi…

はてブの Web Hook で Twitter を更新する

はてなブックマークの Web Hook というのがリリースされましたね! (開発者さま向け) はてなブックマーク Web Hook 機能を公開しました - はてなブックマーク日記 - 機能変更、お知らせなど はてなブックマーク Web Hookとは - はてなキーワード これを設定…

Windows の App::Ack でカラー表示する方法

Win32::Console::Ansi をインストールしておけばいいみたいです。 > cpan -i App::Ack > cpan -i Win32::Console::ANSI

私的 XS メモ

参考にしたサイト集 perlxs - perldoc.perl.org perlxstut - perldoc.perl.org perlguts - perldoc.perl.org perlapi - perldoc.perl.org http://d.hatena.ne.jp/tokuhirom/20081209/1228829454 Perl XS メモ - typemap と MAGIC をからめて - daily dayflow…

perl-users.jp の JPerl Advent Calendar に寄稿しました

はじめに http://perl-users.jp で JPerl Advent Calendar 2008 という企画をやっていて、 Perl ハッカー達が毎日バトン形式で記事を書いています。 そしてついに、僕にも id:kazuhooku さんからバトンが回ってきたので、頑張って書きました><! 記事は以…

Win32::GuiTest でツールバーのクリック。

昨日の夜、つまづいてたところ。 ちょこっと試してみたら普通に動いた 貼っておきます。ペタ sub MouseClickToolbar { my $toolbar = shift; my $id_target = shift; my $tbb_buf = AllocateVirtualBuffer($win, 24); my $count = SendMessage($toolbar1, 0x…

perl の Win32::GuiTest モジュールを使ってみる。

はじめに 久々の perl。突っ込まれるのを期待しつつやってみます。 準備 Strawberry Perl for Windows をインストール PATH を通して、コマンドプロンプトを起動して、 > cpan -i Win32::GuiTestでおk。 何から始めよう IE8 をどこまで操作できるかやってみ…

tie がわからない

HTTP::Session::Store::DBM の insert で 以下のように、 sub insert { my ( $self, $key, $value ) = @_; defined(tied %{ $self->{dbm} }); # => false になる場合がある $self->dbm->{$key} = Storable::freeze $value; } $self->{dbm} に tie されたオブ…

Perl-users.jp

Perl-users.jp は Perl のプログラミング初心者にもやさしい Perl のハブサイトです! みなさん、ガンガン使いましょう!

Ustream から自分の録画データをダウンロードして、 SMILEVIDEO 用にエンコードするツール

書いたので共有しときます。 ソース汚いです><誰か、直して>< http://svn.coderepos.org/share/lang/perl/misc/ust_smile_util.pl 使い方 コマンドみたいになってるので、以下のような感じで実行してください $ perl ust_smile_util.pl Username: hogeho…

cpan コマンドでモジュールをインストールするときに Makefile.PL の引数を設定する

以下のようなことで困っていました あるモジュールを入れるときに、 Makefile.PL に引数を渡してあげなければならない。 $ perl Makefile.PL INC=-I/俺の/includeでも、 cpan コマンドでやると全自動でやっちゃうので Makefile.PL に直接引数を渡せない で、…

STDIN が tty かどうかの確認

-t STDIN $ perl -e "print -t STDIN\n" 1 $ perl -e "print -t STDIN\n" < hoge.txt $

wantarray する

id:TAKESAKO さんに教えて貰った。 () = func;

Perl で arguments->callee ではなくて arguments.callee と書けるようにした

ここを参考にして http://d.hatena.ne.jp/tokuhirom/20080418/1208503547 use overload を使ってみた package Acme::JS::Arguments; use strict; use warnings; use Devel::Caller qw(caller_args); use Exporter; our @ISA = qw(Exporter); our @EXPORT = q…

Acme::JS::Arguments 作った

ネタは はじめての coderepos で arguments::callee 初体験 - TAKESAKOのはてな出張所 のパクリで、でも XS 書けないので中で Devel::Caller 使ってます。 arguments で引数配列のリファレンスが帰ってくる arguments->callee で自分自身のコードリファレン…

Devel::Caller が便利すぎる件について

こんなことを書いていたら Perl で JS の arguments.callee 的なことしようと思ってハマった - IT戦記 さっそく教えて貰えた>< http://d.hatena.ne.jp/tokuhirom/20080501/1209625789 ありがとうございます! さっそく使ってみた! 以下のコードを # test.…

Perl で JS の arguments.callee 的なことしようと思ってハマった

JavaScript では arguments.callee を使うと以下のように無名関数の再帰が書ける (function(c) { if (c == undeinfed) c = 10; console.log(c); if (c--) arguments.callee(c); }); Perl で そういうことをやる方法を知らないので do { my $c = 10; my $call…

みんな Perl やろうよ!

以下のエントリを読んで これからPerlやろうかなーとか思ってる人へ - Yet Another Hackadelic これは本当にすごいと思いました Perl やろうよ! みんな Perl (も)やろうよ! けっこう、いろんなツールやスクリプトとかって Perl で書かれてるんだよ! だ…

MacPorts の SpiderMonkey と CPAN の JavaScript::SpiderMonkey を一緒に入れる

MacPorts で SpiderMonkey を入れた場合は、以下の位置にライブラリファイルとインクルードファイルがあります。 /opt/local/lib/* /opt/local/include/*なので、 JavaScript::SpiderMonkey をインストールする際には、 Makefile.PL の 38 行目あたりを以下…

Google で cpan ってググったら Search cpan.org の検索ボックスが出てきた

検索→検索って感じで絞り込んでいく感じでおもしろい

Perl の y 関数を JS で

(追記)このエントリーは間違いが含まれます。 y 関数は y コンビネータではなくて、他の用途の組み込み関数を上書きして autobox でそういう風に使っているという話でした。 Perl の y 関数 http://d.hatena.ne.jp/tokuhirom/20080205/1202191116 Perl に…

再帰で local を使う

刺身さんお久しぶりです^^; Re: 再帰?は難しい - 刺身☆ブーメランのはてなダイアリー local を使ってこんな再帰はどうでしょうか?^^; local なのでグローバル変数を再帰のスタック上でしか書き換えないので、比較的安心です。 use strict; use Data::…

my と local のサンプル

local と my - IT戦記の続き local と my の違いが分かるサンプルを書いてみた our $foo = 0; do { # ... (1) local $foo = 1; do { print "$foo\n" }; # 1 sub { print "$foo\n" } # 0 }->(); do { # ... (2) my $foo = 1; do { print "$foo\n" }; # 1 sub …

local と my

すっきりした>< - 宇宙行きたい このエントリの our 名前をスコープに限定. local 値をスコープに限定. my 名前と値の両方をスコープに限定 は、ものすごく分かりやすいし正しいと思うんですけど、たぶん昔の僕だったら理解出来なかったかもしれません><…

Mac だと App::Ack が白黒だったので、場当たり的な対処をしました。

Mac で App::Ack を使ってみたら白黒だった。 原因は App::Ack::is_interactive が false になるのがダメっぽいんだけど。 ソース読んでみても、逆にこれが true になる条件がよくわかりません>< で、場当たり的な対処 export ACK_OPTIONS="--color --grou…

Shibuya.pm Technical Talk #7

上司の id:ZIGOROu はんが出るみたいなので、初めて聞きに行ってみます ^^ それにしても、今回も 30 分程度で埋まってしまったようですね。取れてよかった。あと、 JavaScripter としては樋口さんの話が楽しみです。ワクテカ Shibuya.pm Technical Talk #7 http:…

Perl で再帰呼出し時のスタック間データ共有

ダイナミックスコープがない言語では 再帰呼び出しのスタック間でデータを共有する場合は、以下のように仮引数を使わなければならない。*1 JavaScript で木構造の探索をして、依存関係を直列に並べる例 function search(node, results, seen) { if(!results)…

Class::Data::Accessor と Class::Data::Inheritable は個人的には継承しなくてもいいと思う(継承せずに使う)

Class::C3 を使うと継承順がかなりセンシティブになる。 たとえば、普段から Class::Accessor::Fast と Class::Data::Inheritable を同時に継承する場合にどちらが先かというのは、そんなに意識しないと思います。(僕はしません) でも、Class::C3 を使う場合…

DBIx::Class::Schema::Loader で 34 秒くらいで Schema クラス生成

既存 DB から以下のワンライナー一発で DBIx::Class の Schema が生成できる $ perl -MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:./lib -e 'make_schema_at "Hoge::Schema", {relationships => 1, debug => 1}, ["dbi:mysql:hoge","user","pa…

Class::C3, Algorithm::C3 を勉強したよ!

DBIx::Class を少し使ったことがあったので Class::C3 をなんとなくで理解していたんです。(ふーん幅優先版の NEXT モジュールでしょ?みたいな感じで。) でも、これは絶対にちゃんと細かい挙動まで勉強しといたほうがいいと思いました。 多重継承とか mix…