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

  • YappoLogs: Perl徹底攻略という本を作った話

    Perl徹底攻略というを作った話 来週火曜日に、ここ最近もっともイケてる Perlが出ることになりました。 ちなみに僕もなんか書いてるけど、役に立つことは書いてません。 基的には Web+DB PRESS で連載されている記事が集まっていますが、ちょさんの部分は Perl 5.18 までの話題を取り扱ったり、yusukebeのところなんかは TwitterAPI がもろもろ変わっちゃったので、ほぼ全部書き直しで YouTube API の話になってたりとか、既存の連載を読んでる人にも新しい情報ありますね。 載っている記事としても連載だけではなくて弾さんのアルファギークに逢いたいから Perl Hacker が出ている記事を中心に再収録してあるところもポイントです。 あとは今回のために naoya さんが新規に原稿書いてくれた事も目玉ですね。内容としては「Perlプログラミン

    papix
    papix 2013/07/18
  • “インストールされているモジュールをインストールされていないが如く扱う方法”の続き - その手の平は尻もつかめるさ

    インストールされているモジュールをインストールされていないが如く扱う方法 - その手の平は尻もつかめるさ の続きというか訂正です。 すっげーーーーーーーーーー前に miyagawa さんから指摘を受けていたんですけど、書きそびれていたので書いておきます。 @moznion $INC{"Foo/Bar.pm"} = __FILE__; makes require Foo::Bar no-op. no need to make dummy .pm file @tokuhirom URL 2013-06-10 10:47:52 via Echofon to @moznion $INC{"Foo/Bar.pm"} = __FILE__; このように書くと、ダミーの pm ファイルを用意しなくても、何もしない Foo::Bar が require 出来るそうです。 出来るそうです、というか出来ました

    papix
    papix 2013/07/16
  • “職質テックトーク” なる放送をやります - その手の平は尻もつかめるさ

    Ustream にて、“職質テックトーク”なる放送をやります。 普段職質ばかり受けている僕 *1 が、逆に人に質問しまくって、IT エンジニア的なテックトークをしようという放送です*2。 YAPC::Asia Tokyo 2013 が開催されるまでは、YAPC のスピーカーの皆さんをゲストにお迎えして、 「俺のトーク面白いから聞きに来なよ!!」的なトークを展開しつつ、色々とお話しできたらなあと思っています。 第1回目は日7月11日 (木) の19:30 から、ゆーすけべーさんをお呼びして放送します。 YAPC::Asia Tokyo の話や、YAPC::NA の話などを中心に行う予定ですが、どうなるか分かりません!!!。 http://www.ustream.tv/channel/shock-sheets-tech よろしくお願いします!! なお、音声は後日アーカイブ的にpodcast

    “職質テックトーク” なる放送をやります - その手の平は尻もつかめるさ
    papix
    papix 2013/07/11
    期待age
  • perlでtwitterのbotを作ってさくらVPSにあげてみた : PerlとRubyがくしゅう帳

    ある日、リスペクトしている、とある偉いperlハッカー先生がツイッターでつぶやいていた。 perl入学式で、無いものはcpanモジュールを駆使して自分で作れば良いと教わっていたので、自分でtwitterbotを作って見ることにした。 ・・・何ヶ月か前に勉強会perl鍋に参加した時に作り、ローカル環境で実験してうまく動いてからずっと放置していたので、きちんとスクリプトを仕上げてさくらvpsのサーバーに上げて自動実行させようとしたら色々ハマッてしまったので、その解決策を備忘録として書いておく。 twitterbotのスクリプトは、cpanのNet::Twitter::Lite::WithAPIv1_1モジュールを使った。TwitterAPIの利用登録から実際の使い方は@yusukebeさんのブログ記事「イカ娘でTwitter OAuth認証」を参考にさせていただいた。 作ったtwitterbo

    perlでtwitterのbotを作ってさくらVPSにあげてみた : PerlとRubyがくしゅう帳
    papix
    papix 2013/07/10
    ひさいちさんウハウハ情報です
  • Nephiaの思想について一言 - ぱいぱいにっき

    どうもマコピーです。名ばかり、です。 Nephiaというウェブフレームワークを@ytnobodyさんを中心にHachioji.pmの方々とで作っているというのは以前の記事で話題に出したのですが、なんか最近方向性がはっきりしてきたというか、そろそろユーザがほしいので一言。 Perlに限らずウェブアプリケーションを作るためのフレームワークというのは世の中にたくさんあります。そして、プログラミング言語が備える、もしくは後付された思想と同じように、フレームワークにもエコシステムが生まれるのでそれぞれ思想があります。 例えばRuby on RailsはDRY(記述を繰り返さない)、設定より規約等々。。。 SinatraやFlaskはマイクロフレームワーク、彼らはマイクロが故にRoRなどのフルスタックなフレームワークが標準で備えるORMは添付されず、勝手にやってくれという思想です。 Nephiaの思想

    Nephiaの思想について一言 - ぱいぱいにっき
  • Perl入学式in大阪#2で講師役をしてきました - metropolis

    2013-06-22 Perl入学式in大阪#2で講師役をしてきました 参加してみた Perl大阪コワーキングで開催されたPerl入学式in大阪#2で講師役をしてきました.講師役というのははじめてだったのですが,サポートの @nqounet さん, @__papix__ 先輩のお二人のバックアップのおかげで,リラックスしてやることができました.内容としては, 変数(スカラー, 配列) 標準入力 四則演算 if, else, for といったPerlの基礎的な部分をやりました. 簡単にコンテキストの説明もしましたが,この部分は追々といった形で十分だと思います.資料の方も作成を担当しましたが,個人的に意識したのは実際に手を動かしてもらうことです. 練習問題だけでなく,ひとまず書いて動かしてみよう,という部分を用意しました.反省点としては,時間に対して量が少し足りなかった点です. 一応

    papix
    papix 2013/06/23
    とてもよい講師っぷりでした.
  • perl-5.18で splitの挙動が変わっていた - Shohei Yoshida's Diary

    http://perldoc.jp/docs/perl/5.18.0/perl5180delta.pod#splits32first32argument32is32more32consistently32interpreted 知らなかったのでメモ。Templateのテストが Perl 5.18でこけていたのは これが原因のようです。なおリリースはされていないようですが、すでに修正は マージされているようです. Fix split for Perl 5.18.0 by jonjensen · Pull Request #19 · abw/Template2 · GitHub 変更点 splitの第一引数に空白一つの文字列リテラルを与えたときと 空白一つが代入された変数を指定したときの挙動が今まで違って いたのが同じになったようです。 #!perl use strict; use warni

    perl-5.18で splitの挙動が変わっていた - Shohei Yoshida's Diary
    papix
    papix 2013/06/14
    ほう...!
  • 最近の Perl6 の動向についてまとめてみた - tokuhirom's blog

    Perl6 まわりが最近だいぶかわってきているという雰囲気をみなさん感じていらっしゃるかとおもいます。そのあたりについておさらいしてみましょう(時系列はちょっとまちがってるかもしれませんが、たぶんだいたいあってる)。 去年ぐらいまで去年ぐらいまでは、あまりパフォーマンスは重視されていなかったかんじがします。 「まだパフォーマンスを気にするタイミングじゃない」的な。ただ去年の途中ぐらいで一気に rakudo がはやくなったりしたような気はしました。 nqp の JVM port(4月ぐらい)https://github.com/perl6/nqp http://6guts.wordpress.com/2013/04/18/nqp-on-jvm-bootstrapped-soon-will-land-in-nqp-master/ nqp というのは Not Quite Perl(6) の略で、

  • perlで改行など特殊文字が含まれるものをDumpする時は - $shibayu36->blog;

    最近テストをしていて、全く同じ文字列に見えるのに、テストが通らないという事例がありました。今回は\tとか\rとか特殊文字が入っていて文字列が一致しないという事例でした。 特殊文字とかを見える形でするのはどうすればいいのだろうと思っていたら、Data::Dumperでそういう機能がありました。 my $str = "hoge\tfuga\n"; use Data::Dumper; $Data::Dumper::Useqq = 1; warn Dumper($str); # $VAR1 = "hoge\tfuga\n"; 便利ですね。

    perlで改行など特殊文字が含まれるものをDumpする時は - $shibayu36->blog;
    papix
    papix 2013/06/06
    これは知らなかった. 覚えておこう.
  • homebrew での plenv のバージョンがあがっています。 - tokuhirom's blog

    plenv は Perl5 インタープリターのビルドやマネージメントをできるやつです。 plenv 1.9.4 が homebrew にマージされました。 % PERL5OPT=-MDevel::Cover make test Can't locate Devel/Cover.pm in @INC (@INC contains: /Library/Perl/5.12/darwin-thread-multi-2level /Library/Perl/5.12 /Network/Library/Perl/5.12/darwin-thread-multi-2level /Network/Library/Perl/5.12 /Library/Perl/Updates/5.12.3 /System/Library/Perl/5.12/darwin-thread-multi-2level /Syste

  • Islands in the byte stream

    大チェッカーすばらしい。こういうのがほしかった。 Mobile Application Development なおフィードはだれでも追加できるようにしてあります。 http://central.sonatype.org/articles/2014/Oct/28/enforcing-valid-dependency-versions/ 2014年10月の話ですが、これのせいで手元のライブラリのアップロードが失敗するようになってました。これからは、依存ライブラリのバージョンは "3.+" ではなく"[3,4)" (3以上4未満)などのような数学的範囲表記(mathematical range syntax)をしなければならない、ということです。詳しくは上記エントリを参照のこと。 変更例: https://github.com/gfx/android-power-assert-plugin/c

    Islands in the byte stream
    papix
    papix 2013/05/19
  • PerlとGuardでautotestするときに便利なguard-tap - hitode909の日記

    GuardでPerlのテストを実行するときに使えるguard-tapというGemを書いた. t/以下のファイルが変更されたら実行するとか,lib/以下のファイルが実行されたら,名前が似てるテストファイルを推測して実行,とかできる. GitHub - hitode909/guard-tap: Guard gem for Test Anything Protocol guard-tap | RubyGems.org | your community gem host 実行結果のTAP形式の文字列をパースしていて,テスト結果や,失敗したときのエラーメッセージなどをGrowlに表示できる. TAPは単なる文字列のプロトコルで,実装すれば言語によらず使えるので,Perl以外でも使いたい人いたらguard-tapとつなげて使える.いないと思うけど. Test Anything Protocol - W

    PerlとGuardでautotestするときに便利なguard-tap - hitode909の日記
  • Minilla を用いた Perl モジュールの作り方 - tokuhirom's blog

    http://shanon-tech.blogspot.jp/2013/05/perl.html Perl モジュールの作り方、2013年においては Authoring tool をつかって作るのがよいです。具体的には Minilla でつくるのがオススメであります。 perlbrew なり plenv なりで perl をいれたあとは、 % cpanm Minillaとして Minilla をインストールします。 % minil new Fooとすると、Foo.pm のスケルトンができあがります。作者の名前などは ~/.gitconfig などから自動的にさがしてきますので、設定不要です。 できあがったディレクトリは以下のような形になっています。 Foo ├── Build.PL ├── Changes ├── cpanfile ├── lib │   └── Foo.pm ├── LI

  • 半角カナ混じりの文字幅を数える - Shohei Yoshida's Diary

    文字幅ってどうやって調べるんだろって思って、 使えるモジュールを探してみた。 #!/usr/bin/env perl use strict; use warnings; use utf8; my $str = "リンゴゴリラ"; { use Unicode::Japanese; printf "[%s] length = %d\n", 'Unicode::Japanese', Unicode::Japanese->new($str)->strlen; } { use Text::VisualWidth::UTF8; printf "[%s] length = %d\n", 'Text::VisualWidth', Text::VisualWidth::UTF8::width($str); } { use Unicode::EastAsianWidth; my $count_length

    半角カナ混じりの文字幅を数える - Shohei Yoshida's Diary
    papix
    papix 2013/05/13
    Text::VisualWidth::UTF8より, Unicode::EastAsiaWidthの方がよさげ...
  • 実践的Perlデバッグ三種の神器 - Qiita

    perlでprintfデバッグするにはData::Dumperがおなじみかと思いますが、printfデバッグでは「○○が××なのではないか」という仮説を1つずつ検証していくことになり大変なときもあります。Perlはスタックトレースとかをあまり吐いてくれないし大変だと思いきや、エラーの可視化などに便利なモジュールがあったのでメモりました。 変な場所でdieまたはwarnが出て困っている場合 => Carp::Always warnまたはdieが出た時に、スタックトレースを引数付きで表示してくれます。warnやdieが出るが、どこから呼び出された時に、どんな引数のときにで出ているのかわからない場合に便利です。 ※ Carp::Always::Colorというモジュールもあるようですが、まだ試していません。 エラーメッセージが少なすぎたので use Carp::Always;を適当な場所に追加(

    実践的Perlデバッグ三種の神器 - Qiita
    papix
    papix 2013/05/10
    これはいい情報. 役立てよう!
  • Adam Kennedy on PPI - himazu blog

    blog.bulknews.netで知ってから(宮川さんに感謝)Perlcastというポッドキャストを聞いていて、その中の表題のインタビュー(25分間)を聞いた。Perlで書かれたPerlの文法解析(parsing)モジュールであるPPIの作者へのインタビューである。表題のリンク先ページの始めのほうの「interview」というリンクからMP3ファイルがダウンロードできる。 Perlには「only perl can parse Perl」*1というモットーがあることもあって、Perlの字句解析および文法解析をPerlで記述したものは長らくなかった。PPIはそれをかなりの精度で実現している。インタビューの中で興味深いと思ったのは以下の点である。 現在のものは3つ目の実装 PPIは2回ほぼ一から書き直していて、今のものは最初から数えて3回目に書いたものである。最初の実装は正規表現をベースにして

    Adam Kennedy on PPI - himazu blog
    papix
    papix 2013/05/02
  • PPI って何なんだろう - 理系学生日記

    スクリプト読んでたら,PPI::Document ってモジュールが使われていてチョー気になったもんだから調べてみました. Nothing but perl can parse Perl そもそも perl なしに Perl を解析できないかという試みは次々に試され,そして失敗していったそうです.あまりに Perl の文法が複雑で動的なもんだからってのがその大きな原因みたいですね. begin{} ブロックなんてのは,解析とともに普通実行も伴うわけで,"実行なし" に Perl のソースコードを解析するのは至難の技だったりします.また,以下のような問題も発生してしまいます. @result = (dothis $foo, $bar); # Which of the following is it equivalent to? @result = (dothis($foo), $bar); @

    PPI って何なんだろう - 理系学生日記
    papix
    papix 2013/05/02
    PPI, 詳しく調べてみる価値はありそう.
  • PerlでTDD(テスト駆動開発)するなら覚えておきたいCPANモジュール群 | hirobanex.net

    最近、久しぶりに新規コードを書いたんですが、そのテスト書く中でTest::Mock::Guardってモジュール使って便利だったんで、ここらで、動作確認テストを書く上でいいな(使ってみたいな)って思ったモジュール群やテスト関連ネタを個人的なメモとしてまとめておきたいと思います。 いいなって思うPerlの動作確認テスト系CPANモジュール群 私が実際に普段使っているものから、これいいなー使ってみたいなーと思うものまで、一覧にまとめて見ました。結構いろんなモジュール使わないと、いい具合にTDDってできないものだと思います。 入門編 モジュール名 概要 参考日語記事

  • Cwd::Guardっていうモジュールを出していた話 - blog.nomadscafe.jp

    OrePANを弄っているときに、任意のスコープで一時的にchdirして作業後、スコープ外れれば自動で元のディレクトリに戻るモジュールあれば欲しいなと思ったので書いてみた。 use Cwd::Guard; use File::Temp; use Path::Class; my $tmpdir = Path::Class::dir(File::Temp::tempdir()); my $pkgdir; { my $guard = cwd_guard($tmpdir); # chdir to $tmpdir my($root, @others) = `tar ztf $tarfile` or die "Bad archive $tarfile"; chomp $root; $root =~ s{^(.+?)/.*$}{$1}; system "tar", "zxf", "$tarfile"; d

    papix
    papix 2013/04/18
  • 第18回 Amon2によるWebアプリケーションの高速開発(1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回は普段Webアプリケーションの開発を行っているtokuhiromさんで、テーマはWebアプリケーションフレームワークAmon2です。 Amon2とは? こんにちは。tokuhiromです。稿では、筆者が中心となって開発を進めているAmon2というWebアプリケーションフレームワークについて説明します。 Amon2は、次のような特徴を持つWebアプリケーションフレームワークです。 PSGI/Plackベース Amon2はHTTP::Engine/PSGI/Plackの開発/制定に初期のころから関わっている筆者が作成したWebアプリケーションフレームワークです。そのため、Plackの部品をできる限り利用することにより、少ないコードベースでWebアプリケーションフレームワークを実現しています。これにより学習コストが低くなってい

    第18回 Amon2によるWebアプリケーションの高速開発(1) | gihyo.jp