タグ

perlに関するtakkunn1611のブックマーク (52)

  • にひりずむ::しんぷる - 親プロセスと子プロセスでデータを送受信する方法のメモ

    pipe() とか socketpair() とか色々方法はあるけど、素直に IO::Pipe 使っとくと簡単便利。コアモジュールですし。 use strict; use warnings; use IO::Pipe; my $pipes = []; my $children = []; for my $i (1..10) { push @$pipes, my $pipe = IO::Pipe->new; my $pid = fork; if ($pid) { # parent $pipe->reader; push @$children, $pid; next; } # child die $! unless defined $pid; $pipe->writer; print {$pipe} "pid: $$, index: $i\n"; exit; } for my $pid (@$

  • Devel::CoverとJenkins - Articles Advent Calendar 2011 Test

    数日前にカバレッジの話がありましたが、そんな事言ってたって自分でカバレッジなんてとらないでしょ?僕はそうそうとらないです。 なのでそんなのJenkinsにやらせればいいんですよ。 自動的にカバレッジを計測しましょう (Jenkinsじゃなくてもそうですが)Devel::Coverでカバレッジを計測するならPERL5OPTで渡すのが一番簡単ですね。 export PERL5OPT="-MDevel::Cover" ちなみにJenkinsでテストしてるときにはなるたけテストに使っているPerlから見えるところに余計な依存ライブラリを置きたくないので、Devel::Coverはそれだけ別の場所にいれてます。こうすればDevel::Coverを使う時以外はDevel::Coverをインストールしてあるディレクトリを有効化しないようにしてます。 cpanm -l/path/to/devel-cove

    Devel::CoverとJenkins - Articles Advent Calendar 2011 Test
  • Webスクレイピング入門 - Articles Advent Calendar 2011 Casual

    Webスクレイピングとは? 例えば、昇天するくらいかわいい画像ください : あじゃじゃしたーのの画像が欲しいときにどうすればいいでしょうか*1。画像を1つずつ手作業で保存?面倒くさいですね。 そんなときのためのWebスクレイピングです。まずはじめは、Web::Scraperというモジュールを使ってみましょう。 use strict; use warnings; use autodie; use File::Basename; use File::Spec; use LWP::UserAgent; use URI; use Web::Scraper; my $url = 'http://blog.livedoor.jp/chihhylove/archives/3573873.html'; my $scraper = scraper { process '.main img.pict, .

    Webスクレイピング入門 - Articles Advent Calendar 2011 Casual
  • prove についてのおさらい - Articles Advent Calendar 2011 Test

    はじめに 忘年会シーズンまっただ中で皆さんは毎日お酒を飲んでいることでしょうが、僕は友達が少ないため忘年会とか全然無いので財布はまだホットな状態なんですが、なぜ僕の妹は小鳩ちゃんじゃないんだっていうかそもそも妹いないしもう死ぬって感じの xaicron です。こんにちは。 そろそろ prove について簡単に説明しときますよっと。 prove のよく使うオプション prove にはいっぱいオプションがあるんですが、ここではよく使いそうなやつをピックアップして紹介しちゃいますよ! -v, --verbose # いっぱい出力する -l, --lib # lib を INC についかする perl -Ilib 相当 -b, --blib # blib/lib とか blib/arch を INC につかする -Mblib 相当 -c, --color # カラフルになる! MSWin32 だと

    prove についてのおさらい - Articles Advent Calendar 2011 Test
  • Term::UI - サクッと対話的に入力を求める - Articles Advent Calendar 2011 Casual

    こんにちは、コンビニに行くたびに店員さんから舌打ちされるdameninngennです。サックリと書きます! 対話的に処理を進めるスクリプト書いたりしますよね!あの[yes/no]とか聞かれて入力するやつです!! 例えばrsyncで--dry-runオプション付きで一旦実行して、そこから[yes/no]を聞いて当にsyncするかどうかみたいな感じのやつです!!! まず、標準入力から受け取るだけであれば、 my $str = <STDIN>; chomp $str; # do something # ... こんな感じに受け取ったりするかと思いますが、当に[yes/no]が入力されたのか判定したりそうじゃなかったらもう一回入力求めたりとか書くのめんどくさいですよね。 そこらへんのめんどくささとかを解消してくれるTerm::UIというモジュールがあります。 誤解を招くかもしれませんがTerm

    Term::UI - サクッと対話的に入力を求める - Articles Advent Calendar 2011 Casual
  • テストのためにデーモンを自動的に起動するやりかた2011年版 - Articles Advent Calendar 2011 Test

    はじまりはパクり 最近あんまりコード書いてません、lestrratです。 テストを走らせる時にいろんな他のデーモンを立ち上げたり、そのテストのためだけの設定を先にしないといけなかったりとか色々ありますよね。結構長い間Makefile.PLはModule::Installで書いていたせいもあって、ちょっと前にxaicronさんが書いてたModule::Install::TestTargetでごにょごにょやってたのですが、ちょっと前にYappo/tokuhiromさんがproveで書いてたセットアップがまるっと自分の欲しい用途にも使える事に気づいたのでいろんなアプリケーションのテストをそのように変えてみました。 流れ proveでテストをすると、proveのプラグインを呼び出す設定ができるのですが、これをプラグインというよりテスト前に実行されるフックとして利用する事によって任意の設定用のコード

    テストのためにデーモンを自動的に起動するやりかた2011年版 - Articles Advent Calendar 2011 Test
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • perl ♡ tests - Articles Advent Calendar 2011 Test

    こんにちはとみたトミールです。先日会社の勉強会で枠をもらいまして、「あまりperlによる開発をしていない人へのperl紹介」的な話としてperlのカルチャーとしてのテスト、という紹介をしました。わりと評判がよかったのでほかのトラックと内容かぶるところありますが気にせず書き起こし的に書いてみます。 dev w/perl select modules write tests ... perlを使った開発の特徴として、モジュールが充実してる話はわりと有名とおもいますが、実際のコード書き始める前にまず使うモジュールを選ぶ作業があったりします。そのへんはそのうち話すとして。 ほかに、テストを大事にするというかテストを書いてから実際のコードを書くという文化があるのが誇れる点だとおもっていて、 perl's test code = just simple perl script perlのテストコードは

    perl ♡ tests - Articles Advent Calendar 2011 Test
  • 配列操作をカジュアルに - Articles Advent Calendar 2011 Casual

    こんにちは。新潟在住Perl人、neko_gata_sです。AdventCalendarの敷居を下げにきました。ものっそいカジュアルな話をします。今日はList::Utilについて書こうと思います。 どちらが良いコード? さて、いきなりですが、以下のふたつのコードを比べてみてください。 use strict; use warnings; my @shugo_charas = qw/ran miki suu dia/; my @shugo_charas_uc; foreach my $shugo_chara (@shugo_charas) { push @shugo_charas_uc, uc $shugo_chara; } use strict; use warnings; my @shugo_charas = qw/ran miki suu dia/; my @shugo_charas_

    配列操作をカジュアルに - Articles Advent Calendar 2011 Casual
  • それCallbacksで - DBIxを作りだす前に - Articles Advent Calendar 2011 Dbix

    どうもkazeburoです。DBIx Trackなのに、DBIxを作らない話。 myfinderさんがDBIxを作る第一歩としてDBIのサブクラスの作り方を紹介しましたが、実際にDBIxを作り出す前に、その機能がDBIの標準機能でできないか調べるのがオススメです。 Callbacksの基 CallbacksはDBIに標準で用意されているHook機能です。 my $dbh = DBI->connect('dbi:SQLite:dbname=test.db','','', { RaiseError => 1, PrintError => 0, Callbacks => { connected => sub { ... } } }); 接続時のAttributesにCallbacksを追加します。上では接続が完了(connected)したらcoderefが呼び出されます。 接続時にテーブルを作

    それCallbacksで - DBIxを作りだす前に - Articles Advent Calendar 2011 Dbix
  • 業務終了後、git logとDist::Makerでさっさと帰る話。 - Articles Advent Calendar 2011 Casual

    こにゃにゃちはー。@hisaichi5518です。 今、バイトしてる会社では日報を送らなければなりません。 日の業務とか日の雑感とかを送るアイツです。こういうのって結構めんどいですね。 というわけで、日報を軽く自動化しましょう! なんかしらコードを書いたらコミットすると思います。コミットのログ=行った業務のログですね!!!!!!! つまりgit logで全部解決するわけです。会社でsvnを使ってる場合でも、git-svn使えば解決です。 $ git log --since=yesterday --author=hisaichi5518 --pretty=format:"- %s" こんなの毎回打つのだるいので、.bashrcにaliasを書きます。 alias nippou_='git log --since=yesterday --author=hisada --pretty=for

    業務終了後、git logとDist::Makerでさっさと帰る話。 - Articles Advent Calendar 2011 Casual
  • オレオレDBIxへの第一歩 - DBIのサブクラスを作る - Articles Advent Calendar 2011 Dbix

    注意書き ここで紹介しているオレオレDBIxモジュールの作成方法は、ある種呪いにも似た副作用を発生させる可能性があるので十分に検討した上で利用してください。 あわせて DBIx 名前空間にあるモジュールは用法、用量を守って正しくお使いください。 はじめに こんばんは、DBIx トラック2日目をやる myfinder です。 今回は DBIx::ナントカ の紹介ではなく、オレオレDBIxへの第一歩として DBI のサブクラスを作る方法について書きます。 はじめの一歩 「千里の道も一歩から」という言葉がありますが、オレオレDBIxもまずは一歩を踏み出さないと始まらないと思います。 ということで、下記が最小のオレオレDBIxです。 use strict; use version; our $VERSION = '0.03'; package DBIx::OreOre; use parent qw

    オレオレDBIxへの第一歩 - DBIのサブクラスを作る - Articles Advent Calendar 2011 Dbix
  • use Test::Attribute::AutoLevel - Articles Advent Calendar 2011 Test

    こんにちは、カワ(・∀・)イイ!!アイコンで有名なnekokakだよ。 今日はカワ(・∀・)イイ!!僕がつくったTest::Attribute::AutoLevelという イカしたモジュールを紹介してみたいと思うんだ。 僕はテストを書く時にテスト用の便利関数を定義することがよくあるんだ。 そのテスト関数の中でTest::Moreのテスト関数を実行するんだけど、 そこでテストがコケたときに表示されるエラーメッセージがおかしなことになるんだ。 例えば use strict; use warnings; use Test::More; sub test_cute_icon { my $icon = shift; is $icon->{state}, 'cute'; } { package My::Icon; sub new { my ($class, $opts) = @_; bless $op

    use Test::Attribute::AutoLevel - Articles Advent Calendar 2011 Test
  • perl でテストを始めよう!! - Articles Advent Calendar 2011 Test

    はじめに こんにちはこんにちは!最近会社のモニターが二枚になって持て余している xaicron です。 さて、Test Track と称して始まったトラック。全部よめばあなたもテストを書かずには生きていけない、そんな身体に大変身していること間違いなしです。 とりあえず今日は初日なので、perl でテストを書くときに必ずと言っていいほど利用する Test::More を使ったテストの書き方を書こうと思ます。 また、「テスト」とざっくりといってもいろいろなものがありますが、その辺の細かい話はきっと ikasam_a さんが書いてくれるのでスルーします。 Test::More チートシート まず、More というだけあって、結構機能がいっぱいあるので、チートシートを先にあげておきます。perldoc Test::More のほぼコピペですが、きっと皆さんは perldoc Test::More

    perl でテストを始めよう!! - Articles Advent Calendar 2011 Test
  • DISられても負けないWindows Perl Hacker養成講座 - Articles Advent Calendar 2011 Casual

    こんにちわ。Linuxも使ってるのに何故かWindowsハッカー扱いされていて、主にPerl Geekからは毎度WIN32パッチを送ってくる面倒な奴として知れ渡ってしまったmattnです。 そんな僕がPerl Hackerに粘着するパッチを提供する為に使っているツールを紹介します。 エディタはVimです。僕の人生の何分の一かはVimのパッチ書きに費やされているかもしれませんね。 もちろん、perlomni.vimperldoc.vim は必須です。入れておきましょう。 僕がWindowsPerlを書いてて良くやらかすのが ファイルのエンコーディングをcp932のままリリースしちゃった ファイルのフォーマットをdosのままリリースしちゃった パッケージ名を変えたのにpmファイルを動かしてなかった。もしくはファイル名が小文字だった。 って所ですがこれを極力抑制するべく、perlvali

    DISられても負けないWindows Perl Hacker養成講座 - Articles Advent Calendar 2011 Casual
  • テストデータどうしてますか?

    Difference between mysql_fetch_array and mysql_fetch_assoc in PHPVineet Kumar Saini

    テストデータどうしてますか?
  • Qudo, daemontools, capistranoを使ってWorker処理の仕組みを作る - $shibayu36->blog;

    最近PrePANの開発を手伝っていて、Workerの仕組みをQudoで作りました。初めてWorkerの仕組みを一から作ったのでメモしておきます。 Worker処理に必要な部品、それぞれのQudoでの実装、Workerプロセスを管理するためのdaemontools、capistranoでのdeployという順番で書いていきます。 Workerとは ざっくり言うと非同期に色々実行するための仕組みです。perlだとTheSchwartz、Qudo、Jonkとかがあります。 Worker処理に必要な部品 今回作ってみて、Worker処理は大きく分けて次の三つくらいのものが必要だと分かりました。 ApplicationからJobをinsertする部分(Qudo) 実際のJobの処理(Qudo::Worker) Jobの実行を管理して、Jobに処理を委譲する部分(Qudo, Qudo::Paralle

    Qudo, daemontools, capistranoを使ってWorker処理の仕組みを作る - $shibayu36->blog;
  • Perl Tutorial Hub

    Introduction "There Is More Than One Way To Do It" is true for both writing and learning Perl. Here we collect fresh Perl tutorials, so you can find one that fits you best. Learn About Good Tutorials Some things to keep in mind when considering the quality of a tutorial. Recommended Tutorials These are fresh tutorials that teach a modern style of Perl. They are great for newcomers to learn the lan

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • IRC botを駆使すると捗るらしいので手始めにlleval bot作った - Islands in the byte stream (legacy)

    Yokohama.pm#8でのYappoの話によれば、IRC botを駆使すると捗るらしい。 IRC botは作ったことがなかったので練習としてllevalを実行するbotを作ってみた。botのフレームワークとしてはAnySanを使い、llevalへのアクセスはLLEval-Clientを使った。 https://github.com/gfx/LLEval-Client/blob/master/example/irc-bot.pl #!perl -w use strict; use 5.10.0; use AnySan; use AnySan::Provider::IRC; use LLEval; use Encode qw(encode_utf8 decode_utf8); use constant _DEBUG => $ENV{LLEVAL_BOT_DEBUG}; use if _DE

    IRC botを駆使すると捗るらしいので手始めにlleval bot作った - Islands in the byte stream (legacy)