Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome, Safari or Firefox browser.

お時計さん ->
のこり時間 ->

YAPC::Fukuoka 前夜祭

LT: 夏の夜を涼しくするPerlの話

whoami

Likk(この後厨二設定な長い名前が続く)
Twitter:likk
Github :likk
Work:Mobile Factory
恋Simアプリの中の人 兼
位置情報ゲームアプリの中の人

唐突な宣伝タイム

何か噂によると明日の
トートバッグスポンサー企業
らしいという話を聞きました。
(よろしくお願い致します)

夏の夜を涼しくするPerlの話

明日で7月です。(梅雨があければ) 本格的な夏の季節です。
夏を涼しく過ごしたい

夏の夜を涼しくするPerlの話

例えば怪談
怪談といえば死者が出て来る。

JRPG的アンデッド

死者(アンデッド)
  L 肉体がないよ派(ホーント)
    L 幽霊・ゴースト
    L レイス(生前は高位の者/死神)
    L ポルターガイスト // 現象の方を指すケースが多い
  L 肉体はあるよ派
    L あるけど腐ってるよ派
      L ゾンビ(操られた死体) // 本来はゴーレムに近い
      L グール(死喰鬼)
      L レベナント(死に戻り) // 我々のイメージするゾンビはこっちに近い
    L あるけど本体は肉体じゃないよ派
      L ワイト(肉体を覆う光が本体)
    L あるけど骨だけだよ派
      L スケルトン
  L 実は死んでないよ派
    L 元は妖精だよ派(でもアンデッドのような特性があるよ)
      L デュラハン
      L バンシー
    L 最初から生きて無いよ(アンデッドじゃないよ)派
      L 材料が肉や骨なだけだよ派
        L ボーンゴーレム
        L フレッシュゴーレム
  

JRPG的アンデッドの特性

  • 死なない(死ねない)
  • 聖なる力に弱い

それっぽいPerlの組み込み関数

  • die()
  • bless()

夏の夜を涼しくするPerlの話

Acme::Undead
use すると die() で死なない、bless() で死ぬ

Acme::Undead | SYNOPSIS

      use Acme::Undead;

      die('undead is not die');
      print 'Hell world'; #Hell world

      my $self = bless { }, __PACKAGE__; #blessed (die)
      print 'Hello World'; 
      

Acme::Undead

一回 use すると後がめんどいので
no Acme::Undead
すると元の挙動に戻る

Acme::Undead

あとついでに、sleep() も効果がなくなるようにした。

(アンデッドが寝る例があったら教えてください。)

夏の夜を涼しくするPerlの話

われわれに一番身近なアンデット

夏の夜を涼しくするPerlの話

Zombie (process)

Acme::Undead

ということで、DESTROY 時に Zombie process 作った上で無限ループします use した上で fork したら wait() 潰したい

Acme::Undead

あとついでに、SIGINT SIGTERM 潰しました。 SIG KILL 潰すうまい方法ないですかね?

Acme::Undead

Acme::Undead で夏を涼しく過ごしましょう Acme::Undead はさらなる アンデッドっぽい振る舞いを募集してます

Acme::Undead

おまけ 時間余ってる?

夏の夜を涼しくするPerlの話

最近知った挙動 知ってる人はすいません

夏の夜を涼しくするPerlの話

last/next/redo は無名ブロックも対象になる

夏の夜を涼しくするPerlの話

    for (1..10){
        say $_;
            {
                last; #ここでループから抜けたい
            }
    }

1
2
3
4
5
6
7
8
9
10

夏の夜を涼しくするPerlの話

    use strict;
    {
      say 1;
      next;
      say 2;
    }
    continue {
      say 3;
    }

1
3

夏の夜を涼しくするPerlの話

意識しないでブロック内で last/next/redo 書いたこと過去に無いだろうか…… 「多分無いと思うけど、背筋がヒヤッとする一瞬ありましたねえ」

夏の夜を涼しくするPerlの話

perl でヒヤッとした話
教えてください

夏の夜を涼しくするPerlの話

ありがとうございました。

Use a spacebar or arrow keys to navigate