perl
UmakatterにOAuthを利用した機能を組み込みました。 TwitterのOAuthなのですが、Net::Twitter を利用すると本当に簡単に実現できます。こんなコードです。 OAuthアカウント作成 http://twitter.com/oauth_clients にて、アカウントを作成してください。 Net:…
action_rolesを指定して、コントローラ全体にmodifierかけると微妙だよね。 例えばこんな感じ。 package Umakatter::Web::Controller::Example; use strict; use warnings; use base qw/Catalyst::Controller::ActionRole/; __PACKAGE__->config( action_rol…
つい勢いでhttp://ironman.perl-mongers.org/に参加した。http://svn.coderepos.org/share/websites/perl-mongers.org/Ironman/IronmanFeeds.txtにフィードを追記すれば表示されるらしい。
Repository link now appearing on CPANCPANに上げたモジュールに、レポジトリのリンクが張れるようになったのか。Net-GitHub
versionあげたら、この変更でオワタ>_< 0.20 Thu Apr 9 20:22:33 2009 * To improve Moose compat, a single undef passed to new is now disallowed (Sartak)
ketama_pointsを利用してる場合で、最近サーバを追加して、それとなく新しバージョンのCache::Memcached::Fastをインストールしてしまった人は注意。バージョンをあわさないと残念なことになります。ええ、そうです、残念なことになりました。 0.14 2009-02-…
sub handler($$){ return 'NOT_FOUND'; } みたいにやると、タイムアウトするまでリトライがはじまるよ。modperl1系で生存を確認
適当に書いてみた。warningでてるのは気のせい ソース nico-html.pl #!/usr/bin/perl use warnings; use strict; use Data::Dumper; use WebService::Simple; use utf8; #sm9 my $url = sprintf( 'http://www.nicovideo.jp/api/getthumbinfo/%s' , $ARGV[0] …
http://d.hatena.ne.jp/hideden/20080409/1207740439のやつで、エラーログを眺めるだけのお仕事がめんどくさいから手を加えた。これを仕込んでおいて package INCDiff; use strict; use Apache::Constants qw(OK); use vars qw(%init_module); my $FILE = '/…
1.* 系と 2.*系はアクセッサ周りの実装が違うので注意です 1.*系だと、get onlyなので $page->total_entries($total_entries); $page->entries_per_page($entries_per_page); $page->current_page($current_page); こういうのできない。 疲れた。
t/hoge.t use Test::Base qw/no_plan/; my $DIR = 't/data'; spec_string( &load_data() ); run { my $block = shift; # 貴方のテストをここへ。テスト名を入れるのを忘れずにね。 is( $block->before , $block->after , $block->name ); }; sub load_data {…
Original.pm package Original; use warnings; use strict; sub password { 'hogehoge'; } sub name { 'angelos'; } 1; Stealer.pm package Stealer; use warnings; use strict; use Class::Inspector; use Data::Dumper; use Sub::Install; use UNIVERSAL::…
ウーム。雰囲気。戻り値は Path::Classのobjのほうがお洒落か。 package App::Home; use warnings; use strict; use base qw/Class::Data::Inheritable/; use Cwd (); __PACKAGE__->mk_classdata('app_name'); __PACKAGE__->mk_classdata('order'); __PACKAG…
package My::Sweet::Home; use warnings; use strict; use Cwd (); our $APP_NAME = 'HOGE'; our $Home = undef; sub location { my $self = shift; my @homes = ( sub {$My::Sweet::Home::Home}, sub { $ENV{ $APP_NAME . '_HOME' } }, sub { Cwd::getcwd }…
Date::Calc installしたけどアプリうごかしたら Perl_sv_2iv_flags これがない的なエラーになった...help me. 追記 perlに当ててたパッチが悪さしてたもよう。取り外したらいけた。
XML::Liberalのテストがほとんどこけるなぁ。ftp://xmlsoft.org/libxml2/libxml2-2.7.2.tar.gz の XML::XMLLibなんだけど。なんだろう。 追記1 http://rt.cpan.org/Public/Bug/Display.html?id=41802これか。 追記2 XML-LibXML-1.65 まで下げると、ほとんど…
XSを使用したモジュールのmakeが出来ない場合、ExtUtils::MakeMaker::Configに $Config{lddlflags} = '-m32 ' . $Config{lddlflags}; を追加すればとりあえずうまくいくかも。perlのconfigureのoptionで設定する方がベターだけど。
Mouse::Role系は便利だけど、モリモリ関数を増やしまくると、コードがおえなくなるので使い過ぎに気をつけた方が良いと思った。使う際には、ネームスペースや関数名からGuessできるように気を配るとかかなぁ。
http://d.hatena.ne.jp/tomyhero/20081231/1230735039使うケースというのは、呼びもとクラスをコントロールしたい時でいいのかなa.pl #!/usr/bin/perl use Hage; package Hoge; sub import { use Data::Dumper; print Dumper caller ; print "---------\n"; …
File::ShareDirを使えばいいのか。 もうちょっと詳しく
とりあえずわかったのは、ソースに書いてるコメントがおもしろい。ここに記入されてる Comments should be funny if possible.だ。例 # Are you saying you're never going to eat any animal again? What about bacon? # No. # Ham? # No. # Pork chops? # …
同じタイムゾーンの場合 'local' って指定するんじゃなくて、$timezoneのオブジェクトを使い回した方がはやい。 #!/usr/bin/perl use strict; use warnings; use Benchmark qw(:all); use DateTime; use DateTime::TimeZone; my $timezone = DateTime::TimeZ…
my $hoge = "hoge "; my @items = split("\n", $hoge ) # hogeだけ my @items = split("\n", $hoge , -1 ); # 改行も入る
http://d.hatena.ne.jp/xcezx/20080925/1222285415そういえば、こんなのも実装してた。サーバーの設定によって誤差でまくるんだけど、ping を利用して、スケジュールを登録しておいて、 その日時に連絡してくれるってやつです。多少誤差があるんだけど、それ…
Parse::RecDescentを継承したパーサーで$::RD_AUTOACTIONとかつかうとgdgdになるので、 サランラップする必要がある。使いづらいので、ベストプラクティスな実装にしてほしい。 package OreOre::Parse; use base qw/Parse::RecDescent/; sub _nextnamespace(…
Foo.yp %{ use strict; use warnings; use Data::Dumper; %} %% body : section | body section { shift; return join( "\n" , @_ ); } ; section : h1 { my ($self, @patterns) = @_; return '<h1>' . $patterns[0] . '</h1>'; } | letters RETURN ; h1 : ASTARISK l…
メッセージ周りが取り込まれすぎてる点 config自体に書くのではなくて、config でリソースファイルを指定して読み込んだりする方が良いのかと思った。後、Rule::Hoge::Ja 系もリソースファイル化したほうが、ぶっちゃけいいよなぁ。 tableのカラム名を id の…
Parse::Yapp入門した。正直さっぱりだ。 h1にする こんなやつを *hoge123あ こうするだけ <h1>hoge123あ</h1> Hoge.pm %{ use strict; use warnings; use Data::Dumper; %} %% body : | h1 { my ($self, @patterns) = @_; return '<h1>' . $patterns[0] . '</h1>'; } ; h1 : '*…
Mooseを使って飽きたので、取り外す作業中のtomyheroです。皆様いかがお過ごしでしょうか。「正直、Mooooooose 溺愛のPerlコミュニティにはついていけない」を読んでを読んで 空気を読まずあるモジュールで使ってみたら、id:yoshidasterさんに取り除かれまし…
primary keyじゃない一件だけのデータをとりたかったので、single() つけた。 sub single { my ( $self, $terms, $options ) = @_; my $res = $self->search( $terms, $options ); return $res->next; }