携帯アドレス、Gmail、YahooMailにメルマガが届かない場合 こちらから受信設定をお試しください。 また、購読期間内のメルマガ(有料・無料)はマイページから再送できます。 マイページをお持ちでない方は、新規にご登録ください! →informationページへ
名前 autobox::Core - Perl 組み込み関数をプリミティブ型のメソッドに 概要 use autobox; use autobox::Core; "Hello, World\n"->uc()->print(); 説明 数値, 文字列, 配列, ハッシュ, そしてコードリファレンスを操作する perl組み込み関数をラップするメソッド. 厄介なデリファレンス構文や 括弧の衝突を避けるために組み込み関数をメソッドして利用するのに便利です. autobox はオブジェクトリファレンスではないスカラーに対して メソッド呼び出しを提供します. 数値, 文字列, 数値を含んだスカラー, 文字列を含んだスカラー, 配列リファレンス, ハッシュリファレンス, そしてコードリファレンス全てオブジェクトとして動作します. autobox は perl にこの機能を提供しますがそれ自身では 呼
今回のテーマ 今回は、Perlのattributeという仕組みの詳細と、そのattributeを利用したClass::Componentのpluginについての解説、pluginの作成方法といった話題を取り上げます。 サンプルアプリケーション 本連載では、プラガブルなモジュールを作製するという事を考えて、Gopperという実際に実行可能なサンプルアプリケーションを元に解説を行ないます。GopperはCodeRepos上のsvnリポジトリに置いてあるので各自checkoutしてください。 svn co -r 455 http://svn.coderepos.org/share/lang/perl/Gopper/trunk Gopper attributeとは attributeとは、Perlのサブルーチンや変数に属性を定義して、サブルーチンとしての挙動を標準から変更したり、どのようなサブルー
CPANモジュールImagerで、新聞社とかがやってるようなコピーライトのロゴを写真に入れられる。 この辺を参考に ・use Imager; - 今日のCPANモジュール[まぐまぐ!] ・Elementary, ... それ、Imager で ・Webから画像をとってきてリサイズする処理のベンチマーク (Yusukebe::Tech) こんな感じで右上に入って、result.jpgとして出来た。 ■Imagerインストール coLinux版のDebian 4.0 etchの場合。まずaptで画像処理関係を入れておく# apt-get install libjpeg-dev libtiff-dev libpng-dev giflib-dev libttf-dev libfreetype6-devんでcpan shellでinstall Imager ■画像を準備してプログラミング
inetd や xinetd (以下 inetd) はインターネットサービスをデーモン化するのに共通している処理を担い、ほとんどの時間をアイドル状態で過ごすその手のサービスに必要なリソースを節約する役割を果たします。 inetd のひとつ面白いところは、inetd でサービス化したいプログラムの標準入力/標準出力がクライアントソケットの入出力に接続されるところです。例えば daytime 相当のサービスを自分で作ろうと思った場合 #!/usr/local/bin/perl # daytime.pl use strict; use warnings; use DateTime; use IO::Handle; STDOUT->autoflush(1); STDOUT->printf( "%s\n", DateTime->now(time_zone => 'Asia/Tokyo') ); と標
アクセサ(2) AUTOLOAD でアクセサ - ぱるも日記 アクセサの作成方法はいろいろあるけど自作するならAUTOLOADとか使わずに、 package Hoge::Class; use strict; for my $method (qw/age name tel hoge/) { my $code = sub { my $self = shift; $self->{$method} = shift if @_; return $self->{$method}; }; no strict 'refs'; *{$method} = $code; } って感じでクロージャと型グロブで定義すればいいかと。 AUTOLOAD使うなら使うで、初回呼び出し時にメソッド定義してしまうのがセオリーなんで、 二度目以降はAUTOLOADが呼び出されなくなるから遅いという問題は解決するかと。 sub A
2007年04月23日22:45 カテゴリLightweight Languages perl - 万能なnewの書き方 Perl 5のOOは、慣れてしまうと簡単だ。 継承とか考えずに、普通にクラスを作りたければ、必要なのは以下の二行だけ。 package Klass; sub new { bless {} }; これだけでは何もできないので、とりあえずnameというアクセサーを追加してみる。これだけ。 sub name { my $self = shift; $self->{name} = shift if @_; return $self->{name}; } しかし、上の形式だと、継承をサポートしていない。だから、 package Klass; sub new { bless {} }; package Klass::Sub; our @ISA = qw/Klass/; # new
WEB+DB PRESS Vol.38 の見本誌が届きました。連載も今回で7回目。今回は POE の話の後編です。複数の HTTP サーバーに非同期で同時アクセスするクライアントプログラムを POE::Component::* に頼らずつくり、その後 POE::Component を紹介しつつ IRC bot を作る、という内容になってます。先日の前編の vol.37、それから先日の YAPC::Asia の資料とあわせてお読みいただけると理解が深まるかなと思います。 今月号は新連載が色々始まってたりして関心が高いわけですが、断固guy 小飼弾さん (http://blog.livedoor.jp/dankogai/) の Alpha Geek に逢いたいのゲストがIT戦記の id:amachang とあの"はまちちゃん"で、はまちちゃんの写真が載っていました。はまちちゃんの顔が見たい人は
2007年04月19日15:00 カテゴリLightweight Languages perl - Regexp::Assembleのススメ というわけで、Regexp::Assembleのご紹介。 PERL HACKS(日本語版) [英語版] odz buffer - それ Regexp::Assembleん?ループ云々を抜きにして、こういうのは Regexp::Assemble の出番じゃないの? すでにPerl Hackers御用達のモジュールとなっていますが、まだ知らない方もいらっしゃるかも知れないので。 何をするモジュールか、といえば、以下を見れば一目瞭然でしょう。 Regexp::Assemble - Assemble multiple Regular Expressions into a single RE - search.cpan.org use Regexp::Asse
2007年04月18日06:45 カテゴリLightweight Languages perl - to goto or not to goto, that's the continuation Perlでもgotoを使えば、本当の継続(continuation)が可能であることを示す。 継続ってなんのことだかさっぱりわからない一は、以下にあらかじめ目をとおしておいていただきたい。 なんでも継続 なんでも継続、Perl で。 : torus solutions! 404 Blog Not Found:継続は力なり Tociyuki::Diary - Perl 5.8 で似非継続 Perl 5のgotoには、3種類ある。 goto LABEL こちらはCなどで見られるgotoと等価である。 goto END; print "Hello\n"; END: print "Goobye\n"; G
2007年04月12日01:30 カテゴリLightweight Languages perl - warn()とdie()の振る舞いを変更する こういった場合の対処法です。 shag の日記 - inetd 経由で起動されても peeraddr は取得可能 ところで Perl で inetd 起動のスクリプト書くと STDIN から入力を読み取って, STDOUT に出力すれば良いだけなんだけど、実は STDERR も inetd を通してネットワークストリームに出力されるので use warnings; する人は注意が必要です。これは、例を見てもらうのが一番速いでしょう。 #!/usr/local/bin/perl use strict; use warnings; use Fcntl; # for sysopen our $LOGFILE = 'warn.log'; warn $0;
2007年04月09日16:15 カテゴリLightweight LanguagesTips perl - パッチなしでパッチする Perlに限らず、動的に名前空間を書き換えることができる言語ならコンセプトはパクれるはずのtips. 状況 人様が書いたモジュールにバグ発見! バグ直した パッチも送った でも作者が$VERSION++してくれない さあどうする? オレバージョンのモジュールをつなぎでつかう? でも標準でないものをイントールするのはいやん サブクラス作ってメソッドをオーバーライドする? でも問題のモジュールが継承をサポートしているとは限らないし そもそも問題のモジュールOOじゃなかったりもするし 代替モジュールを書いてCPANにうp? -- i.e. JSON::* でも元々のモジュールがあまりによく使われているし うpは簡単でもサポート大変そうだし.... 実例 See Al
« グルメ検索サイトは奥深い | トップページ | 八王子みなみ野 横濱屋 牛レバニラ炒め » CPANを使い始めにくいって聞いた [Perl][日記] このまえのブログ合宿で 「CPANのモジュールをインストールとか訳がわかんない」 と聞いて、あー、確かに昔は訳が分からなかったなーと思った。 今も分かってない部分は多いですけど。 Perlを始めたころに困ったのは、サンプル集に「use XML::Simple」と 気軽に書いてあるのでuseしてみたら、XML::Simpleなんて見つからないよ とエラーメッセージが出てしまったことかな。 研究室のPCだとモジュールが入っていたけど、 自分の環境にはモジュールが入っていなかったみたい。 そもそも、そのころはCPANモジュールが足りないことも分からなくて 本当に困り果ててBlog Hacksを読んだ気がする。 そのころはプ
2007年03月27日00:15 カテゴリLightweight LanguagesTips perl - File::Find::Identical それってPerlで。 ファイル名が違っても中身が同じファイルを探してくれる『NoClone』 | P O P * P O P そこで便利そうなのがこのNoCloneです。重複したファイルを探してくれるツールです。そしてこれが便利なのは、きちんと中身をみて判断してくれる点。すでにその名もずばりのFile::Find::Duplicatesというのも存在しているのですが、速度的にも問題があるし、APIも気に食わないので、File::Find::Identicalというものをこさえてみました。 例えば、重複ファイルをハードリンクに全て置き換えるには、これでOKです。 dupe2link #!/usr/local/bin/perl use stri
Yahoo!UIライブラリとjQueryをミックスしたJavaScriptライブラリ「DED|Chain」 次の記事 ≫:ページに今まで見たことのないような背景画像をCSSとJavaScriptで設定「P... JavaScriptコードをブックマークレットに変換するPerlスクリプト「JavaScript Bookmarklet Builder」 2007年03月22日- Daring Fireball: JavaScript Bookmarklet Builder So a bookmarklet is a little JavaScript script that’s intended to be run from a web browser’s bookmarks bar or menu. JavaScriptコードをブックマークレットに変換するPerlスクリプト「JavaScri
2007年01月15日05:00 カテゴリLightweight Languages perl - 半角スペースを自動で入れる 是非はさておき、入れるのであれば自動で入れたい。というわけでこちら。 portal shit! : 半角スペース入れてますか? 半角スペース入れるべき、入れないべき?spacer.pl #!/usr/local/bin/perl use strict; use warnings; use Encode; my $east = qr/(?!\p{M})(?:\p{Han}|\p{Katakana}|\p{Hiragana})/; my $west = qr/(?!\p{M})(?:\p{Latin}|\p{Greek}|\p{Cyrillic})/; binmode STDOUT, ':utf8'; while(<>){ $_ = decode 'utf8', $_
スクリプト言語の比較 *1 *2 *3 *4 *5 *6 *7 コメント 行の継続 定数 未代入の変数へのアクセス 変数の展開 入出力 出力 フォーマット出力 出力先変更 標準入力 __END__ 演算 +1 整数/整数 負数の除算 文字列 真と偽 多重代入 多岐分岐 関数 関数 関数引き数 関数引数に対する副作用 関数のデフォルト引数の値の評価タイミング 関数のデフォルト引数にコンテナ型を使用した場合の振舞 関数戻り値 関数の再帰 関数の別名 関数定義内関数定義 関数の引数の順番 関数にファイルハンドルを渡す オブジェクト指向 クラスの定義 インスタンスメソッドの定義 メソッドのクラス内での利用 インスタンスメソッドの可視性 インスタンスメソッドの追加 インスタンス変数 インスタンス変数の可視性 インスタンス変数の追加 クラス変数 クラスの継承 多重継承 スーパクラスのメソッド呼び出し
For Belorussian translation of this page, see http://websitehostingrating.com/libs/perl2php-be/ @a = (); @a = ( 'xx', 11, 33.5, ); @a = 12..33; $a[2] = 'something'; $len = scalar(@a); # or $len = @a; @a3 = ('xx', @a1, @a2); ($x, $y) = @a; $a[@a] = 'new'; # push push pop shift unshift splice foreach $i (@a) { .. } $a = array(); $a = array( 'xx', 11, 33.5, ); $a = range(12,33); $a[2] = 'something';
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く