タグ

ブックマーク / perl-users.jp (33)

  • 無名スカラー変数のリファレンス

    my $array_ref = [qw/a b c/]; my $hash_ref = +{1 => 'a', 2 => 'b', 3 => 'c'}; my $code_ref = sub {'a'}; Perlでは、無名配列のリファレンス 無名ハッシュのリファレンス、無名サブルーチンのリファレンスはこのように書けますが、無名スカラーのリファレンスを書く特別な構文はないので、以下のように書きます。 my $scalar_ref = \do {'a'}; これはDamian Conway先生オススメのインサイドアウトオブジェクトのコンストラクタで見られる書き方です。 { package Person; my %props = (); sub new { my $class = shift; $prps{name} = 'John'; bless \do{''}, $class; } sub

    yappo
    yappo 2016/11/08
  • とある言語の例外処理 またはTry::Tinyの落とし穴 - Articles Advent Calendar 2010 Casual

    今年の Advent Calendar もいよいよ中盤戦。 もういくつ寝ると、メリーク×ト×ス! 最近、休日になると漫画を大人買いするのが趣味になってしまったいけない大人になってしまった僕ことzentoooですが、最近のお気に入りは「未来日記」です。あー由乃かわいいなーかーわいいなーーーかーーーわいーなあーーーーあーあーあーーーーーーあーーーーーーーーーーー頭おかしいけど。 ふぅ。 さて、みなさん、コード書いてますか、コード読んでますか。 短く簡潔なコードを読むと、気持ちもスッキリしますね。 でも、たまには例外処理なんてどうですか。 Perlで例外処理ができるなんて、なんか渋くないですか。 Perlにおけるベーシックな例外処理 冗談はさておき、初めてのPerlというハレンチなを読んだりすると、多分書いてあるのは以下のような方法による例外処理です。実際に初めてのPerlに書いてあるかどうか

    とある言語の例外処理 またはTry::Tinyの落とし穴 - Articles Advent Calendar 2010 Casual
    yappo
    yappo 2013/02/18
    構文上 Try::Tiny のこの落とし穴にもハマらんってのも利点の一つだけど言うと燃えそうだった
  • Text::Xslate TTerse の深淵なる罠 - Articles Advent Calendar 2012 Casual

    みなさんこんにちわ!みなさんはテンプレート使ってますね! Xslate つかってますね! TTerse 使ってますね!今回はうっかりハマってしまう罠を教えます! SET で作った変数はブロックスコープである ブロックスコープなんだけど SET したスコープの中にあるブロックはスコープの対象外なので以下のテストは動かなかったりするんだ。 my $tx = Text::Xslate->new({ syntax => 'TTerse' }); my $ret = $tx->render_string(<<TMPL,); [% SET chin = 'kiru' -%] [% MACRO xaicron BLOCK -%] [% chin = 'kiranai' -%] [% chin -%] [% END -%] [% xaicron() -%] [% chin -%] TMPL is $ret

    Text::Xslate TTerse の深淵なる罠 - Articles Advent Calendar 2012 Casual
    yappo
    yappo 2012/12/19
    かいた、みんなもこのくらいの分量でいいから誰かエントリ書いて下さい!泣いちゃうよ! “Text::Xslate TTerse の深淵なる罠 - Perl Advent Calendar Japan 2012 Casual Track”
  • 最強のケンオールを求めて - Parse::JapanesePostalCode - Articles Advent Calendar 2012 Hacker

    こんばんは、最近自己紹介する機会があったので「空前のKEN_ALL.CSVブームを作った事で有名です」って言ったら結構通じた yappo です。 と言う事で今日はわけあってどのように KEN_ALL.CSV を処理しているかについて書こうと思います。 使い方に関しては https://metacpan.org/module/Parse::JapanesePostalCode https://github.com/yappo/p5-Parse-JapanesePostalCode こちらをご覧頂ければいいです。マジ簡単だから誰でも使えます。 前提知識 http://www.post.japanpost.jp/zipcode/dl/readme.html こちらの 郵便番号データファイルの形式等 を良く読むとこのエントリの理解が深まります。 Parse::JapanesePostalCode

    最強のケンオールを求めて - Parse::JapanesePostalCode - Articles Advent Calendar 2012 Hacker
    yappo
    yappo 2012/12/12
    書いたよー #perladvent 最強のケンオールを求めて - Parse::JapanesePostalCode - Perl Advent Calendar Japan 2012 Hacker Track:
  • /articles/advent-calendar/2012

    yappo
    yappo 2012/12/06
    デザインもモダンになってるのでマジおねがいします RT @mattn_jp: キミも Perl Advent Calendar で Perl をアツく語らないかッ!!
  • あるある ORM ドハマリ大辞典 - Articles Advent Calendar 2011 Dbix

    こちら Yappo の日でございますが、 Yappo の執筆ペースが芳しくないので、日も社員のオオサワが代打で「DBI」や「ORM」について書かせて頂きたいと思います。 trigger / hook point insert, update, delete クエリの前後処理を拡張して、レコード作成時刻の設定や update 時刻の更新はたまたレコード削除時に削除テーブルへの自動コピー等を、一度ベースクラス上で定義しておけば新しく作るテーブルへも use parent する等して簡単に適用出来きるように便利になりますが、うっかりしてると後続の開発者がハマったり制約が出てきます。 DBMS の trigger ORM の機能の trigger を多用していると、後続は DBMS 体の trigger を使う事に躊躇します。使っちゃいけないというわけではないでしょうが、一つのクエリに対する副

    あるある ORM ドハマリ大辞典 - Articles Advent Calendar 2011 Dbix
    yappo
    yappo 2011/12/24
    perl advent calendar 2011 DBIx track 書いたよ! - あるある ORM ドハマリ大辞典
  • 目標達成カウントダウンを華々しく - Articles Advent Calendar 2011 Anysan

    今日は AnySan を利用したプロダクトをどう使うかの実例を紹介するよ! このトラックに参加したい人は http://atnd.org/events/22890 からどしどし頼むぜ! 皆さんは Web サービスを開発する上で様々な数値目標と向き合うと思います。 そんな中でも会員数の目標数値はなかなか比重が重いんじゃないでしょうか? 後少しで、会員数が目標達成するからと言って関係者全員がそわそわと最新の数値を見るページを F5 連打してたら捗らない上に self-dos になってしまう危険性もあります。 そういった wktk 感を感じつつ皆が捗る為に、あとどのくらいで目標に達するかをプロジェクトIRC チャンネルに流す仕組みを作ったら捗りそうな気がしたので、試しに作った物を晒します。 ikachan を導入している人で、じわじわカウントダウンして興奮したい方はご自由にお使いください。

    目標達成カウントダウンを華々しく - Articles Advent Calendar 2011 Anysan
    yappo
    yappo 2011/12/06
    ikachan 活用事例 肩ならし編
  • hellow ikachan! - Articles Advent Calendar 2011 Anysan

    今日は AnySan を利用したプロダクトを紹介するよ! このトラックに参加したい人は http://atnd.org/events/22890 からどしどし頼むぜ! 皆さんは、日々のお仕事の中で様々なバッチ処理やデプロイツールまたはCIツールを動かすと思います。 一般的なネット系のエンジニア仕事のコミュニケーション手段として IRC を用いているというのが有名ですが、これらバッチ処理の処理状況等を普段の生活環境である IRC に流せたら便利だとおもいませんか? いや、便利なんです!すごいですよ! そこで僕はどんな環境からでも IRC 通知をするための環境として ikachan を作りました。 IRC への発言を Web API 経由で操作出来るんです。 Perl とかすら入ってないサーバでも curl などの HTTP が喋れる環境 or echo コマンドと telnet コマンドさ

    hellow ikachan! - Articles Advent Calendar 2011 Anysan
    yappo
    yappo 2011/12/05
    ぎりぎりまにあった。。
  • AnySan with Twitter - Articles Advent Calendar 2011 Anysan

    お兄さんじゃないよ、えにいさんだよ。 このトラックに参加したい人は http://atnd.org/events/22890 からどしどし頼むぜ! 初日に AnySan は Twitter や FriendFeed にも対応していると言いましたね、実際これらは IRC と同じくらいシンプル&同じインターフェィスで使えるんだ。 今日はシンプルに Twitter を使って、自分宛に @ を飛ばされた時に返事を返すコードを紹介しますね。 use strict; use warnings; use utf8; use AnySan; use AnySan::Provider::Twitter; use Config::Pit; my $username = shift; my $config = pit_get("example.com", require => { consumer_key =>

    AnySan with Twitter - Articles Advent Calendar 2011 Anysan
    yappo
    yappo 2011/12/04
    まだ、他の執筆者増えなくてとてもかなしい。。。
  • the difference between AnyEvent::IRC::Client - Articles Advent Calendar 2011 Anysan

    こんばんわ!今日もれっつえにーさん! 参加したい人は http://atnd.org/events/22890 からどしどし頼むぜ! 昨日は AnySan を使うと簡単に irc bot をかけるって話をしたね。 じゃぁ、 AnyEvent::IRC::Client 生と比べてどう違うか?ってのを yusukebe 作のIRC 版全裸 botとの比較をしてみましょう。 元のページが消えてて archive.org にしか残ってなくて、ページ開くのが遅いので元ノーコードをリファクタリングしつつ抜粋すると以下のようになります。 use strict; use warnings; use utf8; use Acme::Zenra; use AnyEvent; use AnyEvent::IRC::Client; use Encode; my $channel = $ARGV[0] or die

    the difference between AnyEvent::IRC::Client - Articles Advent Calendar 2011 Anysan
    yappo
    yappo 2011/12/03
    二日目書いたよ!
  • hellow AnySan World! - Articles Advent Calendar 2011 Anysan

    こんばんわ!今日から AnySan のトラックが始まりましたね! 参加したい人は http://atnd.org/events/22890 からどしどし頼むぜ! AnySan とは何かをおさらいすると AnyEvent をベースとしたリアルタイミングメッセージング用の bot を簡単に作る為のツールキットなんだ。 AnyEvent::IRC::Client との違いが解らない!と良く言われるけど AnySan は bot で使う為に必要な機能だけを実装した薄いラッパーになってるんだ。 もちろん IRC だけじゃなくて Twitter や FriendFeed にも対応しているんだ。将来的には Skype や Facebook や Google+ などリアルタイムコミュニケーションを薄くラップするよていだYo♪ どのサービスでも同じインターフェィスで使う事を目的としてるので perldoc

    hellow AnySan World! - Articles Advent Calendar 2011 Anysan
    yappo
    yappo 2011/12/02
    AnySan trackの1日目書いたよー!!1111
  • /articles/advent-calendar/2011

    yappo
    yappo 2011/11/30
    There are one day left until the 2011 Perl Advent Calendar Japan
  • pod に対応する - Articles Advent Calendar 2010 Meta_adcal

    クリスマスの六木は人大杉だとおもったtokuhiromですこんにちは。 正直、最近はてな記法つかってなくて、まじ忘れてるし、はてな記法だけしかサポートしてないのってイケてなくね?っておもったので、pod で書けるようにした。 mattn さんによって、meta data のうめこみができるようになっているから、 タイトル meta-format: pod meta-author: tokuhirom pod pod みたいなかんじでかけばいいようにした。 pod を html に変換するには Pod::Simple::XHTML をつかえばいい。 use Pod::Simple::XHTML; my $p = Pod::Simple::XHTML->new(); $p->output_string(\my $out); $p->html_header(''); $p->html_foot

    pod に対応する - Articles Advent Calendar 2010 Meta_adcal
    yappo
    yappo 2010/12/28
    リンク踏んだらどう見ても児童ポルノ(NHK製)が出てきてびびった RT @mattn_jp: ひどいリンク! / pod に対応する - JPerl advent calendar 2010 meta_adcal Track
  • Smart::Args でバリデーションする。またはバリデーターとして必要な事 - Articles Advent Calendar 2010 Casual

    Smart::Args とは 実行時型チェック / パラメーターチェックが出来る便利なモジュールです。 現在、 Params::Validate がデファクトスタンダードっぽいんですが、速度が遅かったりするので正直微妙です。 まぁ、速度っていうか色々面倒い感じだなーって思ってきた人も多いと思います。 Smart::Args の使い方 use Smart::Args; sub foo { args my $p => 'Int', my $q => { isa => 'Int', optional => 1 }; say $q ? "$p, $q" : $p; } foo(p => 1); # 1 foo(p => 1, q => 2); # 1, 2 これまた簡単! 例えば、以下のようにすると foo(p => 'str'); 以下のように怒られます。 Validation failed f

    Smart::Args でバリデーションする。またはバリデーターとして必要な事 - Articles Advent Calendar 2010 Casual
    yappo
    yappo 2010/12/25
    casual trac の俺の分の今日の分まにあったよ!!!!11
  • dan.pm に迫る - Articles Advent Calendar 2010 Acme

    こんにちわ。前日に PerlIO ネタが出てきたので、ここぞとばかりに dan.pm を登場させましょう。 dan.pm とは何をするためのモジュールかというと、特定のレキシカルスコープの文字リテラルを無効化したりフィルタを噛ます事が出来るプラグマモジュールです。簡単にいうと空気を読まなかったり空気を読み替えます。 Acme::dan とかになってないですが、プラグマなので dan としました。れっきとした Acme の一員です。 dan を入れよう dan は既に CPAN レディなので普通に cpanm で入れられます。 $ cpanm dan --> Working on dan Fetching http://search.cpan.org/CPAN/authors/id/Y/YA/YAPPO/dan-0.551.2.tar.gz ... OK Configuring dan-0.

    dan.pm に迫る - Articles Advent Calendar 2010 Acme
    yappo
    yappo 2010/12/24
    acme trac 24日目かいたです #jpac2010
  • /articles/advent-calendar/2010/perl6

    yappo
    yappo 2010/12/10
    このトラックとっても良い RT @lopnor: 12/2と12/3が書けました。
  • HTML5 な今だからこその位置情報ハンドリング♡ - Geo::Coordinates::Converter - Articles Advent Calendar 2010 Hacker

    Shibuya.PM #15 の会場からこんにちわyappoです。 なにを紹介をしようと考えた時に、以外と使いどころがあるGeo::Coordinates::Converterについて書こうとおもいました。 これが何が良いかというと、緯度経度の測地系( wgs84 とか tokyo )やら、表示フォーマット(degree, dms, geohash)をプラガブルに追加して使えるって事なんです。iAreaとかにも対応しております。 まー作った当時から似たような物は沢山あったのですが、どれも特定の測地系に特化していたり古い時代の Perl みたいなモジュールだったりで使いにくかったりしたので作ったのであります。 とりあえずつかおう! まずはインストールです。 $ cpanm Geo::Coordinates::Converter で入ります簡単ですね。 使い方はとっても簡単で use comm

    HTML5 な今だからこその位置情報ハンドリング♡ - Geo::Coordinates::Converter - Articles Advent Calendar 2010 Hacker
    yappo
    yappo 2010/12/09
    hacker track を公開したよ!
  • Perl Advent Calendar 書き方 - Articles Advent Calendar

    このドキュメントは、perl-users.jp で公開されている Advent Calendar のwriter向けにカレンダー記事の公開方法について説明したものです。 この Advent Calendar は、一般利用者に対しては以下のURLで公開されます。 /articles/advent-calendar/2012/ トラックは以下のものがあります。 Hacker Track Casual Track 各トラックの内容については、上記 URL および参加者募集要項等を見てください。 各トラックの記事は、GitHub 上にテキスト形式で配置します。 https://github.com/perl-users-jp/perl-advent-calendar/tree/master/ 例えば、記号トラックの2012年12月5日用の記事であれば、 https://github.com/per

    Perl Advent Calendar 書き方 - Articles Advent Calendar
    yappo
    yappo 2010/12/06
    どね RT @mattn_jp: .@Yappo 時間ある時でよいのでatndの説明にこのURL貼っておいてもらえますか
  • /articles/advent-calendar/2010

    yappo
    yappo 2010/12/01
    JPerl Advent Calendar 2010 公開しましたー
  • トランザクションについて - JPerl Advent Calendar 2009

    トランザクションについて - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? こんにちわ! Yappo です! 2十日目は Data::Model でのトランザクションの使い方です。 トランザクションについての説明は省きます。 http://e-words.jp/w/E38388E383A9E383B3E382B6E382AFE382B7E383A7E383B3.html このあたりを読めばいいんじゃないでしょうか。 早速試しましょう。 ちなみに実験するときはトランザクションに対応しているRDBMSを使ってください。 MySQL の場合だと MyISAM でためしても MyISAM がトランザクションに対応していないのでいみがありません。 InnoDBで試しましょう。 なお、 install_model 

    yappo
    yappo 2009/12/22
    トランザクションについてコピペして書いた