JPerl Advent Calendar 2008 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな?
ソースコード検索の ack がよさげな件 #catalyst でちょっと話題になっていた ack をいれてみた。CPAN シェルから install App::Ack とするだけ。 基本的には grep -r | grep -v .svn | grep -v \~ に飽きてしまった人むけのソースコード検索ツールです。gonzui などとは違いインデックスはつくらないでそのままディレクトリをトラバースして検索するので、あまり大規模だと時間がかかるかもしれませんが、中規模なプロジェクトなら問題なくいけるのでは。 デフォルトで CVS, RCS, .svn, blib といったバージョン管理ディレクトリを無視、-i, -v といった grep 由来のコマンドラインや、 --perl で perl ソースコードだけ検索、となかなか気が利いています。デフォルトのカラーリングもイケテル。 grep -
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
全国のprintデバッグ愛好家の皆様、こんにちは。VSとかEclipseとかのIDE以外でデバッガを使ったことのない僕がやってきましたよ。 最近、C言語でヒーコラ言ってる真っ最中な訳ですが、C言語だとprintデバッグがやりにくい訳で、デバッガ様の力を借りてみたくなった訳です。という訳で、巷で有名な gdb をちょっと試してみました。 基本的な使い方は、以下を参考にしてます。gdb を用いたデバッグ方法GDBウノウラボ Unoh Labs: gdbの使い方 で、なんだか Emacsからも使えるみたいなんで、試してみたんですが、これが使いやすくてびっくり。"M-x gdb" で起動すると、Emacs のソース上に、現在の行が黒三角で、ブレークポイントが赤丸で表示されます。後は、コマンドラインでの操作と同じように、s とか n でステップ実行できます。 あー、もしかして、Perl とか Rub
以下は Perl 5.8.8 のソースを元に記述しました。Perl 5.10 でもそう変わってはいないと思いますが,結構内部が変更されているので違うかもしれません。大まかには同じだと思います。 イントロダクション Perl でのファイルハンドルは内部的には [http://search.cpan.org/perldoc?IO::Handle:title=IO::Handle] オブジェクトとして保持されています。そのような記述は perl5004delta くらいでしか見つかりませんでした。ラクダ本にもなかったような。 Internal change: FileHandle class based on IO::* classes File handles are now stored internally as type IO::Handle. The FileHandle module
2008年06月03日06:00 カテゴリLightweight Languages perl - 勝手に添削 - Perl入門#1@ITPro さすがに出典が日経Linux 2003年7月号だけあって、少しトウがたってはいるけど、現在でもわずかな修正で使える記事。さすが川合さんといったところか。 第1回 Perlの文法の基本:ITpro というわけで、この記事の「現代化」Patchを。 全般 use strict;だけではなくuse warnings;も加えましょう。 さらに,調べても分からないことがあれば,メーリング・リストやユーザー・グループ*2に質問してみてもよいでしょう。 blogに書くのもアリです。あと私は使っていないけどIRCとか。 ビルトイン関数は()でくくらない方が視認性が上がります。 before: chomp($sLine); after: chomp $sLine;
Perl Mongers Perl Mongers とは、日本各地に存在する、Perl ユーザーのコミュニティのことです。各種イベントが行われていますので、是非参加してみましょう。 Shibuya.pm Fukuoka.pm Kansai.pm (@kansaipm) Yokohama.pm (@yokohamapm) Hokkaido.pm (@hokkaidopm) Nagoya.pm (@nagoyapm) Kushiro.pm (@kushiropm) Kyoto.pm (@kyotopm) Kamakura.pm Niigata.pm (@niigatapm) Sendai.pm (@sendaipm) Tokyo.pm Hachioji.pm (@hachiojipm) Chiba.pm (@chibapm) Yomitan.pm (@yomitanpm) Machida.pm
2008年03月27日03:00 カテゴリArtLightweight Languages 「同じコード」の同じって何さ - TAPのススメ 問題は、この「同じコード」の定義。 「誰が書いても同じコード」は大事なことなのか - ひがやすを blog でも、「誰が書いても同じコード」にするってのは、そもそも無理だと思うんだよね。そうやって、わざわざドキュメントをたくさん書かせても、めためたなコードを書くやつはいて、総合テストするときに、現場は燃え上がるもの。ある程度の規模以上のプロジェクトなら、どこでもそんな感じじゃないかと思います。同じ「書き方」をしなければならないのか? 結果が「同じ」ならいいのか? もし後者だとしたら、実は 重要なのは、「誰でもメンテナンスできるコード」にすること。そのために、コーディング規約は、きちんと決めてみんなで守る、それ以上は、がちがちに縛る必要はない。 すら必
神経質(A型)なPerlハッカーあるある ネタですが、実話です。 use Module; 宣言を書く時、全部ABC順にしないとイライラする。s///とかをs{}{}って書くとエスケープいらないのに、s/\\\/\\\/\\\\/g s/\\\/\\\//\\\\/gとか見るとイライラする。(追記:なんか一個抜けてた)qw// をqw()と書き直さずにはいられない。for(my $i = 0; $i < 10; $i++) とかを見ると for my $i (0..9)に書き直さずにはいされない他人からもらったファイルを開ける前はとりあえず perl -i -pe 's/\r\n/\n/g'if ( ... ) elsif (...) elsif (... ) else ... みたいなのを見るととりあえずディスパッチテーブルを書きたくなるif ($foo eq 'XXX' || $foo
-> 趣旨と注意書き -> UTF8フラグ? -> UTF8フラグとPerlIOレイヤ -> UTF8フラグのついた文字列を記述する -> Wide character in print ... -> Encode -> utf8::* -> use utf8; -> use encoding; -> use UTF8 と use encoding -> JcodeからEncodeへ -> 情報源 <- モドル 趣旨と注意書き Perl 5.8.x のUnicode 関連です。 正直、5.8.x は、ネタでしか使ってなかったので(ぉ、ちゃんといじったことがありませんでした。 使ってみると、よくわかんなくなったので、ちょっとまとめてみました。 今でもあんまりわかってないかもしれないので、内容は無保証です。 突っ込み歓迎。 Jcode、Encodeのメンテナの弾さんから、ご指摘いただいたので、
60行で作るPHP用テンプレートエンジン やってしまった・・・。 方針: PHPのように<?php・・・?>が無いのでそのまま表示と(foreach|if|unless)に対応。[% $c{title} %]で普通に表示(TTっぽい?)[# $c{title} #]でHTMLエスケープ表示package SixtyLinesTemplate; use strict; use warnings; our $VERSION = '0.01'; sub convert { return unless defined(my $str = shift); $str =~ s{&}{&}gso; $str =~ s{<}{<}gso; $str =~ s{>}{>}gso; $str =~ s{\"}{"}gso; $str; } sub include_temp
First you make a template - this is just a normal HTML file with a few extra tags, the simplest being <TMPL_VAR> For example, test.tmpl: 最初にテンプレートを作ります - これは <TMPL_VAR> のようにとても簡単な、 2・3 の特殊なタグが入った普通の HTML ファイルです。 例えば、 test.tmpl: <html> <head><title>Test Template</title> <body> My Home Directory is <TMPL_VAR NAME=HOME> <p> My Path is set to <TMPL_VAR NAME=PATH> </body> </html>
Perl OOP におけるクラスの実装方法 [ Perl ] Perl で OOP するにあたってはコンストラクタの書き方やアクセサの書き方に色んな方法があります。素で書くと package Dog; use strict; use warnings; # コンストラクタ sub new { my $class = shift; my $self = {}; bless $self, $class; return $self; } # アクセサ sub name { my $self = shift; @_ ? $self->{name} = shift : $this->{name}; } 1; あたりが定番だと思います。インスタンスフィールドをハッシュで実装して、アクセサは getter と setter を兼ねるメソッドとして定義。コンストラクタにおける初期化処理を $self->i
いつもお世話になってるあの人とかあの人とかが山口家の逆襲->perl-解説->クロージャというクロージャの解説ページをブックマークしてるのをきっかけに、 Perl のクロージャについて自分もちゃんと理解できてるのかというのを考えてみましたが、どうも微妙です。 クロージャについて、何でいまいち理解しきれてない感じがあるのかというと、クロージャがどういうものであるかは知ってるけど、クロージャをどういう時に使うと良いのかが具体的にあれとこれという感じで思い付かないからなのではないかと思った。 なので、Perl でクロージャを使ってる実装とかを見て、どんなときに使われるものなのかをリストアップして理解を深めてみよう..のコーナーです。 クラスにデータを保持するためのクロージャ 僕がぱっと思いついたのは Class::DBI の中で使われている Ima::DBI におけるデータベースハンドラのキャッ
2007年08月04日04:30 カテゴリLightweight Languages perl - 勝手に添削 - ニコニコ動画ダウンローダー スライドもなんとか上がったので、リハビリもかねて久々の添削。 Perlでニコニコ動画のflvとコメントxmlをダウンロードする (Yusukebe::Tech) さんざん既出かもしれないけどPerlでニコニコ動画のflvファイルとコメントのxmlファイルをダウンロードするスクリプト。まずは結果から。 #!/usr/bin/env perl # # $Id: nicoget.pl,v 0.1 2007/08/03 19:26:19 dankogai Exp dankogai $ # original: http://yusukebe.com/tech/archives/20070803/124356.html # use strict; use wa
サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一本吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には食材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい食材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ
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') ); と標
(2005/06/19) PAR というものを使えばperlスクリプトがwindowsの実行形式(exe)化できるらしい。 仕組みはこんな感じ。 Perlインタープリタを含む必要ファイルを全てexeにまとめる(実はzip) exeが実行されると、裏で展開して、中のPerlインタープリタ(dll)でスクリプトが実行される。 なるほどなるほどー。 いちいちActivePerlをインストールして云々とかしなくても いきなり実行できちゃうようになるわけだね!すてき! ※ただし拡張子をzipに変えるだけで、中のソースが覗けるけど で、さっそく使ってみた。ちょっと苦労した! よって以下はインストールメモだ! 現在の最新版は5.8.7.813。入れちゃダメ。 素直にこれをインストールしたら最終的にPARで作ったexeを実行した時に 「プロシージャエントリポイントPL_memory_wrapがダイナミック
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
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く