私はPerl 4の時代からPerlに馴染んでいますが、最初がいつだったか憶えていません。いわゆるThe Pink Camel本も手放しました(後悔しています)から、刷数の日付を確認出来ないのです。遅くとも1994年には入手していたように思うのですが、定かではありません。 1990年頃、当時の日本では(海外ではありません)、Cが家電メーカを始め、いろいろな処で市民権を完全に取得していました。C++はやっとARMが刊行されたばかりで、この先どうなるか分からない代物でした。そういう時代でしたので、おそらくPerl 4を知っていることは一種ゲテモノ(もしくは玩具)好きに思われはしまいかと、一切口にしなかったように思います。それ程(嫌味な言い方をすれば)日本は遅れていたのです。刊行早々のTC++PLの第二版を持っているのでさえ、新しい物好きだと先輩に言われたことがあるくらいでしたから、The Pin
The name Buzz Moschetti probably isn’t familiar to you. Buzz was the author of the Perl 4 database for Interbase known as Interperl. Back in those days Perl 5 was barely a twinkle in Larry’s eye and database interfaces for Perl 4 required building a custom perl binary. Buzz was one of the four people to get the email on September 29th 1992 from Ted Lemon that started the perldb-interest project wh
春が来た。コンピュータ関係のカンファレンスは春から秋にかけて行われるため、今年はどこに行こうかと考える時期でもある。ふと思い立って北米・ヨーロッパ・アジア(日本)のPerlカンファレンス、YAPCについて参加費を計算してみたくなった。 生データまずは通貨換算をする前の生データから。 YAPC::NAYAPC::EUYAPC::Asia1999USD 60 2000USD 75GBP 40 2001USD 85EUR 99 2002USD 85EUR 89 2003USD 85EUR 99 2004USD 85GBP 65 2005USD 85EUR 89 2006USD 100GBP 75JPY 40002007USD 100EUR 100JPY 40002008USD 100DKK 900JPY 35002009USD 150EUR 100 USD=米ドル、JPY=円、EUR=ユーロ、G
開発版の Perl 5.13.2 がリリースされたが、5.13.2 の目玉はなんといっても package NAMESPACE BLOCK 構文だろう。 use 5.13.2; use warnings; package Point { use Moose; has 'x' => (is => 'rw', isa => 'Int'); has 'y' => (is => 'rw', isa => 'Int'); __PACKAGE__->meta->make_immutable; no Moose; }; のように、パッケージを宣言することができるようになった。 この構文は非常に大きい変化をもたらす。 1 ファイルに複数のクラスを書くことが苦でなくなる。package NAME BOCK 構文を利用する場合、BLOCK の中はインデントすることになるため、複数パッケージを1つのファイルにか
最近、咳のしすぎであばらにヒビが入りました。 大多数の人は心配をしてくださってありがたいのですが、ごく一部の極道達がおもしろ画像を連投して笑わせてくるおかげで全治が大分先になりそうです。 こんばんは。 先日、「モバイルなプラットフォームでの OAuth Signature の検証」ってエントリーを書いた際にPlack::Middlewareとかでやるべきとか書いておいて放置していたのですが、某極道が「とっとと書かないと笑わせてあばらへし折るぞ!ごるぁ!」と脅してきたのでサクッと書きました。 GitHubに置いてあります。 Plack-Middleware-Auth-OAuth 使い方は簡単。 use Plack::Builder; my $app = sub { return [200, ['Content-Type' => 'text/plain'], ['Hello World']];
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
Damian Conway の Perl Best Practice は関数プロトタイプを非推奨扱いにしているが、一方で巷の Perl Hackers はこれを使いまくっている。このような状況が初心者を混乱させているのではないかと思い、解説することにした。 function prototype を Damian Conway の Perl Best Practice が非推奨扱いにしている理由は以下のような点だ。 Prototypes do not work on methods. Prototypes do not work on function references. Calling a function with a leading & (&foo) disables prototypes. But you shouldn't be calling functions like t
追記 この記事は Any::Moose 0.02 以前が対象です。 0.03および、現在の最新版 0.04 では MouseとMooseを挟んだ処理の挙動が以下のように変わってます。 $VAR1 = bless( { 'roles' => [], 'superclasses' => [ 'Mouse::Object' ], 'name' => 'ANY', 'attributes' => {} }, 'Mouse::Meta::Class' ); $VAR1 = bless( { 'roles' => [], 'superclasses' => [ 'Mouse::Object' ], 'name' => 'ANY2', 'attributes' => {} }, 'Mouse::Meta::Class' ); ようするに最初にuse Any::Mooseをした時にMooseがloadされ
以前、Dave Cross氏の"何故、企業はPerlを嫌うのか"を紹介したことがありました。氏の最近のエッセイはその後日譚で、"Crufty Old Perl"と題されています。要は、ある会社の幹部達による見え見えのPerl廃絶のためのソーシャルエンジニアリングが左程には効果が無かったのはよかったが、現場の開発者の内に他言語のフレームワークを提唱することが多くなっていることを憂いていらっしゃいます。 私個人の意見ですが、本当の意味で優れた開発者というのは2割あればいい方で、残りの8割は凡人もしくは駄目な開発者です。勿論、何を母集団の単位とするか議論はまちまちだし、証明出来るわけでもありません。しかし、例えば地球上の全人類を母集団とすれば、人類に本当に貢献出来る人々が2割もいれば、世界はもっと平和になったでしょうから、開発者の場合でも2割よりはもっともっと少ないのが現状でしょう。 凡人(勿論
use strict; use warnings; my (%hash, $msg); $msg = (exists $hash{key}) ? "exist" : "not exist"; print "$msg\n"; # not exist # 1階層目を参照 my $tmp = $hash{key}; $msg = (exists $hash{key}) ? "exist" : "not exist"; print "$msg\n"; # not exist # 2階層目を参照 $tmp = $hash{key}{sub_key}; $msg = (exists $hash{key}) ? "exist" : "not exist"; print "$msg\n"; # exist warningすら出ません。 当然ですけど、existsではなくて、definedでも同じです。 $
CGIをPlackで開発(2) 前のエントリ書いたら宮川さんにオススメ方法を教えてもらった http://twitter.com/miyagawa/status/10271128928plackup \ -L Shotgun -MPlack::App::WrapCGI -e 'Plack::App::WrapCGI->new(script => "/path/to/cgiscript.cgi")' だそうです!これなら全ての要件を満たせるもよう!そしてapp.psgiを作る必要ありません。 今これやってみて一つだけ問題点。多分POD入りのCGIは動かない。それと、__DATA__は見てくれるけど、__END__があると動かない。__END__さっき簡単なパッチのpull requestを送っておきました! カテゴリ 開発 タグ cgi perl plack 2
学生諸君、Perlを勉強したまえ(ただし書き付き) (はいはい、まず言語論争するつもりないから、そういうコメント禁止ね) 1. 論旨 新たな就職氷河期到来が叫ばれる昨今、就職に困っている学生さんもたくさんおろう。「技術があればチャンスはあるかも」って思う人もたくさんおろう。その際にプログラミングでもいっちょやってみっか、って思う人もたくさんおろう。 そこでとりあえず言語を選ぶよね。「就職を有利にするため」という条件をクリアするためにあなたなら何を選ぶ?Java? C#? Ruby? PHP? (ちなみに自分は大学を卒業した時点で一番得意だったのはJavaですよ) 色々選択肢はあるのは当たり前なので他の言語も排除はしないけど、僕としては自分の今持っている情報と経験から、Perlは覚えておいて損は全くない!と言い切れる。それは至極単純な理由で、需要より供給が圧倒的に少ないから。 就職情報サイト
Test Anything Protocol Perlは非常にテストを重視している言語です。連載第14回ではPerl本体のテスト数がどのように推移してきたかを、また連載第24回ではCPANモジュールの品質保証に大きな役割を果たしてきたCPANTSについて簡単に紹介しましたが、Perlとテストのつながりはそれだけではありません。CPANにはTestを名前に含むディストリビューションが500以上もあがっていますし(これは全ディストリビューション数の約2.5%にあたります)、Perlで標準的に使われているテスト形式はTest Anything Protocol (TAP)という名前を得て多くの言語に移植され、2008年からはIETFの標準化を目指した活動も始まっています――というと何やらすごいプロトコルのように聞こえるかもしれませんが、Test Anything Protocolというのは要
サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一本吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には食材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい食材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く