Perlに関するpapixのブックマーク (57)

  • C による Perl 拡張入門(

    現状、稿ははげしくかきかけです。フィードバックをおまちしております。 はじめに† Perl で C の拡張がスラスラと書けたら……。C の拡張がスラスラ書けたら、ネイティブのバインディングもスラスラ書けるし、ホットスポットを C で最適化するなんてこともお手の物。書けたらいいけど、XS ってなんかむずかしそう……。 ちがうんです! 今までの XS の教え方がまちがっていたんです!この教材をつかえば、誰でも簡単に今すぐに XS を書けるようになるんです。Perl の C 拡張を書いて同僚や上司を アッー! と言わせちゃおう! この教材では XS のややこしい機能をつかわずに、Perl の C 拡張を書く方法を伝授!初心者でもすぐに C 拡張が書けるようになるぞ! 前提知識† 稿では一般的な C の知識および Perl の知識を読者がもっていることを想定しています。XS の知識や Perl

    C による Perl 拡張入門(
    papix
    papix 2013/10/26
    最高っぽい.
  • これからのPerlプロダクトのかたち(YAPC::Asia 2013)

    This document summarizes a presentation about a new way of developing Perl applications and the future of gperl, a fast Perl-like language. It discusses compiler modules for lexical analysis, parsing, and code generation that were originally developed for gperl and can now be used to build various tools and applications. These include a transpiler to run Perl 5 code in web browsers, a framework ca

    これからのPerlプロダクトのかたち(YAPC::Asia 2013)
    papix
    papix 2013/09/24
    最高のトークの最高のスライドです.
  • YAPC::Asia Tokyo 2013: 八木竜馬という男を紹介しておきたい。 : D-7 <altijd in beweging>

    YAPC::Asia Tokyo 2013が終わった。何個かエントリを書こうと思うが、とりあえずまずこの話から。 YAPC::Asia Tokyo 2009から主催者の立場にいるのだが、2009年に自分があちこちのスポンサーまわりをしたときにまず一番辛かったのが「YAPCってどんなイベントなの?」って言われた時に言葉でしか説明できなかったこと。「Perl技術者が集まって話すイベント」ですって言っちゃったらそれでおしまいだよね。当は熱気が溢れるイベントなのにそれだけだとただの演説みたいに聞こえる。そんなんでスポンサーに金を出してもらえる訳がない。 そこで後任者が誰であれ(結果、今年までずってやってきてしまったわけだけど)知らない人に伝えるのにマルチメディア素材を用意しておこう!それ用の予算も組もう!という明確な意思を持って知り合いにフォトグラファーを紹介してもらって、今年まで毎年写真を撮

    YAPC::Asia Tokyo 2013: 八木竜馬という男を紹介しておきたい。 : D-7 <altijd in beweging>
    papix
    papix 2013/09/23
    3枚目の写真ェ... でもYAPC, 毎年毎年写真のクオリティ凄いですよね.
  • YAPC::Asia 2013にいってきました #yapcasia - ぱいぱいにっき

    見た目が良くなるようにタイトルを去年と統一しました。どうもマコピーです。 今年もYAPC::Asia 2013にいってきました。ちょっとぼっち気味だった去年とは違って、Hachioji.pmの人たちとかとワイワイやってました。ワイワイ ちょっと長くなってしまったので、めんどくさい方はブクマだけぽちっと押していただけると幸いです。 で、お仕事の関係で前夜祭は途中からで、1日目は昼から潜入したのでLT以外のトークは以下のものしか聞いておりません。 Perlの過去と未来 @tokuhirom この前のPyConでも「Perl使いで〜す」って言ってたら「Perl6いつ出るの?」って言われるんですよね。かつて出ないものと言われていたRuby2.0であったり、Python3であったり、LL界隈では彼らは華々しくデビューしているわけですが、Perl6だけは出てこない。 で、僕はPerl書き始めてPerl

    YAPC::Asia 2013にいってきました #yapcasia - ぱいぱいにっき
    papix
    papix 2013/09/23
    “抗争を続けた二人は手打ちをして一つのモジュールに統合” 構想なんてしてないですよぉ〜!
  • モダンPerl入門増補改訂版(仮)

    ページは『モダンPerl入門 増補改訂版(仮)』の特設サイトです。商品紹介のほか、電子書籍版の早期ディスカウント販売(β版を先行提供)などを予定しています。今後の更新情報は「CodeZine Books」のFacebookページなどで配信していきます。 以下は、2013/9/18時点での目次案ver.1です。随時更新予定。 初版の目次項目については、こちらを参照してください。 第1章 はじめに 1.1 書について 1.2 書で扱うPerl 1.3 書内のPerlサンプルコードについて 1.3.1 対応Perlバージョン 1.3.2 古いバージョンをお使いの場合 1.4 ドキュメントについて 第2章 Perl環境の設定【刷新】 2.1 Perl体のインストール 2.1.1 perlbrew 2.1.2 plenv 2.1.3 perl-build 2.1.4 インストール時のpe

    papix
    papix 2013/09/18
    スゲェ, これは買うしかねー!!!!
  • YAPC::Asia Tokyo 2013 直前レポート | gihyo.jp

    世界最大のPerlの祭典YAPC::Asiaの季節が、今年もやってまいりました。 今年のスペシャルレポートも昨年のレポート同様に、各発表を写真付きで随時更新してお届けしていきます(すべてのセッションをレポートするわけではありません⁠)⁠。 YAPC::Asia Tokyo 2013 について 公式サイトにも概要について説明がありますが、YAPC::AsiaはPerlに関するお祭りで、これまで年に1度のペースで開催されてきました。 たくさんのPerlハッカーが登壇し、各々の技術とその周辺の話を発表する場であると同時に、全国からPerlを愛する人々が集まる場でもあります。 今回の会場となる慶應義塾日吉キャンパス 協生館は、日吉駅から徒歩1分ほどの場所にあります。 明日9月19日(木) 18:00からは前夜祭があり、9月20日(金)から9月21日(土)にかけて、たくさんのトークセッションが予定さ

    YAPC::Asia Tokyo 2013 直前レポート | gihyo.jp
    papix
    papix 2013/09/18
    “国内最大級の初心者向けPerl勉強会「Perl入学式」が出張開催” しますよ!!!!!!!!!!!
  • Perlの一文字変数の攻略 | Hachioji.pm 日めくりテックトーク

    xtetsujiです。 昨今は書籍よりも検索エンジンに頼って勉強する人が多くなってきているのかもしれませんが、そういう人を戒めるかのようにPerlでは「ググれない」一文字変数や一文字シンボルやそれに類するものの数々があります。 実際のところ、ちゃんと書籍を通読したり、perldoc perlvar perldoc.jp/perlvar を読めば理解できるのですが、それでもハマる落とし穴といったところを解説していきたいとおもいます。 use English; は使わない perlvar の解説を読んでいると、一文字変数が嫌な場合は use English; とすれば $_ が $ARG として参照できて嬉しいよ、といった解説が行われていますが、通常 use English; は使いません。というか、use English; を使ったプロジェクトを内外で見聞きしたことが10年の間に私の経験上あ

    papix
    papix 2013/09/17
    Perlの一文字変数のお役立ち情報です.
  • Perl5.10以降に追加された機能で良く使うお役立ち機能まとめ | Hachioji.pm 日めくりテックトーク

    Songmuです。 Perlは5.10以降多くの機能が追加されていますが、巷のCPANモジュールの多くは5.8と互換性を保って書かれていることもあり、普段その機能を目にしない人も多いでしょう。僕自身のCPANモジュールも多くは5.8.1以降対応ですが、最近手元で動かすようなものに関しては5.10.1対応にすることも増えてきましたがそれでも、5.10.1止まりです。 実際のプロジェクトにおいては5.10以降の機能も使えるものは積極的に使っているのでその辺りの話。 say: 改行付きprint (5.10) printしてその後に改行を入れてくれる関数です。地味に便利です。 use 5.010; say 'Hello'; # Hello ワンライナーでも -E スイッチで使えるようになるので近年は-eを使わずに専ら-Eです。 % perl -E 'say "Hello"' Hello //:

    papix
    papix 2013/09/14
    お役立ち情報です.
  • ここをおさえれば Perl 情報通になれるよというサイト一覧 - tokuhirom's blog

    Perl 関連の情報をあつめるには、僕は以下のサイトをみています 個人ブログ TATSUHIKO MIYAGAWA'S BLOG http://weblog.bulknews.net/ 最新の miyagawa 情報がえられます。 Charsbar::Note http://d.hatena.ne.jp/charsbar/ 最新の DBD::SQLite 情報などがえられます。 Hateburo: kazeburo hatenablog http://kazeburo.hatenablog.com/ kazeburo さんのサブブログっぽいやつ。nomadscafe.jp の方と使いわけがよくわからない。 あと「はてぶろ」で検索してもみつからない。 おまとめ情報 FrePAN http://frepan.64p.org/ 手前味噌ですが、FrePAN の feed を購読すると、Chnag

    papix
    papix 2013/09/10
    お役立ち情報源情報です.
  • Test::Moreのsubtestで困っていること - $shibayu36->blog;

    最近はperlでテスト書く時はTest::Classを使うようにしている。その理由の一つとして、subtestだけのテストだと少しだけ困ることがあるからだ。 具体的には以下の事がある。 subtestは書かれている順に実行されるため、前のテストの状態に依存したコードが書かれがち 特定のsubtestだけを実行するのが面倒 前のテストの状態に依存したコードが書かれがち 僕の中では、テストが前のテストの状態に依存しないようにすべきと思っている。各テストの依存度が増えると、その後テストを追加したいときにコードの見る範囲が増え、テストが書きづらくなってしまうからだ。 しかし、subtestは単に書かれた順にテストが実行されるので、前のテストの状態に依存したコードが書きやすいと思っている。例えば以下の様なコードが書かれがち(少し極端な例だが)。 use Test::More; # insert_en

    Test::Moreのsubtestで困っていること - $shibayu36->blog;
    papix
    papix 2013/08/23
    「前のテストに依存する」, とてもよろしくないので避けるようにしよう.
  • Amon2 4.00 released - tokuhirom's blog

    Amon2 が久々のメジャーバージョンアップをはたしました。 主な目玉としては、 Teng をデフォルトの O/R Mapper として採用 bootstrap 3 に対応 の二点です。 ご査収ください。

    papix
    papix 2013/08/21
    Tengがデフォルトに!
  • Perl の Package 書くときにめちゃめちゃ便利な Vim スクリプト書いた - その手の平は尻もつかめるさ

    世の中の Perl の Package の末尾には大体 `1;` って書いてあって、これが何か言うと「このモジュールは真値を返していますよー」という表明で、まああけすけに言うとこれが記述されていなければ、そのモジュールは use とかされた時に不正なモジュールとして扱われてしまい、読み込みが 失敗してしまう訳です。 さっきも言ったように、返す値は真値であれば何でも良いので、`42;` って書いたり `"HELLO";` って書いたりしても別に良い。 で、世の中には `!!1;` っていう面妖な記述をしているモジュールがあって、人が泣いている。 `!!1;` は、1 という真値を ! によって偽値にして、さらにそれを ! する事によって真値にすることによって、真値であることを表明している。 これでも問題なく動くけれど、`!!1;` って初見の人はびっくりしてしまうし、そもそも2回も否定演算し

    Perl の Package 書くときにめちゃめちゃ便利な Vim スクリプト書いた - その手の平は尻もつかめるさ
    papix
    papix 2013/08/21
    生産性のあるVimスクリプトだ.
  • 複雑なデータ構造の中にうまっているデータのパスをさがす方法 - tokuhirom's blog

    Perl5 の場合、Data::DPath をつかえば、 my $data = { foo => { bar => 'candy', }, }; のようなデータから、 say dpath('/foo/bar')->match($hashref); などとして、candy を簡単にとりだすことができます。 しかし、ここで、たとえば以下のように複雑なデータになってしまった場合は、DPath をつくるのがまじめんどいかんじになります。 my $data = { foo => { bar => 'candy', boz => 3, iyan => { bakan => 7, yappo => 'candy', dan => [ 'suspender', 'hige', 'candy'] }, }, }; そんな場合、以下のようなコードをささっと書いてcandyをさがしましょう。 #!/usr/bi

    papix
    papix 2013/08/20
    とても欲しかった情報です.
  • tokuhirom 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

    papix
    papix 2013/08/19
    な, なるほど!!!!!!
  • Perlにおける定数宣言(constant or Readonly or Attribute::Constant) - Unknown::Programming

    正直言いますと、個人的には定数って殆ど使わないんですよね。 昔はちょこちょこ使ってたんですが、最近は定数となりうる物は基的にYAML等外部ファイルに持たせて変更可能にすることが多いのでまったく使ってません。 ですがそれでもPerlで定数を使いたい時にはどーすんの?っていう時のために軽くここにまとめておきます。 言わずもかなPerl5.8にはconstantという定数を定義できる標準モジュールがあります。 use strict; use constant PI => 3.14; # 表示 print PI; # 3.14 # 上書きしようとすると・・・ PI = 3; # Can't modify constant item in scalar assignment とこのように上書きしようとするとエラーを吐いて死にます。 しかも実行時ではなく、コンパイル時にエラーを吐きます。 実はこのc

    Perlにおける定数宣言(constant or Readonly or Attribute::Constant) - Unknown::Programming
    papix
    papix 2013/08/14
    constant以外にも定数宣言する方法ってあったんだ〜
  • PAUSE における comaint とはなにか - tokuhirom's blog

    よく miyagawa さんとかが comaint が云々といっていますが、意外としられていないのが comaint の実態です。 まずは PAUSE の処理フローについて考えてみましょう。 まず minil release とかして tar ball を PAUSE のサーバーにアップロードします。この時、アップロード先は authors/id/M/MO/MOZNION/HTML-Shakan-0.18.tar.gz とかになります。 そうすると PAUSE のインデクサがブンブンと動きだして、META.json の provides セクションまたは .pm を解析して、package とバージョンの情報が抽出され、データベースに登録されます。 この際、新規ネームスペースや、自分がもってるネームスペースならいいのですが、他の人がもってる namespace の場合には UNAUTHOR

    papix
    papix 2013/08/13
    comaintコマンドとかあるんだー
  • そろそろText::Markdown::Discountについてひとこと言っておくか | おそらくはそれさえも平凡な日々

    Text::Markdown::Discountってどうなの?って話があったりするわけですが、Perlの人は積極的に使ったほうが良いと思うし、Discount自体はPerlに限らずおすすめだよーっていうエントリです。 これはDiscountというCのMarkdownライブラリのバインディングです。Rubyにはrdiscountという、メジャーなMarkdownのgemがありますが、これもDiscountのバインディングです。Jekyllとかで利用している人も多いでしょう。 Rubyの世界だと他にもredcarpetというgithubが採用したことで一躍有名になったMarkdownライブラリがあります。これはsundownというCのMarkdownライブラリのバインディングです。 sundownは処理が高速なのがウリらしく、PerlでもText::Markdown::Sundownを書こうか

    そろそろText::Markdown::Discountについてひとこと言っておくか | おそらくはそれさえも平凡な日々
  • Carton 1.0 リリースによせて - tokuhirom's blog

    http://weblog.bulknews.net/post/57356232719/carton-1-0-is-released Carton 1.0 がリリースされました。おめでとうございます! miyagawa++ というわけで早速手元でうごかしてみたところ、いくつか問題があったので miyagawa さんに修正していただきました。 1.0 リリースまでにためしたいところだったのですが、面倒くさくて無理でした。 今回のアップデートで個人的にいいなーとおもったのは以下のような点です。 carton update が実装された 待望の carton update が実装されております。これにより、あたらしめのバージョンに移行することができますね! carton check が実装された cpanfile に記述されてるけどインストールされてないモジュールを確認できる!! carton.

  • Carton 1.0 時代の Web アプリケーション開発フロー - tokuhirom's blog

    Carton 1.0 がでたところで、Web アプリケーション開発のフローを一度見直しておきたい、そんな人も多いでしょう。 そんな方のために僕のやりかたをまとめました。各社、議論の叩き台にしていただければよろしいかと存じます。 もっとも重要なことは、、 Carton を使うときに、僕が最重要だと思うことは、できるだけ番環境と開発環境の環境をそろえるということです。CPAN モジュールが番と開発でバージョンちがうから挙動がちがってた!! なんてのは時間の無駄ですし、よくないことですからね。 ですから、各開発環境と番環境をできるだけそろえることを意識していきたいとおもいます。 DarkPAN は使ってない そんなに DarkPAN 的なのを使うほど、DarkPAN 的なオレオレモジュールがないので、git submodule で管理しています。 【201308061241update】

    papix
    papix 2013/08/06
    いいまとめ記事だ...!
  • CPANにあがってるJSON関連モジュール色々 - どんぞこ日誌(2013-08-01)

    * Perl] CPANにあがってるJSON関連モジュール色々 JSON::XS とそれにまつわる歴史的な過去の話、まとめ。を読んで。昨日のお昼に某所でこの話題になって、Cpanel::JSON::XSやJSON::MaybeXSの話やらCPANにあがってるJSON関連のモジュールの話をしてました。せっかくだからモジュールの紹介をしてみようかと。 【追記】tokuhiromさんがツイートしてるように、今はJSONとJSON::XS/PPを使えば特に困ることはほとんどないと思います。 JSON::XS 後存知の通り、一番メジャーなXSモジュール。速い軽い。作者のリーマンさんが何かと話題になりますが、(割と)よい人です。あとjson_xsというコマンドツールがついてきて地味に便利。 JSON::PP JSON::XSと*ほぼ*完全な互換性を持ったPurePerlなモジュール。遅い重い。作者のま