Successfully reported this slideshow.
Your SlideShare is downloading. ×

Perlで伝統芸能

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
実用裏方 Perl 入門
実用裏方 Perl 入門
Loading in …3
×

Check these out next

1 of 47 Ad

More Related Content

Slideshows for you (18)

Viewers also liked (20)

Advertisement

Similar to Perlで伝統芸能 (20)

Recently uploaded (20)

Advertisement

Perlで伝統芸能

  1. 1. Perlで伝統芸能 hitode909
  2. 2. Perlで伝統芸能 hitode909
  3. 3. Perl
  4. 4. Perlの 印象
  5. 5. 伝統芸能 しにくい
  6. 6. 伝統芸能 しにくい 思いがち
  7. 7. やれば できる ことを 示したい
  8. 8. 伝統芸能
  9. 9. 伝統芸能 カットアップ
  10. 10. カット アップ
  11. 11. 新聞を 無作為に切り刻んで くっつけると 詩になる
  12. 12. Perlを使って Perlの ソースコード をカットアップ
  13. 13. 初級編 かんたん 中級編 ちょっとまし 上級編 むりやり
  14. 14. 初級編 かんたん
  15. 15. カットアップ初級編 •Perlのソースコードを入力する • Perlのソースコードを3文字ずつ切る • 切った文字をつなぎあわせて出力する
  16. 16. usese strict; client::UNIX; use Pod::Util::load_psgi/HellQuote($uri = ( server->[0], @args) = $conn = +{ }; [ 'AnyEventations: ", ($handler); ); } my $url use Testings; exit; eval "requestings; use Getopts{help}; $socket', workers = IO::Server (@back::Loader->load($handler);
  17. 17. usese strict; use Pod::Util::load_psgi/HellQuote($ur 違和感
  18. 18. 中級編 ちょっとまし
  19. 19. PPIを使う Parse, 構文解析してくれる Analyze CPANモジュール and 静的コード解析 Manipulate Perl (without perl)
  20. 20. カットアップ中級編 •Perlのソースコードを入力する • PPIでPerlのソースコードを字句解析して トークンごとに切る •切ったトークンをつなぎあわせて出力する
  21. 21. use FCGI::Client; use warnings; use IO::Socket::UNIX; use autodie; use Pod::Usage; use warnings; my $module = Plack::Util::load_psgi($opts{app}); my @try = File::Temp::tmpnam(); GetOptions( [ 'Starman', ' (workers=10)', workers => 10 ], [ 'Starman', ' (workers=10)', max_workers => sub { eval { Plack::Loader->load($handler->[0]; my $fname ) = Plack::Loader->load($handler->[0]) }; kill 9, $pid; print "-- server: $server_class ", ($how || ''), "n";
  22. 22. [ 'Starman', ' (workers=10)', workers => 10 ], [ 'Starman', ' (workers=10)', max_workers => sub { eval { Plack::Loader->load($handler->[0]; さっきより自然
  23. 23. [ 'Starman', ' (workers=10)', workers => 10 ], [ 'Starman', ' (workers=10)', max_workers => sub { eval { Plack::Loader->load($handler->[0]; さっきより自然 実行できない
  24. 24. 上級編 むりやり
  25. 25. カットアップ上級編 •Perlのソースコードを入力する • PPIでPerlのソースコードを字句解析して トークンごとに切る •Perlのソースコードをつなぎあわせる • 文法エラーがないとき出力 perl -wc • いいのが出るまで無限ループ
  26. 26. use strict; use strict; use strict; use HTTP::Message::PSGI; 1; __END__ =head1 NAME Plack::Handler::Standalone - adapter for HTTP::Server::PSGI =head1 SYNOPSIS % plackup -s Standalone --host 127.0.0.1 --port 9091 --timeout 120 =head1 DESCRIPTION Plack::Handler::Standalone is an adapter for default Plack server implementation L<HTTP::Server::PSGI>. This is just an alias for L<Plack::Handler::HTTP::Server::PSGI>. =head1 SEE ALSO L<Plack::Handler::HTTP::Server::PSGI> =cut
  27. 27. Perlソースコードを カットアップして 実行できる Perlソースコードの 生成に成功
  28. 28. 今後の予定 テストからソース コードを自動生成
  29. 29. Perlで 伝統芸能できる
  30. 30. ありがとう ございました
  31. 31. 補足 • URL • https://gist.github.com/1290440 • 実行方法 • perl cutup_high.pl ~/tmp/Plack/**/**.pm

Editor's Notes

  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

×