タグ

programmingとperlに関するstealthinuのブックマーク (51)

  • Perlの開発環境構築メモ - hide-k.net#blog

    最近、社内で初対面の人に自己紹介すると「あ!twitterでfollowしてます。AKB好きな方ですよね?」と辱めを受けてることが多くて色々反省しています。 こんばんは。 先日、会社で新しいMac Book Airを支給されて開発環境を再構築して、せっかくの機会だったので自分の環境をメモりました。 YAPC::Asia 2010でtokuhirom氏の「モダンな Perl5 開発環境について」で大きく取り扱われたり、あちらこちらで散々エントリされていますが毎回ぐぐるのも面倒なのではっときます。 0. 下準備 gccや各種ライブラリが必要なので何はなくともXcodeをインストールします。僕はiOS SDK付きをダウンロードしてインストールしました。 ついでにhomebrewもインストールしておきます。 sudo dscl /Local/Default -append /Groups/staf

    stealthinu
    stealthinu 2010/11/19
    perlbrewとかcpanminusとかcpan-outdatedとか。なんかぜんぜん知らない… ついていけてねえわぁ。
  • Perl 5は生き返った! 新たな前進を再開したPerl

    Perl 5コアの開発はここ数年、負の連鎖が続いていた。リリースは滞り、開発者は去り、将来の見通しはどんどん悪くなっていった。ここで話すのは、Perl 5の開発におけるこの悪い流れがどのようにして、楽しく、前向きで、エキサイティングなものに変わったか、というストーリーだ」 Perl 5のコアデベロッパーで、ActiveStateの技術リードでもあるJan Dubois氏は、4月13日に同社のブログにポストしたエントリ「Perl 5 is Alive」で、このように書き出しています。 Perlは、機能が高度化し複雑になったPerl 5までのバージョンを見直し、新たに作り直そうと、2000年にPerl 6の開発が始まりました。しかしPerl 6は10年たったいまでもリリースされておらず(今月に最初のバージョンがリリースされるといわれていましたが…)、一方でPerl 6の開発が始まってからは、

    Perl 5は生き返った! 新たな前進を再開したPerl
    stealthinu
    stealthinu 2010/04/17
    Perl5と6は別のPerlとして独自に進んで行くことになった。そして停滞していたPerl5は新しい体制で再度活発になりつつあると。確かに最近はPerl本体ではなく外部モジュールがPerlを進化させていた。
  • 現代的なPerlの記述方法一覧 - Perl入門ゼミ

    Perl › here Perl5.8以降における標準的なPerlの書き方を解説します。 インターネットで検索するとPerl4のころの古い記述がたくさんあります。また書籍などの多くもPerl4の記法で書かれています。Perl4の記法は複雑になりやすく間違いを生みやすいのでこれからPerlを書く人はPerl5の現代的な記法で記述することを強くお勧めします。 strictプラグマとwarningsプラグマ (必須) strictプラグマとwarningsプラグマを有効にします。 use strict; use warnings; use strict;とuse warnings;の2行はスクリプトの最初に必ず記述してください。これらはPerlの文法チェックを厳しくするためのものです。面倒だという軽い気持ちでこれを記述しないと後々当に面倒なことになります。 use strict;とuse wa

    現代的なPerlの記述方法一覧 - Perl入門ゼミ
    stealthinu
    stealthinu 2009/11/09
    openは3引数の使い方をするのが良いんだな。なんか他にもいろいろ参考になった。
  • YAPC::Asia 2009 / Asynchronous Programming for (A)synchronous Communication

    TopicsPlaceHolder SectionTitlePlaceHolder TIME rest time current/total

    stealthinu
    stealthinu 2009/09/15
    すごいおもしろかった。CoroかわいいよCoro。あとプレゼン(資料)もうまい。図とかないけど箇条書きで書いてあることだけでも結構わかりやすい。
  • よく使用する関数・標準モジュール一覧 - Perl入門ゼミ

    Perl › よく使う関数・モジュール よく使用する関数・標準モジュールの一覧です。これらの関数を覚えておけば、Perlをより便利なものにすることができます。詳細な解説は避け、簡単なサンプルを紹介しています。戻り値のあるものについては$retという記号で表しています。 また、よく使用する特殊変数、標準モジュールについても、解説しています。各項目から、関数の詳細にもリンクしていますので、便利にご利用ください。 数学関数 文字列操作 配列操作 ハッシュ操作 ファイル入出力 ファイル・ディレクトリ操作 時刻・時間 その他の重要な関数 関数とモジュールのドキュメントの調べ方 よく使用する特殊変数 よく使用する標準モジュール 数学関数 abs 絶対値を求めるにはabs関数を使用します。 $ret = abs $num; abs(-3)は3になります。 sqrt 正の平方根を求めるには、sqrt関数を

    よく使用する関数・標準モジュール一覧 - Perl入門ゼミ
    stealthinu
    stealthinu 2009/09/07
    perlでよく使う関数とかモジュールだけ抽出して紹介。
  • サンプルコードによるPerl入門

    文字列 数値をASCII(アスキー)コードに対応する文字に変換するには、chr関数を使用します。 #!/usr/bin/perl use strict; use warnings; # ASCII文字コードでは65,66,67はそれぞれ 'A','B','C'に対応する。 my $a_num = 65; my $b_num = 66; my $c_num = 67; print chr( $a_num ), "\n"; print chr( $b_num ), "\n"; print chr( $c_num ), "\n"; __END__ 続きを読む

    stealthinu
    stealthinu 2009/07/23
    現代的な逆引きPerlみたいな感じ
  • regexp - ^$でなくて\A\zを使おう : 404 Blog Not Found

    2009年03月09日00:30 カテゴリLightweight LanguagesTips regexp - ^$でなくて\A\zを使おう まずは回答から。 正規表現で「制御文字以外」のチェック - ockeghem(徳丸浩)の日記 文字エンコーディングの妥当姓 制御文字(\x00〜\x1f, \x7f)のチェック 文字列長のチェック このうち後ろ二つを正規表現として書くにはどうすればいいかを考えていました。 こういう時には、「全文字がOKならOK」と考えるのではなく、「一文字でもNGならNG」と考えると楽になります。それは「スペースと非制御文字以外」なのですから、/[^ \S]/が求めていた正規表現で、=~ではなく!~が使うべき演算子ということになります。全角スペースもOKにしたければ、/[^ \x{3000}\S]/。[追記参照] [Run via Codepad] #!perl -

    regexp - ^$でなくて\A\zを使おう : 404 Blog Not Found
    stealthinu
    stealthinu 2009/03/09
    制御文字をはじく
  • 『モダンPerl入門』感想 - Kentaro Kuribayashi's blog

    id:lestrratさん期待の新刊『モダンPerl入門』をさっそく読みました。結論からいうととてもいいで、他の言語はよく知っててイケてるコード書きまくりだけどPerlはよくわからないというひと、もっとPerlのことを知りたいひと、昔やったけど最近の事情はどうも知らないというひと、様々な方にとってマストバイな一品に仕上がっていると思いました。もちろん、僕自身にとってもいろいろ知ることが多くて、とてもためになりました。 以下、自分が実践できてるかどうかをまったく度外視して、あれこれと書いてみました(たまには書評の真似事をしてみたいブーム)。 モダンPerl入門 (CodeZine BOOKS) 作者: 牧大輔出版社/メーカー: 翔泳社発売日: 2009/02/10メディア: 大型購入: 25人 クリック: 506回この商品を含むブログ (113件) を見る よいコードとは よいコードとひ

    『モダンPerl入門』感想 - Kentaro Kuribayashi's blog
    stealthinu
    stealthinu 2009/02/10
    Moose利用。『第8章「知っておきたいC APIとXSの書き方」』。これはかっとこう。
  • 正規表現に見切りをつけるとき

    Perl, Rubyなど手軽に使えるプログラミング言語に慣れてくると、あらゆるテキストデータの処理に正規表現(regular expression)を使ってしまいがちです。 けれど実は、正規表現の処理能力を超えるフォーマットというのが存在します。その典型的な例が、XMLやJSONのように、入れ子になったデータフォーマットです。

    stealthinu
    stealthinu 2009/01/28
    JSONみたいな構文解析が必要なものは「ANTLR」を使うと便利
  • Higher-Order Perl

    by Mark Jason Dominus Order Higher-Order Perl online from Powell's Books Download full text here There are three versions available. You have your choice of structure or presentation, but not both. License reminder Higher-Order Perl is copyright ©2005 by Elsevier Inc. Unauthorized reproduction or distribution is absolutely forbidden. You may download the book for your personal use, but you may not

    stealthinu
    stealthinu 2008/12/10
    英語。まあソース読めばある程度わかるだろうが、結構大変そう。
  • Perl 5 今昔 - Perl-users.jp

    前は王道だったあの書き方も最近ではこうかな、というもの集です。 一般編 oldtype としたものもたいていは動きますし、環境の都合や軽量だなどの理由で普通に使われたりもします。そのへん勘違いなきよう。 CPANモジュールの検索 自動リダイレクトされるので知ってると思いますが。 oldtype: search.cpan.org modern: MetaCPAN CPANモジュールインストール oldtype: perl -MCPAN -e shell modern: cpan post modern: cpanm Module OR マッパー oldtype: Class::DBI, DBIx::Skinny modern: DBIx::Class, Data::ObjectDriver, Teng, Aniki テンプレートエンジン oldtype: HTML::Template, Te

    stealthinu
    stealthinu 2008/11/18
    これは勉強になる。もろoldtypeだったわ…
  • I, newbie » POEによるevent-drivenなPerlプログラミング その1

    POEはevent-drivenなmultitasking frameworkです。最近では名前こそ知られてきたものの、(上級者を除くと)広く使われてはいません(ただし歴史は長いし、採用事例もたくさんあります)。なぜかというと、かなーり奥が深くて、ドキュメントが膨大で、しかもソースコードの上から順に実行される一般的なPerlプログラムと大きく異なるイベント駆動なフレームワークだからでしょう。自分も、「なんかPOEってすごいらしいよ」と耳にしてから少しずつ勉強していたんですが、どーも理解が進まなくて苦労しました。そんな最初のハードルを低くするような文書が欲しかったので、書いてみることにします。 POEは、event-drivenなプログラムに最適です。event-drivenなプログラムとは、何らかのイベントが起きたらなんらかの処理をする、そういうプログラムです。例えば、GUIアプリケーショ

    stealthinu
    stealthinu 2008/08/20
    POE Perlでイベントドリブンなスクリプトを書くためのフレームワーク。なんかに使ってみたいけど、何書くか。
  • 自作pmをuse libする - 半径5メートル

    下にlibとかつくってそこにおいた自作pmをuseするとき、相対パスで呼び出してしまうと実行ディレクトリが違う場合(cronでまわしたりとか)に都合が悪かったりします。 そこで、以下のようにBEGINブロック内でスクリプト自身のパスをとってきてからuse libとかしてるんですが、このやり方おかしかったりしないんだろうか。もし、もっとこうした方がいいとかあればぜひお教え下さい。 ├ main.pl ├ lib └ Hoge └ Foo.pm#!/usr/bin/perl use strict; use warnings; use File::Basename; my $w_dir; BEGIN { $w_dir = dirname $ENV{_} } use lib "$w_dir/lib"; use Hoge::Foo; my $foo = Hoge::Foo->new("tester0

    自作pmをuse libする - 半径5メートル
    stealthinu
    stealthinu 2008/07/16
    FindBin::libs
  • I, newbie » Mooseによるオブジェクト指向Perl

    Mooseは”an extension of the Perl 5 object system”だそうで、なんかすごいらしい。使ってみるとattributeやaccessorの追加も簡単で、型の確認も自動でやってくれてrobustなclassを作るのに便利。attributeがarrayやhashのreferenceだったら、contextに応じて自動的にdereferenceしてくれるとか、extendやoverrideがやりやすいとか、他にもいろいろあるらしい。Mooseは自動的にhash-basedのobjectを作ってくれる。methodを追加する方法も古典的なPerl5のOOPと同じ。 package Foo; use strict; use warnings; use Moose; sub say { my ($self, $str) = @_; print "$str\n";

    stealthinu
    stealthinu 2008/06/09
    うーむ、便利そうなのはわかるんだが、ちょっとついていけてない… 実際にコード書いてみないとだめだなこれは。
  • MooseX::Daemonizeがセクシーすぎる件について - D-6 [相変わらず根無し]

    MooseX::Daemonizeがセクシーすぎる件について さて、すっかりMoose厨となりつつある私ですが、この度デーモンスクリプトを書くことになりましたのでMooseでこれをするのは何がいいかなと考えていたわけです。したらなんでもありますな、CPANは。MooseX::Daemonizeですよ、奥さん。 考え方としては、スクリプトの書式をコントロールするオブジェクトをまず作ります。 package MyDaemon; use Moose; with 'MooseX::Daemonize'; コマンドラインから受け取るオプション等はこのオブジェクトの属性として指定します。 has 'option1' => ( is => 'rw', isa => 'Str', required => 1 ); has 'option2' => ( is => 'rw', isa => 'Bool',

    stealthinu
    stealthinu 2008/06/09
    うほ、これは便利すぎる。これはmooseをもちっとフォローしとかないと。
  • Perl で utf8 化けしたときにどうしたらいいか - TokuLog 改メ tokuhirom’s blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    stealthinu
    stealthinu 2008/04/08
    Devel::Peekでutf8のフラグが付いてる文字列か見ることが出来る
  • perl - 木を痛めない枝チェック : 404 Blog Not Found

    2007年10月12日00:00 カテゴリLightweight Languages perl - 木を痛めない枝チェック 確かにこれは悩ましい。 [を] Perl の defined と exists それはそうと、やっかいなのが、ハッシュでツリーを扱うとき。 一度でも $a->{"a"}->{"b"} を見に行くと、 $a->{"a"} が存在するようになっちゃうんですよね。 確認するためにアクセスしただけなのに、 途中ノードができちゃうなんてちょっとなあ…。 念のために解説すると、こういうことです。 use strict; use warnings; use Data::Dumper; my $a = {}; # 空っぽのはずが print Dumper($a); print exists $a->{b}{c}; # { b => {} } となっちゃう print Dumper($

    perl - 木を痛めない枝チェック : 404 Blog Not Found
    stealthinu
    stealthinu 2007/10/15
    existでハッシュのハッシュを存在確認するとき、余計な空ハッシュを作らないための関数。
  • Tenjin - the fastest template engine in the world - kuwata-lab.com

    Tenjin News (2012-02-16) pyTenjin 1.1.0 released (2011-11-27) rbTenjin 0.7.1 released (2011-11-24) rbTenjin 0.7.0 released (2011-04-29) pyTenjin 1.0.2 released (2011-02-22) pyTenjin 1.0.1 released (2011-02-21) pyTenjin 1.0.0 released Introduction Tenjin is a very fast and full-featured template engine available in several script languages. How fast Tenjin is? The following is a result of benchmark

    stealthinu
    stealthinu 2007/08/16
    マルチ言語対応のテンプレートエンジンということでいいかと思ったんだが、(PHPみたいに)テンプレート内に言語埋め込みみたいな感じになるみたいだから、あんまりかなあ?サンプルがわかりにくいだけ?
  • PHPのpreg_match_all()関数はとっても便利なんですが、それをPerlに移植したいと思っています。…

    PHPのpreg_match_all()関数はとっても便利なんですが、それをPerlに移植したいと思っています。正規表現にマッチする文字列を2次元の配列に格納して、しかもその個数を返してくれるようなPerlのサブルーチン、どっかにありませんか?

    stealthinu
    stealthinu 2007/06/12
    preg_match_all互換っぽい関数。これjkondoが答えてる!
  • Algorithm::Diff - 2つのファイル/リスト間での'気の利いた'差異を求めます。 - perldoc.jp

    名前¶ Algorithm::Diff - 2つのファイル/リスト間での'気の利いた'差異を求めます。 概要¶ use Algorithm::Diff qw(diff sdiff LCS traverse_sequences traverse_balanced); @lcs = LCS( \@seq1, \@seq2 ); @lcs = LCS( \@seq1, \@seq2, $key_generation_function ); $lcsref = LCS( \@seq1, \@seq2 ); $lcsref = LCS( \@seq1, \@seq2, $key_generation_function ); @diffs = diff( \@seq1, \@seq2 ); @diffs = diff( \@seq1, \@seq2, $key_generation_function

    stealthinu
    stealthinu 2007/05/28
    diffモジュール