Perl is a programming language suitable for writing simple scripts as well as complex applications — see https://www.perl.org. Strawberry Perl is a perl environment for MS Windows containing all you need to run and develop perl applications. It is designed to be as close as possible to perl environment on UNIX systems. It includes perl binaries, compiler (gcc) + related tools, all the external lib
Class::Accessor::Fast(以下 C::A::F)を使っているクラスで、例えば Role っぽいものを表現したくなったりして、Mouse::Role 使いたい!Mouseに移行しようかな、みたいなことがあったりします。 この2つは機能的にもだいぶ違うものでもちろん簡単には比較できません。Mouse の場合には 単純にアクセサを追加するだけじゃなくて、読み書き権限の制御や方を用いたvalidation等よりきめ細かい制約を持つクラスを作ることが可能になります。 なので、その機能の代償として単純なクラスでも当然遅くなります。ある程度はしょうが ないし、 そのコストを払う価値があれば問題ないのですが、どれくらいのインパクトなのかは知っ ておく 必要があると思います。とても小さなクラスで簡単なベンチマークを取ってみました。 以下の環境で行ないました。 Mac OS X 10.6 C
NAME SYNOPSYS INTRODUCTION Setting DESCRIPTION Class Document Class Condition Class Result Class Database EXAMPLE Gatherer Searcher LICENSE NAME Perl Binding of Hyper Estraier SYNOPSYS use Estraier; INTRODUCTION Hyper Estraier is a full-text search system for communities. This is a package implementing the core API of Hyper Estraier ( http://hyperestraier.sourceforge.net/ ), including native codes
PerlのOpenIDクライアントであるOpenID-Liteをデベロッパリリースしました。 http://search.cpan.org/~lyokato/OpenID-Lite/ OpenID Enabledのruby-openidを参考に、OpenID2.0に準拠させてあります。 http://openidenabled.com/ 特徴 用語を2.0のspecに出来るだけ合わせた。 DH-SHA256, HMAC-SHA256の対応 Crypt::DH::GMPの採用(http://mt.endeworks.jp/d-6/2008/04/crypt-dh-gmp.html) XRI::Resolution::LiteによるXRI inameでのディスカバリのサポート(http://d.hatena.ne.jp/ZIGOROu/searchdiary?word=%2a%5bXRI%5d
仕事で Benchmark モジュールを使う機会があったので、使い方&結果情報の読み取り方をまとめてみました。基本的には perldoc 読めばオールオッケーでしょ?と思っていたのですが、docs では結果情報の読み方についてはあんまり触れられていなかった為、ガッツリ補足してみました。 基本 とある2種類のコードの実行速度を比較計測するには以下のようなソースを記述します: bench.pl #!/usr/bin/perl use strict; use warnings; use Benchmark qw(timethese cmpthese); sub hogeLoop1 { my $str; for my $i (1 .. 10000){ $str .= $i } } sub hogeLoop2 { my $str; for my $i (1 .. 20000){ $str .= $i
「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 ※引っ越し先ブログへのリダイレクトサービスは2024年1月31日で終了いたしました。 BIGLOBEのサービス一覧
サボっていた早朝ジョギング@駒沢公園を再開して2週間たち、やっと抜かれる数より抜く数の方が増えてきたmikioです。今回は、PerlやRubyのハッシュの代用としてTokyo Cabinetを使うことでメモリ使用量を激減させられることを説明します。 抽象データベースAPI Tokyo Cabinetには抽象データベースという機構があり、先日、そのPerlとRubyのバインディングをリリースしました。それを使うと、各種言語のハッシュとほぼ同じような共通したインターフェイスで、以下のデータ構造を利用することができます。 オンメモリハッシュ:各種言語に標準のハッシュと同じく、メモリ上でkey/valueの関係を表現する。 オンメモリツリー:メモリ上の二分探索木としてkey/valueの関係を表現する。 ファイルハッシュ:いわゆるDBMとして、ファイル上でkey/valueの関係を表現する。 ファ
Image::Magickは汎用的な画像処理を行えるという利点があるが、速度的にはあまり早くない。 たとえば大量にアップされる一眼レフなどで撮影した大きなサイズのJPEGからサムネイルを生成するというような状況においては、処理速度がボトルネックになってしまうという問題がある。 ところが、どうやらインスタンス生成時にsizeオプションを指定するだけで処理速度が劇的に向上するらしい、ということを同期のエンジニアrai氏から聞いたので試してみた。 ■ ベンチマーク内容 元画像 : http://photozou.jp/photo/show/228995/18479223 (元画像4272x2848を使用、カメラ小僧Gさんの画像をお借りします) 生成画像: 横160pxに固定し、アスペクト比を維持 サムネイル50枚の生成時間を比較する。 ■ 検証コード #!/usr/bin/perl use st
久しぶりに Perl モジュールを作成してみた ので、せっかくなので CPAN にアップロードしてみました、の手順をメモ。 もともと、2002年に CPAN へのアップロードサイト PAUSE 用のアカウントは 作ってあったけど、実際に自作モジュールを CPAN で公開してもらったことはなかったので、 実は今回が初挑戦でした。 もし↓に間違っている点がありましたら、ご指摘いただけると幸いです。>識者の方 配布用のモジュールを作成する まず第一歩は、 perlnewmod - 新しいモジュールを配布するには を熟読すること。 モジュール .pm ファイルと、 そのアーカイブ .tar.gz ファイル を作成するのが最初です。 中身は以下のようなファイル構成になりました。 lib/XML/TreePP.pm # Perlモジュール本体 Makefile.PL # ほぼh2xsで生成したそのまま
[Perl] 作成したモジュールをCPANで公開する手順のエントリーとid:yappoさんのアドバイスの元、無事に申請することができました。 数日後に申請結果がでるかもしれないとのことです。 一番大切な最後の項目の内容にひどいネタ的なことを書いてしまったので、すごい勢いで落とされるかもしれません;; 手順は以下の通りです。 1.PAUSE: The CPAN back stage entranceにアクセスする。 2.Request PAUSE accountページ内のフォームに必要事項を記載する。 Full name フルネームをローマ字 Email パスワードを送ってもらう為のEmailアドレス Web site CPANにアップロードした時点で公開される、個人WEBサイトのURL Desired ID ftp://ftp.perl.org/pub/CPAN/authors/id/Y/
Perlにはtryとcatchの例外処理構文はありません。 必要なら自分で書きます。(もちろん普通はeval{...};if($@){...}で十分です) #!/usr/bin/perl use strict; use warnings; use Switch; ## try...catch構文を定義(ラクダ本???ページより) sub try(&$){ my ($try, $catch) = @_; eval { &$try }; if($@){ local $_ = $@; &$catch; } } sub catch(&){ $_[0] } ## 使用例 try { die "ERR1"; } catch { switch ($_) { case /ERR1/ { print "ERR1 !!!\n" } case /ERR2/ { print "ERR2 !!!\n" } else
FUDを広げるのは誰の特にもならないと思うんだ。 以下、まぁ書き散らかしです。あんまり推敲してません。すまそ。ちなみに、下記記事に対するブクマはDISも多いけど、素直な反応もちらほらあるようで興味深い。 僕にとってのJavaは2001年に終わってますが・・・。同じ事何回も書かなくちゃいけない言語なんて死んだも同然ですよ。ライブラリもちらばってて何がどこにあるのかわかんないし。 って、書くのは簡単です。多分元記事をテンプレ化してほぼ同じ事をどの言語に対しても僕は書けます。 ただ、エンジニアという職種の人がそんなことしてるのはどうかなぁ、と。エンジニアの使命を問題を解くことです。何でつまづいたかとか、なにがむずかしかったとか、何ができなかったとかそういう事をちゃんと書いて欲しいなと思う。CPANのアップロードとかも状況に対しての認識もなく、「回数」という一面だけで判断をばっさりしてていいのでし
Pod::Usage, pod2usage() - 埋め込まれた pod ドキュメントから usage メッセージを表示 名前 Pod::Usage, pod2usage() - 埋め込まれた pod ドキュメントから usage メッセージを表示 概要 use Pod::Usage my $message_text = "This text precedes the usage message."; my $exit_status = 2; ## The exit status to use my $verbose_level = 0; ## The verbose level to use my $filehandle = \*STDERR; ## The filehandle to write to pod2usage($message_text); pod2usage($exit_
Account Suspended This Account has been suspended. Contact your hosting provider for more information.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く