perl

今日の発見 From Test::Base

Test::Baseのスペシャル機能で、use strict; use warnings; を自動的に追加するってあった。 試してみた。 Test::Baseなし #!/opt/local/bin/perl use Perl6::Say; my $a = hi_all; say $a ; 結果 hi_all Hit ENTER or type command to continue Test::Base…

Web::Scraperに入門

遅れぎみですが、流行に乗って Web::Scraperを使ってみた。わーぃ。 #!/usr/bin/perl use strict; use warnings; use URI; use Web::Scraper; use Data::Dumper; use Encode; my $girls = scraper { process "div table.NeoOnGirl_table" , 'items[]' => scr…

PHPとPerlとの設計の違い

現状のPHPとPerlでの開発を見て。 PHPでは、1リクエストごとの処理を軽くしようとする。必要な物しか読み込まず、実行せず。 Perlでは、ガツンと初期処理をすることによって、リクエストごとの処理を軽くしようとする。 PHPでは、プロセスやスレッドが立ち…

IRCのチャンネルのログを取るBOTスクリプト改良

http://d.hatena.ne.jp/tomyhero/20070911/1189489871複数のチャンネルをログる用に修正した。ログファイル指定じゃなくて、ディレクトリ指定に変更 #!/usr/bin/perl use strict; use warnings; use POE qw(Sugar::Args Component::IRC); use Class::Inspect…

SVNのコミット情報をログに書くスクリプト

svnのコミットログを動的に取る方法ってないんかなぁ。とりあえず、以下の適当コードで対応。 #!/usr/bin/perl use strict; use warnings; use SVN::Client; use IO::All; use Getopt::Long; my $logfile = "/var/log/svnlog"; my $target = "http://localho…

IRCのチャンネルのログを取るBOTスクリプト

http://forums.unrealircd.com/viewtopic.php?f=3&t=2938&p=16156&hilit=chat+log#p16156UnRealIRCDにはチャットのログを取る機能がないっぽいので、BOTつくって対応してみた。 #!/usr/bin/perl use strict; use warnings; use POE qw(Sugar::Args Component…

HTML::WidgetValidator & Stickam

id:summersoldierさん。Stickam用の、HTML::WidgetValidatorを使用した検証モジュール作ってみました。http://d.hatena.ne.jp/hatenadiary/20070823/1187876705英語と日本語と多分以下のコードでいいので、お問い合わせしてみれば。 package HTML::WidgetVal…

PDF 履歴書

http://www.jobengine.jp/lgn_w.html?tmpl=pdf履歴書をPDFで生成してくれるサービス、これ結構便利だと思った。コピーライト的なものも入らないようだし。で、個人情報入力がいやな人は空白のテンプレートだけ探して、perlで作成できそう。 結構需要が高いき…

漢字のフリガナ取得

mecabつかうのが楽かなぁ。他にいい方法があるといいけど。コードももう少しましにならないかなぁ。 #!usr/bin/perl use strict; use Text::MeCab; my $text="難しい漢字です。"; print get_kana( $text ); #結果->ムズカシイカンジデス。 sub get_kana { my…

Text::SimpleTableでログ出力

なかなか奇麗。 .------------------------------------------------------------------------. | ping for:http://modified.jp 2007-08-08T07:10:53 | '------------------------------------------------------------------------' .---------------------…

Data::FormValidator + α

http://d.hatena.ne.jp/tomyhero/20070803/1186106207上記の実装を以下に修正 required_only_oneの場合、missing にするのではなく、最初の一つ目だけを取るように修正 if ( ref $valid{$field} eq 'ARRAY' ) { if ( exists $required_only_one{$field} or e…

Data::FormValidator で複数の入力をチェックするパッチ

$c->form({ required_only_one => [qw/aaa bbb/], optional_only_one => [qw/ccc ddd/], }); 個人的な仕様にしたんだけど、 <input type="text" name="aaa" > <input type="text" name="aaa" > のように2つ来た場合、missing のエラーにする。 また、optionalが2つ来た場合 <input type="text" name="ccc" > <input type="text" name="ccc" > エラーではなくて、消去するだけ。 Data-F…

Packageの名前を動的に変更したい

#!/user/bin/perl use strict; use warnings; no strict; my $pkg_href = 'Foo::'; my $new_href = 'Bar::'; foreach my $symbol ( keys %{ $pkg_href } ){ *glob = $pkg_href->{ $symbol } ; if( defined &glob ) { *{ $new_href . $symbol} = \&glob ; } }…

Schemaの作り直しを結構するので、コード入れるのをためらうんだけど。

テーブルにフィールドの追加を定期的に行ったりするんで、よくスキーマクラスを作り直すんやけど、 スキーマクラスに手を加えてたら、マージ作業が必要なわけで。それがだるいから、今のところ何もコードいれとらんのやけど、 やっぱり、手を加えた方が便利…

Cache::Funky

引数を与えてキャッシュできるようにしようと思ったけど、deleteの実装方法を変える必要があると思うなぁ。 Cache::Funky->foo( $id ); # foo( $id )のキャッシュを消す。 Cache::Funky->delete( 'foo' , $id ); # foo() すべてのキャッシュを消す。 Cache::…

Catalyst-Model-CacheFunky-Loader

http://tomyhero-perl-module.googlecode.com/svn/trunk/Catalyst-Model-CacheFunky-Loader/結局名前は、Catalyst-Model-CacheFunky-Loader にしようかと。 現在の問題点 Funkyクラスを複数にわけて管理できるんだけど、結局名前は変えてないからどうなのと…

Cache::Funky && Catalyst

http://tomyhero-perl-module.googlecode.com/svn/trunk/Catalyst-Model-CacheFunky-Loader/今日は、id:kopugとNewbiethon予定だったのだが、残念ながら保留。なんで一人で,キャッシュファンキーディレクトリ内のモジュールを、モデルとして読み込むクラスを…

2バイト文字切り落とし。

id:kopug のコードそのままやけど。Template::Filters::LazyLoader使用。 sub fd_make_it_short{ my $s = shift; my $num = shift; return sub { my $var = shift; my $var_utf8 = Encode::decode('utf-8', $var); return length $var_utf8 > $num ? Encode:…

Perl6::Junction

http://search.cpan.org/~cfranks/Perl6-Junction-1.30000/lib/Perl6/Junction.pmこんど機会があったら使お。

Template-Filters-LazyLoader-0.05

数日まえ、update したのですが、理由は、継承もとの関数を引っこ抜けなかったから。 なので、とりえあず、複数のパッケージを配列で指定できるようにした。まぁ、こっちの方が汎用的かなぁ。 $s->pkgs([ qw/Filter::Foo Filter::Boo/]); こんな感じでできる…

Data-Page-Navigation

最近Data-Page-Navigationというモジュールを見つけて、使ってるんですが、便利だなー。 同じことテンプレート側で実装してたけど、全然こっちの方がいい。 DBIC とも相性いいしなー

TheSchwartz

http://video.google.com/videoplay?docid=-6495068736045701027&q=yapc+asia+2007このビデオをみて、jobの管理は TheSchwartz を使ってるんだって。id:kopug に最近それ系をどう実装しようかと話を受けた気がする。しかも、やってることも一緒やし。 flvへ…

Audrey Tang - Perl 6 Todayを見た

http://video.google.com/videoplay?docid=-3876155376103839772&q=yapc+asia+2007デザインという言葉が似合うと思った。 今年のクリスマスだといいなぁ。

Term::ANSIColor

id:sumi_zumiさんのをみて試そうとしたら、Ratingに良いサンプルがあったので、それを試す。 奇麗だ。 #!/usr/bin/perl use Term::ANSIColor; @colors = qw(black red yellow green cyan blue magenta); foreach $fg (@colors) { print color("bold $fg") . …

#歳前半、後半関数

誕生日を引数に、何歳代の前半か、後半かを出力するTTフィルター作ってんけど、 これも、コードがきに食わない。もっと、スマートにできないか。誰か教えて! sub fs_fazzy_birthday { my $date = shift; # $date must be yyyy-mm--dd format. $date =~ m/(\…

YAPC::Asia 2007

http://use.perl.org/article.pl?sid=07/04/24/0624253&from=rss http://video.google.com/videosearch?q=yapc+asia+2007&num=50&so=1&start=0週5つずつぐらいは、ビデオ見ていきたい。というか、ゴールデンウイークにまとめてみよ。

Template-Filters-LazyLoader-0.04

ガーン。0.02でテスト落ちてて、0.03で直したとおもったら、見当違いで、また直した orz...2度あることは3度ある... 怖い。

Template-Filters-LazyLoader-0.02

0.01からのアップデート。そのうちCPANにあがると思う。 0.02 2007/04/22 22:50 - use require_of() instead of require_by() when using Module::Recursive::Require because of deprecation. - now you can use base_pkg or pkg method . Module::Recursiv…

18歳以上の生年月日チェック

#歳以上の生年月日チェック、作ったんやけど、ださすぎる。あなたならどうする?? sub static_birthday { my $date = shift; my $args = shift; # この年齢以上じゃないと登録できない。 my $over = $args->{over} || 18; return 0 unless &static_date( $d…

Cache-Memcached-1.20

unix domain sockets サポートはいいんじゃないですか。 2007-04-16: version 1.20 * fix "Warning produced when flush_all called" from CDENT http://rt.cpan.org/Public/Bug/Display.html?id=22181 * support access via unix domain sockets. (Nathan N…