SlideShare una empresa de Scribd logo
1 de 47
Perlで伝統芸能

 hitode909
Perlで伝統芸能

 hitode909
Perl
Perlの
 印象
伝統芸能
しにくい
伝統芸能
しにくい
思いがち
やれば
 できる
 ことを
示したい
伝統芸能
伝統芸能
カットアップ
カット
アップ
新聞を
無作為に切り刻んで
  くっつけると
   詩になる
Perlを使って
  Perlの
 ソースコード
をカットアップ
初級編   かんたん



中級編   ちょっとまし



上級編   むりやり
初級編
 かんたん
カットアップ初級編

•Perlのソースコードを入力する

• Perlのソースコードを3文字ずつ切る

• 切った文字をつなぎあわせて出力する
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);
usese strict;
use Pod::Util::load_psgi/HellQuote($ur



        違和感
中級編
 ちょっとまし
PPIを使う
Parse,          構文解析してくれる
Analyze          CPANモジュール
and                静的コード解析
Manipulate Perl
(without perl)
カットアップ中級編

•Perlのソースコードを入力する

• PPIでPerlのソースコードを字句解析して
トークンごとに切る

•切ったトークンをつなぎあわせて出力する
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";
[ 'Starman', ' (workers=10)', workers => 10 ],
[ 'Starman', ' (workers=10)', max_workers => sub {
eval { Plack::Loader->load($handler->[0];




  さっきより自然
[ 'Starman', ' (workers=10)', workers => 10 ],
[ 'Starman', ' (workers=10)', max_workers => sub {
eval { Plack::Loader->load($handler->[0];


  さっきより自然
   実行できない
上級編
 むりやり
カットアップ上級編
•Perlのソースコードを入力する

• PPIでPerlのソースコードを字句解析して
 トークンごとに切る

•Perlのソースコードをつなぎあわせる

• 文法エラーがないとき出力 perl -wc

• いいのが出るまで無限ループ
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
Perlソースコードを
 カットアップして
   実行できる
Perlソースコードの
   生成に成功
今後の予定
テストからソース
コードを自動生成
Perlで
伝統芸能できる
ありがとう
ございました
補足

•   URL

    •   https://gist.github.com/1290440

•   実行方法

    •   perl cutup_high.pl ~/tmp/Plack/**/**.pm

Más contenido relacionado

La actualidad más candente

Cinnamon - simple deploy tool
Cinnamon - simple deploy toolCinnamon - simple deploy tool
Cinnamon - simple deploy tool
Yuki Shibazaki
 
詳説ぺちぺち
詳説ぺちぺち詳説ぺちぺち
詳説ぺちぺち
do_aki
 
2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる
airtoxin Ishii
 
WordPress関数の処理コストを考えよう
WordPress関数の処理コストを考えようWordPress関数の処理コストを考えよう
WordPress関数の処理コストを考えよう
Naoki Matsuda
 
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしようFabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしよう
max747
 
Lightweight Language Tiger 2010
Lightweight Language Tiger 2010Lightweight Language Tiger 2010
Lightweight Language Tiger 2010
biscuitjam
 

La actualidad más candente (18)

Cinnamon - simple deploy tool
Cinnamon - simple deploy toolCinnamon - simple deploy tool
Cinnamon - simple deploy tool
 
Yapc -asia 2012 lt @studio3104
Yapc -asia 2012 lt @studio3104Yapc -asia 2012 lt @studio3104
Yapc -asia 2012 lt @studio3104
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRuby
 
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
 
Using Dancer
Using DancerUsing Dancer
Using Dancer
 
あらためてPHP5.3
あらためてPHP5.3あらためてPHP5.3
あらためてPHP5.3
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
 
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
 
WordPress のキャッシュ機構
WordPress のキャッシュ機構WordPress のキャッシュ機構
WordPress のキャッシュ機構
 
詳説ぺちぺち
詳説ぺちぺち詳説ぺちぺち
詳説ぺちぺち
 
2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる
 
WordPress関数の処理コストを考えよう
WordPress関数の処理コストを考えようWordPress関数の処理コストを考えよう
WordPress関数の処理コストを考えよう
 
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしようFabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしよう
 
HHVM Hack
HHVM HackHHVM Hack
HHVM Hack
 
Fabric Essentials
Fabric EssentialsFabric Essentials
Fabric Essentials
 
Lightweight Language Tiger 2010
Lightweight Language Tiger 2010Lightweight Language Tiger 2010
Lightweight Language Tiger 2010
 
Everyday Life with clojure.spec
Everyday Life with clojure.specEveryday Life with clojure.spec
Everyday Life with clojure.spec
 
Mock and patch
Mock and patchMock and patch
Mock and patch
 

Destacado

ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
Hiroh Satoh
 
コドモのソーシャルネットワーク事情~親ならこれだけはやっておけ
コドモのソーシャルネットワーク事情~親ならこれだけはやっておけコドモのソーシャルネットワーク事情~親ならこれだけはやっておけ
コドモのソーシャルネットワーク事情~親ならこれだけはやっておけ
はなずきん Hana
 
Git hubで雑誌記事を執筆するのは間違っているだろうか
Git hubで雑誌記事を執筆するのは間違っているだろうかGit hubで雑誌記事を執筆するのは間違っているだろうか
Git hubで雑誌記事を執筆するのは間違っているだろうか
Kakigi Katuyuki
 

Destacado (20)

ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
 
「子供がハッカーに興味をもった時に備えて」考える会オープニング
「子供がハッカーに興味をもった時に備えて」考える会オープニング「子供がハッカーに興味をもった時に備えて」考える会オープニング
「子供がハッカーに興味をもった時に備えて」考える会オープニング
 
Javascriptで無限ループを実現する5つの方法
Javascriptで無限ループを実現する5つの方法Javascriptで無限ループを実現する5つの方法
Javascriptで無限ループを実現する5つの方法
 
コドモのソーシャルネットワーク事情~親ならこれだけはやっておけ
コドモのソーシャルネットワーク事情~親ならこれだけはやっておけコドモのソーシャルネットワーク事情~親ならこれだけはやっておけ
コドモのソーシャルネットワーク事情~親ならこれだけはやっておけ
 
子供とネットを考える会の合言葉
子供とネットを考える会の合言葉子供とネットを考える会の合言葉
子供とネットを考える会の合言葉
 
インターネットで気をつける12のこと
インターネットで気をつける12のことインターネットで気をつける12のこと
インターネットで気をつける12のこと
 
見ててつらぽよなスライドVer1.2
見ててつらぽよなスライドVer1.2見ててつらぽよなスライドVer1.2
見ててつらぽよなスライドVer1.2
 
派遣社員が現場にRubyを取り入れるまで
派遣社員が現場にRubyを取り入れるまで派遣社員が現場にRubyを取り入れるまで
派遣社員が現場にRubyを取り入れるまで
 
Git hubで雑誌記事を執筆するのは間違っているだろうか
Git hubで雑誌記事を執筆するのは間違っているだろうかGit hubで雑誌記事を執筆するのは間違っているだろうか
Git hubで雑誌記事を執筆するのは間違っているだろうか
 
DNS移転失敗体験談
DNS移転失敗体験談DNS移転失敗体験談
DNS移転失敗体験談
 
サイバー考古学@ささみ 2017.2.20
サイバー考古学@ささみ 2017.2.20サイバー考古学@ささみ 2017.2.20
サイバー考古学@ささみ 2017.2.20
 
文字化け
文字化け文字化け
文字化け
 
Cybozu Tech Conference 2016 バグの調べ方
Cybozu Tech Conference 2016 バグの調べ方Cybozu Tech Conference 2016 バグの調べ方
Cybozu Tech Conference 2016 バグの調べ方
 
Angular2実践入門
Angular2実践入門Angular2実践入門
Angular2実践入門
 
Pythonでpdfをいじってみる
PythonでpdfをいじってみるPythonでpdfをいじってみる
Pythonでpdfをいじってみる
 
Deep learning実装の基礎と実践
Deep learning実装の基礎と実践Deep learning実装の基礎と実践
Deep learning実装の基礎と実践
 
angular1脳で見るangular2
angular1脳で見るangular2angular1脳で見るangular2
angular1脳で見るangular2
 
Your hash is.
Your hash is.Your hash is.
Your hash is.
 
スマートフォンゲームのチート事情
スマートフォンゲームのチート事情スマートフォンゲームのチート事情
スマートフォンゲームのチート事情
 
Angular 4がやってくる!? 新機能ダイジェスト
Angular 4がやってくる!? 新機能ダイジェストAngular 4がやってくる!? 新機能ダイジェスト
Angular 4がやってくる!? 新機能ダイジェスト
 

Similar a Perlで伝統芸能

Perl 非同期プログラミング
Perl 非同期プログラミングPerl 非同期プログラミング
Perl 非同期プログラミング
lestrrat
 
データサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみるデータサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみる
Shintaro Fukushima
 
Write good parser in perl
Write good parser in perlWrite good parser in perl
Write good parser in perl
Jiro Nishiguchi
 

Similar a Perlで伝統芸能 (20)

PHP Object Injection入門
PHP Object Injection入門PHP Object Injection入門
PHP Object Injection入門
 
2017年夏のPerl
2017年夏のPerl2017年夏のPerl
2017年夏のPerl
 
Cookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
Cookpad 17 day Tech internship 2017 言語処理系入門 RubyをコンパイルしようCookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
Cookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
 
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~
 
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
GMO TECHNOLOGY BOOT CAMP2015(PHP編)GMO TECHNOLOGY BOOT CAMP2015(PHP編)
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
 
Apacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasiaApacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasia
 
Perl 非同期プログラミング
Perl 非同期プログラミングPerl 非同期プログラミング
Perl 非同期プログラミング
 
データサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみるデータサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみる
 
Write good parser in perl
Write good parser in perlWrite good parser in perl
Write good parser in perl
 
swooleを試してみた
swooleを試してみたswooleを試してみた
swooleを試してみた
 
Mina 20130417
Mina 20130417Mina 20130417
Mina 20130417
 
モダンmod_perl入門 #yapcasia
モダンmod_perl入門 #yapcasiaモダンmod_perl入門 #yapcasia
モダンmod_perl入門 #yapcasia
 
Niigata.pm #1
Niigata.pm #1Niigata.pm #1
Niigata.pm #1
 
10分で作る Node.js Auto Scale 環境 with CloudFormation
10分で作る Node.js Auto Scale 環境 with CloudFormation10分で作る Node.js Auto Scale 環境 with CloudFormation
10分で作る Node.js Auto Scale 環境 with CloudFormation
 
Perl勉強会#2資料
Perl勉強会#2資料Perl勉強会#2資料
Perl勉強会#2資料
 
CMSとPerlで遊ぼう
CMSとPerlで遊ぼうCMSとPerlで遊ぼう
CMSとPerlで遊ぼう
 
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
 
私とOSS活動とPerl
私とOSS活動とPerl私とOSS活動とPerl
私とOSS活動とPerl
 
Okinawapm #1
Okinawapm #1Okinawapm #1
Okinawapm #1
 
20年越しで Perl 4 to 5 した話
20年越しで Perl 4 to 5 した話20年越しで Perl 4 to 5 した話
20年越しで Perl 4 to 5 した話
 

Último

Último (10)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

Perlで伝統芸能

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n