Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
札幌でテンプレート #hokkaidopm
Search
OGATA Tetsuji
September 19, 2012
Technology
0
27
札幌でテンプレート #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
35
モダンmod_perl入門 #yapcasia
xtetsuji
0
23
すごいmod_perl
xtetsuji
0
13
Perl WAF Overview, with mod_perl - Hokkaido.pm#7 #hokkaidopm
xtetsuji
0
18
PerlのTwitterモジュールの紹介
xtetsuji
0
19
mod_perl hacks PHP
xtetsuji
0
18
文字化け2011〜まだまだ化けます〜
xtetsuji
0
16
mod_perl温故知新 〜Perl CGIの高速化からメールサーバまで〜
xtetsuji
0
14
Other Decks in Technology
See All in Technology
【保存版】「ガチャ」からの脱却:Gemini × Veoで作る、意図を反映するAI動画制作ワークフロー
nekoailab
0
120
経営から紐解くデータマネジメント
pacocat
9
1.8k
なぜフロントエンド技術を追うのか?なぜカンファレンスに参加するのか?
sakito
8
1.8k
意外と難しいドメイン駆動設計の話
zozotech
PRO
0
740
翻訳・対話・越境で強いチームワークを作ろう! / Building Strong Teamwork through Interpretation, Dialogue, and Border-Crossing
ar_tama
4
980
プラットフォームエンジニアリングとは何であり、なぜプラットフォームエンジニアリングなのか
doublemarket
1
500
MAP-7thplaceSolution
yukichi0403
2
230
MS Ignite 2025で発表されたFoundry IQをRecap
satodayo
2
190
Claude Code はじめてガイド -1時間で学べるAI駆動開発の基本と実践-
oikon48
37
18k
Agents IA : la nouvelle frontière des LLMs (Tech.Rocks Summit 2025)
glaforge
0
220
LangChain v1.0にトライ~ AIエージェントアプリの移行(v0.3 → v1.0) ~
happysamurai294
0
140
AI駆動開発によるDDDの実践
dip_tech
PRO
0
170
Featured
See All Featured
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
360
Automating Front-end Workflow
addyosmani
1371
200k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
690
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
The Language of Interfaces
destraynor
162
25k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
What's in a price? How to price your products and services
michaelherold
246
12k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
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ͱ໊͔લ͚͍ͩͬͯΔ͚ͩ Ͱ࣮ࡍʹͬͨ͜ͱແ͍ଵ͚ऀͰ͢
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠