タグ

Perlとperlに関するnote103のブックマーク (170)

  • tieでSTDINを置き換える - 徒書

    前の記事で言及したSTDIN/STDOUT を使うテストの記事に対しては、ブックマークコメントで「STDINは local *STDIN = *DATA; もできそう。」てなことも書いていたのですが、それに対して、STDIN を使うテストの記事にて以下の言及を頂きました。 入力パターンが1個しかないことはめったに無い 入力とそれに対する結果はなるべく近くに置きたい たしかにその通りと思います。 なので、DATAを使わずに、tieでSTDINの入力元を配列変数に置き換えることができないものかと試してみました。 use strict; use warnings; { # 入力元を配列変数に置き換えるクラス package TESTIN; sub TIEHANDLE { my $class = shift; my @lines = map { "$_\n" } @_; bless \@lines

  • IO::scalarでIOのキャプチャ - Islands in the byte stream (legacy)

    STDIN/STDOUTを使うテスト IO::ScalarArray 標準入力の自動試験 標準モジュールのIO::scalarでもIOキャプチャできますよ。 Tieによるモジュールと機能はほぼ同じです。 #!perl -w use strict; { my $content = "Hello, world\n"; open my $in, '<', \$content; local *STDIN = $in; print scalar <STDIN>; } print scalar <STDIN>; __END__

    IO::scalarでIOのキャプチャ - Islands in the byte stream (legacy)
    note103
    note103 2016/01/24
  • STDIN/STDOUT を使うテスト - tsucchi’s diary(元はてなダイアリー)

    仕事メモ。 インタラクティブなコンソールアプリケーションだと、STDIN/STDOUT を使ったやりとりが発生します。こういうのをテストするときに、いままでは、 { local *STDOUT; open(STDOUT, '>', 'stdout.txt') do_something(); #STDOUT を使う何か close(STDOUT); } open(my $MY_STDOUT, '<', 'stdout.txt'); #... $MY_STDOUT の中身を読み出してテストする みたいな処理を書いて、ファイルの中身でチェックしてました。(STDIN の場合は逆で、入力データをファイルに書いて、捻じ曲げた STDIN をアプリに読ませる)。 ファイルを噛ませるのが嫌だったのと、ちょっとトリッキーなのが気に入らなかったので、モジュールを使ってもうちょっと優雅に(?)書けないかな、と

    STDIN/STDOUT を使うテスト - tsucchi’s diary(元はてなダイアリー)
  • STDIN/STDOUT を使うテスト その2 - tsucchi’s diary(元はてなダイアリー)

    STDIN/STDOUT を使うテストの続き。 id:gfx さんより、トラバで、PerlIO の IO::scalar を使う方法を教えていただきました。 IO::scalarでIOのキャプチャ - use GFx::WebLog; 標準モジュールのIO::scalarでもIOキャプチャできますよ。 と、言うわけで私も試してみました。例の題材は前と同じです。 まずは STDIN。gfx さんのところのサンプルをほぼ丸パクリです。 #!/usr/bin/perl use strict; use warnings; use Test::More tests => 1; sub add { my $result = 0; while( <STDIN> ) { $result += $_; } return $result; } { my $inputs = "1\n2\n3\n"; open

    STDIN/STDOUT を使うテスト その2 - tsucchi’s diary(元はてなダイアリー)
  • 標準出力や標準エラー出力を捕まえてテストする Test::Output / Capture::Tiny - 酒日記 はてな支店

    Perl で、あるコードが標準エラー出力に吐き出した内容をテストしたい場面がありました。 自分でまず思いついたのは STDERR を dup して保存しておいて、ファイルにリダイレクトして、元に戻して、というやりかた。これはこれで動くのですが面倒。こういう場合は Test::Output (や miyagawa さんに教えてもらった Capture::Tiny) が便利です。 Test::Output はこんな感じ。 std(out|err)_(is|isnt|like) といったテスト関数が使えるようになります。 use Test::Output; use Test::More; stderr_is { # STDERR になにか出力するコード } "STDERRの内容", "description"; stdout_like { # code } qr/regexp/, "descri

    標準出力や標準エラー出力を捕まえてテストする Test::Output / Capture::Tiny - 酒日記 はてな支店
    note103
    note103 2016/01/24
  • 吉祥寺.pm6に参加しました(トーク音声公開&スライド作成方法) - the code to rock

    以下でお知らせした通り、1/15(金)に開催された第6回吉祥寺.pmに参加してきました。 吉祥寺.pm6に参加します(2016/1/15) - the code to rock 発表資料は以下です。 ぼんやりした大人が趣味でプログラミングを始めたら from Hiroaki KADOMATSU www.slideshare.net それから、これは今回初の試みですが(というか登壇自体ほぼやったことがないわけですが)、発表時の音声を手元で録音しておいたので、若干編集した上でSoundCloudにUPしてみました。 soundcloud.com Index 00:00 p01 - スタート 00:30 p03 - 第1部: 自己紹介 01:15 p06 - 最近の仕事 03:20 p12 - FAQ: なんでプログラミング始めたの? 05:50 p21 - 第2部: ぼんやりと考えたこと 06

    吉祥寺.pm6に参加しました(トーク音声公開&スライド作成方法) - the code to rock
    note103
    note103 2016/01/17
    金曜の #kichijojipm での発表について書きました。試験的に同プレゼン音声も公開してます。会全体の感想については紙幅と力と時間が尽きたのでまた次回……
  • 最近買った技術書 〜WEB+DB PRESS, Software Design, LaTeX2ε美文書作成入門, かんたんPerl〜 - the code to rock

    仕事に使うわけでもないのに技術書がけっこうあふれていて、かつ電子版なら寝る前にiPhoneで読んだりするのに都合がいいのでなるべく紙の技術書からは離れたいなあ、と思っているのだけど、先日ちょっと買ったがあったので、後から「あれっていつ買ったんだっけ」と自分が思い出しやすいように書いておきます。 WEB+DB PRESS Vol.90 作者: 江口和宏,吉田太一郎,内田優一,青山公士,石光司,まつもとゆきひろ,おにたま,田籠聡,竹内郁雄,南川毅文,伊藤直也,佐藤太一,?橋侑久,Magnolia.K,佐藤歩,泉水翔吾,西尾泰和,中島聡,はまちや2,竹原,宮崎亮輔,安藤祐介,WEB+DB PRESS編集部出版社/メーカー: 技術評論社発売日: 2015/12/23メディア: 大型この商品を含むブログ (1件) を見る 週末、吉祥寺.pmに行くのですが、 吉祥寺.pm6に参加します(2016

    最近買った技術書 〜WEB+DB PRESS, Software Design, LaTeX2ε美文書作成入門, かんたんPerl〜 - the code to rock
    note103
    note103 2016/01/13
    blogged.
  • 吉祥寺.pm6に参加します(2016/1/15) - the code to rock

    今年最初の更新です。 最近は仕事と簿記検定(2月末)のための勉強をしている時間が大半で、なかなかプログラミングできていないんですが、年末はクリスマスを挟んで10日ぐらい、熱に浮かされたようにCarvoの修正を繰り返していました。 まだその内容はpushしていないんですが、だいぶ変わった&自分なりに直したかったところは直ったので、いずれ報告したいです。 さて、その話はあまりできない気がするんですが、来週金曜に行われる吉祥寺.pmにトーク枠で参加することになりました。 kichijojipm.connpass.com 人前でプログラミング関連のトークをするのは一昨年夏のリジェクトコンのLT以来です。 note103.hateblo.jp イベントの主宰である @magnolia_k_ さんはそれをご覧になっていたそうで、そのつながりもあって今回のトークに誘ってくれたようでした。ありがたいこと

    吉祥寺.pm6に参加します(2016/1/15) - the code to rock
    note103
    note103 2016/01/09
    blogged.
  • 【第1004回】拙著『かんたんPerl』がAmazon他で予約可能になりました! : イジハピ!

    2016年01月07日14:33 【第1004回】拙著『かんたんPerl』がAmazon他で予約可能になりました! カテゴリすぐわかる気がするPerl query1000 Comment(2)Trackback(0) スミマセン、今日はバリバリのCMブログになります。このブログでぼくのことを知ってくださった方には、ぼくのこと何してる人なのか、普段から怪しく思ってる方もいらっしゃったと思いますが、自分でも時々「俺いま何やってるんだろ」と惑うことしばしばですが、ここ数年はこのの執筆に打ち込んでいました。 かんたん Perl (プログラミングの教科書)posted with カエレバ深沢 千尋 技術評論社 2016-01-16  書は、地球で最もゆるふわなプログラミング言語解説書です。1999年に同じ技術評論社刊の拙著『すぐわかるPerl』の事実上の後継であり、2009年に出された拙著『すぐ

    【第1004回】拙著『かんたんPerl』がAmazon他で予約可能になりました! : イジハピ!
    note103
    note103 2016/01/07
    お〜これは期待。紙の技術書はなるべく買わない方針だったけど予約した
  • Mouse::Util::TypeConstraints等を使って新しい型を定義するときのベストプラクティス - 時計を壊せ

    更に追記 MouseX::Typesですが、その後検証してみたかんじ、 要素を「=>」で繋げてしまうと左辺が文字列として認識されてしまうようなので、 要素を「,」で繋げなければいけないようです。 等価だと思っていましたが微妙に違うんですね。 package HogeProject::MouseType; use strict; use warnings; use utf8; use MouseX::Types -declare => [qw/UInt/]; use MouseX::Types::Mouse qw/Int/; subtype UInt, as Int, where { $_ >= 0 }; 1; 追記 id:gfxさんによるとMo[ou]seX::Typesがまさにそんな機能を持っているとの事。知らなかった! http://search.cpan.org/~gfuji/Mou

    Mouse::Util::TypeConstraints等を使って新しい型を定義するときのベストプラクティス - 時計を壊せ
    note103
    note103 2015/12/27
  • Christmas is here.

    Raku Advent Calendar (2009-2019) Something cool about Raku (formerly known as Perl 6) every day of December until the 24th On behalf of the Rakudo development team, I’m proud to announce the Christmas release (December 2015) of Rakudo Perl 6 #94 “коледа”. Rakudo is an implementation of Perl 6 on the Moar Virtual Machine[^1]. This is the Christmas release of Rakudo Perl 6. This version of the compi

    Christmas is here.
  • Perlゼミ(サンプルコードPerl入門)

    Perl入学式 全6回のPerl入門講座。東京、大阪、沖縄、札幌で開催。(東京は4月と10月スタート、それ以外は5月スタート) YAPC::Japan Perlを軸としたITに関わる全ての人のためのカンファレンス。 東京 吉祥寺.pm 五反田.pm 大阪 なにわPerl 沖縄 沖縄.pm

    note103
    note103 2015/12/26
  • Perlモジュールの読み込みに失敗する場合のチェックポイント - Qiita

    結論から言うと 3 のケースがいっちゃんだるい。 1. モジュールのパス通してるか このケースの典型エラーメッセージ Can't locate Foo/Bar.pm in @INC (※ 後述するがパスを通してない以外の原因でもこのメッセージが出ることがある) 対処法 use lib 'モジュールを置いてる Dir'; のしわすれてると思われる。ので、する。 use lib ってなんぞ? とか @INC がわからない場合はここを読むいいでしょう。 モジュールの検索パスを調べる @INC - サンプルコードによるPerl入門 さらに詳しい解説がほしいばあいは perldoc -v @INC するもよし、あるいはほとんどのPerl入門書に解説が書いてるのでそれを読むもよし。 2. モジュールの最後で 1; してるか このケースの典型エラーメッセージ Foo/Bar.pm did not ret

    Perlモジュールの読み込みに失敗する場合のチェックポイント - Qiita
    note103
    note103 2015/12/26
  • \[Perl入学式] Mojoliciousの復習ついでにクリスマスっぽいこともする - mahoyaya’s diary

    2015/12/12に実施された「Perl入学式 in 東京 第5回」でPerl入学式デヴューを果たしたmahoyayaです。 懇親会でよっぱらったT氏にAdventCalenderへの投稿を 強要 お勧めされたので、Perl入学式Advent Calendar 2015の24日目に参加してみます。 昨日はhakata_oyukiさんのPerl入学式のもう一つの歴史でした。感想は人それぞれだと思いますが、自分はこの投稿を読んで震えました。 自分もPerl入学式をきっかけに色々なものへ貢献していきたいと強く思いました。 っていうか、いい話の後の投稿つらいwww Mojolicious::Liteを利用したwebアプリ開発 この記事はPerl入学式で教材として利用されているMojoliciousを利用したwebアプリ開発の学習をちょびっとだけ延長した内容です。 Perl入学式のwebアプリ開発

    \[Perl入学式] Mojoliciousの復習ついでにクリスマスっぽいこともする - mahoyaya’s diary
    note103
    note103 2015/12/24
    むっちゃ参考になる・・手元でやってみます
  • 喰らえ10年鍛えた俺の test.pl !! - 大西ブログ

    こんにちは、2011年くらいにディレクターになってめっきりPerl書かなくなった id:onishi です。 この記事は Perl5 Advent Calendar 2015 18日目です! 書き捨てのコードを test.pl という単一ファイルに __END__ と共に上に追加し続けて10年。3万行超に成長した俺の test.pl から厳選したコード群を喰らえ、という主旨の記事です。 今日のお品書きはこんな感じです。 list() fotolife wq punycode statuscode 結びの言葉 ( [PR]この目次ははてなブログの目次機能で自動生成しています ) ちなみに、書き捨てのコードから良いものは、プロジェクトのリポジトリに入れたり、~/bin/ に置いたりしています。今日は ~/bin/ に移った厳選処理も紹介しますね。 とにかく test.pl にいろんな処理が書か

    喰らえ10年鍛えた俺の test.pl !! - 大西ブログ
    note103
    note103 2015/12/20
    先日書いたPerl入門者向け記事のプロ版という感じだった http://note103.hateblo.jp/entry/2015/12/11/122756 むちゃくちゃ学びがある / 目次機能知らなかった使ってみよう
  • Perl初心者を卒業したら - the code to rock

    こちらは「Perl入学式 Advent Calendar 2015」の17日目の記事です。 Perl入学式 Advent Calendar 2015 - Qiita 昨日は @gch0929 さんの「Perlを使って簡易Markdownビューアを作ってみた」でした。 qiita.com 一気に読みこむ方法、僕も最近たまたま研究していたところでした。あと、YAPC::Asiaで声をかけたことは覚えていましたが、あれがPerl入学式と関わるきっかけになっていたとは! お役に立てて光栄です。 ;) さて日は、そのPerl入学式のカリキュラムを終えた卒業生が、次なる進路としてどんな言語や技術を選択すると良いか? ということについて考えてみたいと思います。 ただ前提として、ここで言う「卒業生」とは、かつて僕がそうであったように、それ以前にプログラミングをしたことがなかった人や、業がプログラマー

    Perl初心者を卒業したら - the code to rock
    note103
    note103 2015/12/17
    blogged. #Perl入学式
  • Perlを使って簡易Markdownビューアを作ってみた - Qiita

    初めまして、岩崎(@gch0929)です。普段はRubyを書いています。Perl入学式のAdvent Calenderがある!ということで思い切って参加してみました。 昨日は@q_gomaさんの「サポーター入学式」でした。教える側に立って得られる経験も多いですよね。楽しく読ませてもらいました。 自分は去年のPerl入学式の卒業生で、@htk291さんと同じく入学式をきっかけにWebエンジニア転職した中の一人です。入学式にはとってもお世話になりました。 今日はPerl入学式で教わった知識を生かして以前作ったMarkdownビューアの話をしたいと思います。 作ったもの M2Hというものを作りました。GitHubからクローンしてインストールスクリプトを実行するとMarkdownファイルをHTMLに変換するm2hコマンドが使えるようになります。 git clone https://github.

    Perlを使って簡易Markdownビューアを作ってみた - Qiita
    note103
    note103 2015/12/16
    岩崎さんCPANオーサーになってたのか・・ Good articleでした。あとハードル上げられたような・・ #Perl入学式
  • サポーター入学式 - ぬぬん!

    今年からPerl入学式のサポーターをしています@gomaaburayumaxです。よろしくお願いします\(^o^)/ この記事はPerl入学式アドベントカレンダー15日目の記事です。 昨日のアドベントカレンダーは@tomcha_の三目並べ(○×ゲーム)を実装してみたという記事でしたね! 文中にあった 全6回の内容を習得して初めてスタートラインに立てた状態 とても響きます(^^) 装備は万全、あとは出発するだけ!ってRPGを始める時のワクワク感に近いものを感じます。生活に密着した何かでも、趣味でも、ちょっとふざけた機能でも1つ作ればソレは大きな1歩なので、是非チャレンジしてもらいたいです\(^o^)/ さて、私からは大きくはない、小さなチャレンジのススメの話をします。 ちょっとした背景 私は今年の途中からサポーターとして参加しています。 去年のPerl入学式の受講生(実は完走してない)ではあ

    サポーター入学式 - ぬぬん!
    note103
    note103 2015/12/15
    サポーターやると受講生の立場以上に勉強になることありますね。今後ともよろしくお願いします〜 #Perl入学式
  • すぐに試せる砂場をつくる - the code to rock

    こちらは「Perl入学式 Advent Calendar 2015」の9日目の記事です。 qiita.com 昨日はいつもお世話になっています @tsucchi さんの「File::Basename の話。あるいはそこからの教訓的な何か」でした。 File::Basename の話。あるいはそこからの教訓的な何か - tsucchi の日記 2nd season ここで言われていることは今まさに自分が直面している事でもあって、大変参考になりました。僕自身はこういった「より洗練された書き方への修正」というのは、ある程度基礎を習得して、全体が見えるようになってから(余裕ができてから)でもいいかなと思っていますが、仕事でプログラミングをしているとまた違うかもしれませんね。 さて掲題の件、じつは以前にも同じようなことを書いたのですが、 note103.hateblo.jp 今見たらもう1年以上前の

    すぐに試せる砂場をつくる - the code to rock
    note103
    note103 2015/12/11
    書きました〜 #Perl入学式
  • 自分なりの役割について | 仮契約のエンジニア

    この記事は、Perl入学式 Advent Calendar 2015 10日目の記事です。 Perl入学式サポーターの@htk291です。 今回はPerl入学式での自分の役割について記事にしてみました。 「自分の役割」とは? 自分は2013年に生徒として初参加し、業務多忙によって1度登校拒否となりました。 その後 2014年に再入学し完走、そして今年からサポーターとして携わらせて頂いています。 Perl入学式に参加して、お世話になったサポーターの方や支えて下さった方に何か貢献できないかな?と考えた結果、年度から自分もサポーターとして参加させてもらっています。 (それと、入学式が終わったらPerlやらなくなってしまいそうだったので、継続的にやらなくてはならない状況がほしかったというのもあります) 自分は所謂できるエンジニアではないし、長い間業務でPerlを書いてきた訳でもないので、 どうや

    note103
    note103 2015/12/10
    毎年数人ずつ生徒→サポーターになる人がいるのは #Perl入学式 の不思議なところですね。経験の浅い人と長い人がどちらもサポーターやってる、というのが価値高い&効果的な所だと思う