Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
札幌でテンプレート #hokkaidopm
Search
OGATA Tetsuji
September 19, 2012
Technology
0
26
札幌でテンプレート #hokkaidopm
2012/09/19 に Hokkaido.pm Casual#5 で発表したスライドです。
OGATA Tetsuji
September 19, 2012
Tweet
Share
More Decks by OGATA Tetsuji
See All by OGATA Tetsuji
Hokkaido.pmがあって YAPCでトークできた
xtetsuji
0
26
モダンmod_perl入門 #yapcasia
xtetsuji
0
18
すごいmod_perl
xtetsuji
0
11
Perl WAF Overview, with mod_perl - Hokkaido.pm#7 #hokkaidopm
xtetsuji
0
12
PerlのTwitterモジュールの紹介
xtetsuji
0
18
mod_perl hacks PHP
xtetsuji
0
11
文字化け2011〜まだまだ化けます〜
xtetsuji
0
14
mod_perl温故知新 〜Perl CGIの高速化からメールサーバまで〜
xtetsuji
0
11
Other Decks in Technology
See All in Technology
バクラクの認証基盤の成長と現在地 / bakuraku-authn-platform
convto
4
890
LLM アプリケーションのためのクラウドセキュリティ - CSPM の実装ポイント-
osakatechlab
0
160
企業が押さえるべきMCPの未来
takaakikakei
0
260
Dynamic Reteaming And Self Organization
miholovesq
3
740
Cross Data Platforms Meetup LT 20250422
tarotaro0129
1
920
3D生成AIのための画像生成
kosukeito
2
590
エンジニアリングで組織のアウトカムを最速で最大化する!
ham0215
1
280
genspark_presentation.pdf
haruki_uiru
0
150
Microsoft の SSE の現在地
skmkzyk
0
280
Compose におけるパスワード自動入力とパスワード保存
tonionagauzzi
0
190
【Λ(らむだ)】最近のアプデ情報 / RPALT20250422
lambda
0
340
Simplify! 10 ways to reduce complexity in software development
ufried
1
200
Featured
See All Featured
The Cult of Friendly URLs
andyhume
78
6.3k
Why Our Code Smells
bkeepers
PRO
336
57k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.8k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
105
19k
[RailsConf 2023] Rails as a piece of cake
palkan
54
5.5k
A better future with KSS
kneath
239
17k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
How STYLIGHT went responsive
nonsquared
100
5.5k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.7k
Practical Orchestrator
shlominoach
187
11k
Transcript
ࡳຈͰςϯϓϨʔτ גࣜձࣾfonfun ඌܗ మ࣍ (OGATA Tetsuji) Twitter: @xtetsuji 2012/09/19 Hokkaido.pm
Casual#5
ࣗݾհ
ࣗݾհ • ඌܗ మ࣍ (OGATA Tetsuji) • Twitter: @xtetsuji •
Blog: http://post.tetsuji.jp/ • ಘҙٕ: mod_perl • Perlྺ9͚ͩͲ͕ࣝภ͍ͬͯΔͷͰɺ ࠓʹͳͬͯ৭ʑษڧ͍ͯ͠·͢ʼʻ
ࣗݾհ • Hokkaido.pmʹɺ#5͔Βຖճ(#7·Ͱ)ग़੮ • Hokkaido.pm Casual ࠓճ #5 ͕ॳࢀՃ •
େֶ(1997)͔Β্ژɺब৬ޙͣͬͱ౦ ژ • ࣮Ո͕ଳͰࠓճؼল͍ͭͰʹدΓ·ͨ͠ • Hokkaido.pm ࢲͷނڷͰ͢ʂ
ॴଐհ • גࣜձࣾfonfun(ϑΥϯϑΝϯ) http://www.fonfun.co.jp/ • ओྗɿϦϞʔτϝʔϧ http://rmail.jp/
Casualͷงғؾ͕Α͘ ͔Βͳ͍ͷͰ؇͘ ΒͤͯΒ͍·͢
ࠓճͷςʔϚɿ ςϯϓϨʔτೖ
PerlͷςϯϓϨʔτ • ೖࣾ࣌ͷ2003͔ΒPerl͍ͬͯͨˠ ࣌؆୯ͳϩάॲཧఔͷεΩϧ • 2004ࠒ͔ΒΣϒ։ൃΛ͞Εͨ •·͔͞ϓϩάϥϚʹͳΔͱ… • Σϒ։ൃݴޠͪΖΜPerl
PerlͷςϯϓϨʔτ • 2004ͬͨͷࣾͰ࡞ΒΕͨࣾ ಠࣗͷςϯϓϨʔτΤϯδϯ • ࣄ্࣮ϚχϡΞϧແ͠(´Д⊂ʋ • ৽نͷαΠτͰͷ༻͋·Γߟ͑ ΒΕͨઃܭͰͳ͔ͬͨ
PerlͷςϯϓϨʔτ • 2005ࠒ͔Β։ൃऀࣗҰਓͰ৽ن ։ൃΛߦ͍ͬͯ͘͜ͱʹͳͬͨ • ·ͩWAFશͷ࣌Ͱͳ͔ͬͨͷ Ͱɺ࠷ॳݟΑ͏ݟ·ͶͰී௨ͷPerl CGI (not mod_perl)
• HTML::Template Λ࠾༻
HTML::Template
HTML::Template • Perlʹੲ͔Β͋ΔςϯϓϨʔτΤϯδϯ • ଞͷߴੑೳͳςϯϓϨʔτΤϯδϯ͕ ޙൃͰग़͖ͯͨࠓྑ͘ΘΕ͍ͯΔ • ߏจ͕HTMLͬΆ͍ͷͰͦΕҎ֎Ͱ͏ ͱҧײ͕͋Δ͔ఔ
HTML::Template
HTML::Template • HTML::Template1999ͷϦϦʔεޙͷ ૣ͍ஈ֊ͰςϯϓϨʔτΩϟογϡΛ ࡌ͍ͯͨ͠ (mod_perlӬଓڥͰ) • ΩϟογϡˠCPU(I/O)અ • ඇΩϟογϡˠϝϞϦઅ
HTML::Template • نͷେ͖͍ΣϒΞϓϦέʔγϣϯ ͷ߹ɺςϯϓϨʔτϑΝΠϧͷಡΈ ࠐΈʹίετ͕͔͔ΔέʔεͰ Ωϟογϡ͕༗ޮ • લड़ͷࣗࣾςϯϓϨʔτΤϯδϯ ΩϟογϡΛαϙʔτ͍ͯ͠·͢
ઃఆϑΝΠϧͱ͔ • Ұ෦͚͕ͩҧ͏͚ͩͷେྔͷઃఆ ϑΝΠϧΛҰׅੜ͢Δ߹ • ࠷ۙ͜ͷखͷσϓϩΠπʔϧོ • PerlͰͳ͍ͷͷγϯϓϧͳίϚϯυ ϥΠϯπʔϧͷm4͕ྲྀ༻Ͱ͖Δ͔
m4
None
None
m4 • ݩʑCݴޠͷϓϦϓϩηοα • ݹ͍ݹ͍πʔϧͳͷͰɺbuild-essentialͳ ڥ͕ೖ͍ͬͯΕೖ͍ͬͯΔͣ • ਅ໘ʹ͓͏ͱ͢Δͱେม͚ͩͲɺ ද໘తʹ͏͚ͩͰ໘ന͍
m4 # ԾతͳઃఆϑΝΠϧ - some.conf.m4 hostname: __HOSTNAME__ username: someuser #
...ҎԼུ #!/bin/bash for hostname in sv{01..99} ; do m4 -D __HOSTNAME__=$hostname \ some.conf.m4 > some.conf.$hostname done
m4 • CݴޠͷϓϦϓϩηοαͱͯ͠ߴʹ ར༻͞ΕΔm4͚ͩͲɺ͜Μͳࢸۃ୯७ ͳ࡞ۀ༻్ʹͬͯOKͰ͠ΐ͏ • Perl͡Όͳ͍͚Ͳɺಓ۩దࡐదॴ • ϞμϯͳઃఆϑΝΠϧσϓϩΠπʔϧ Υον͍ͨ͠Ͱ͢Ͷ
ଞͷςϯϓϨʔτͷ ͍৺Ͳ͏ͩΖ͏ • ༷ʑͳςϯϓϨʔτΤϯδϯ͕͋Δ • HTML::Template • Template-Toolkit (TT) •
Text::Xslate …ʑ • ࣌ʹΑͬͯྲྀߦΓ༷ʑ
ଞͷςϯϓϨʔτͷ ͍৺Ͳ͏ͩΖ͏ • ϙετϞμϯͳWAFͱηοτʹͳͬͯ ͍ͨΓ͢ΔςϯϓϨʔτΤϯδϯɺ Έͳ͞ΜͷΦεεϝ࠷ۙͷྲྀߦΓΛ ฉ͍ͯΈ͍ͨͰ͢ • Text::Xslateͱ໊͔લ͚͍ͩͬͯΔ͚ͩ Ͱ࣮ࡍʹͬͨ͜ͱແ͍ଵ͚ऀͰ͢
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠