YAPC::Asia 2013
Perl入学式 公式ブログ プログラミング未経験者/Perl初心者を対象としたワークショップ『Perl入学式』のブログです。 一緒にプログラミングの楽しさを体感しましょう! みなさまこんにちは, Perl入学式校長のpapixです. いきなりですが, Perl入学式は今年で4年目となりました. ここまでの3年間, 多くの方と一緒にPerlを学ぶことができていて, とても嬉しく思っています. その中で, Perl入学式の卒業生からよく頂く意見の1つが, 「卒業後に使えるカリキュラムが欲しい」というものです. Perl入学式で扱う内容は, プログラミングを学ぶために不可欠な環境構築からスタートし, Perlという言語を通して「プログラミングに必要な考え方」を学んでいくという, まさに「基礎中の基礎」といえる内容になっています. 最終回でMojoliciousを利用したWebアプリケーションの開
2008-10-21 追記 いまだに(ありがたいことですが)検索で飛んできたりブクマされたりというのがちょいちょいあるので,最新動向を書いておきます。 id:tokuhirom さんが Lingua::JA::Regular::Unicode という Pure Perl Module をリリースなさいました(→ http://d.hatena.ne.jp/tokuhirom/20081018/1224300947)。 あなたが作っているアプリで文字列まわりを Unicode::Japanese インスタンスですべて持ちたいわけでなければ(そして,たいていのばあい,持つ必要はないのですが),この Lingua::JA::Regular::Unicode を使うのがベターです。依存性もなく,とても軽量ですので。 2008-10-21 追記おわり ウェブアプリを作っていると,ユーザが入力した半角
PerlによるDependency Injection (DI)のとってもシンプルなデモを読む上でのポイントを書いておきます。 ⇒ https://tociyuki.sakura.ne.jp/archive/didemo.pl ポイント1. バインド記述の末端要素は文字列です コードリファレンスなど使っていません。これでVMの内部リソースからバインド記述を分離することができます。 ポイント2. バインド記述は外部リソースに分離可 デモを一つにまとめるためにバインド記述をソースコードに含めましたが、無名ハッシュ部分を外部ファイルに移し、それを読み込んでevalするように変更すると外部リソースに分離できます。 ポイント3. コンストラクタ Perl5ではコンストラクタは必ずしも必要ではありませんが、それではDIコンテナが書けませんので、名前をnewに固定しパラメータなしで呼び出し可能と仮定しま
Webフレームワークを考える 半年ぐらい前からPerlでWebアプリケーションを作るフレームワークを作りたいと思っていて、あーでもないこーでもないとちょこちょこ考えたりしていたが、最近目にした2つの“事例”を参考にさせて頂いて、自分なりのモデルを考えてみた。 まず、「Perl の MVC フレームワーク Catalyst に入門してみた : NDO::Weblog」から読み取れた Catalyst の構造。 Catalyst は規模が大きいので習得するヒマがなかったのだが、この記事を見て大筋で理解した(事にした)。 Catalystモデルのメリットは(モデルの)シンプルさにあり、簡単なアプリをサクッと作るにはよさそう。 しかし、Controller への依存度が高過ぎるため、コードのメンテナンス性が低くなりそうな懸念がある。 また、実際の Catalyst はフレームワークの完成度が高い
はじめに ローカル上のファイルをサーバー側にアップロードするCGIを作成する方法を紹介します。Perlの標準モジュールであるCGI.pmを使用すれば、簡単にこの機能が実現可能です。 このスクリプトの作動環境は次の通りです。Windows2000 SP4、Apache 1.3.31、ActivePerl 5.8.4 build 810。そしてUNIX環境でも確認しています。FreeBSD、Apache1.3.31、Perl5.6.1。CGI.pmはバージョン2.47以上を想定しています。 尚、CGI.pmは標準モジュールなので新しく用意する必要はありません。すぐに利用出来ます。以下に簡単な使用例を取り上げてみます。 HTMLのフォーム部分の作成 さて最初はHTMLのフォームを作成します。これを仮にupload.htmlとします。 <?xml version="1.0" encoding="S
Timもお勧めのPerl Best Practices: Standards and Styles for Developing Maintainable CodeからTen Essential Development Practices。 例として記述されているサンプルコードや周辺環境はperlですけど、perl以外のプログラミング言語にも当てはまる、いい内容です。 モジュールインターフェースをまず先に設計せよ 汚い、複雑なインターフェースのモジュールは使われない きれいなインターフェースを設計するには経験と創造性が必要 うまくできないならそのモジュールのテストケースから書き始めるのもいい コードの前にテストケースを書け 出力フォーマットに気を使いながらprintした結果を目で追うより、Test::Simple使ったほうが楽。 Test::Simple使ったほうがコードが見やすいし、出力
XML::Simple は、どんな XML でも Perl のデータ構造に自動変換してくれるかなり便利なモジュールなのですが、中でツリーを解析したりいろいろやってるせいもあって、速度的にはあまり誉められたものではありません。以前に Perl で XML の処理はどれが速いかベンチ で比較したときには、随分遅いなという印象でした。 ただ、XML::Simple はその中で利用するパーサーを色々切り替えられるようになっています。じゃあそれを切り替えたら少しは速くなるんだろうかと気になってベンチを取ってみました。 XML::Simple は $XML::Simple::PREFERRED_PARSER に任意の SAX パーサーを指定するとそれを使ってパースするようになっています。 XML::LibXML::SAX XML::SAX::Expat XML::SAX::ExpatXS XML::P
プログラマ、と一言で言っても、if文の意味をようやく理解したばかりの駆け出しのプログラマもいれば、汎用的で優れたライブラリを量産できるような凄腕のハッカーもいる、つまりはピンきりです。 Perlプログラマに関してはどうでしょう。一流のPerlプログラマになるためには、見えない階段があるようです。use strict を使い始めたらその階段を一歩上ったと言えるでしょうし、正規表現を理解したときも一段あがることになると思います。リファレンス、クロージャ、オブジェクト指向、CPANモジュール、mod_perl、MVCフレームワーク。それらも階段を構成する材料の数々と言えるでしょう。 さて、Perlプログラミング救命病棟という書籍から、ちょっと長いですがそんなPerlプログラマのレベル10のリストを引用してみます。 レベル1: Perl 関係の書籍や資料を何も読んでいない。Perl がプログラミン
Perlクックブックソースコードリンク集 このページは「Perlクックブック―Perlの鉄人が贈るレシピ集(第1版)」に記述されているソースコードを簡単に参照できるようにするために作成したリンク集です。ネットワーク上に存在するPerl Cookbook(英語)のリソースに対してリンクを設定しています。 Perlクックブックの解説やソースコードの引用は私のウェブページ上には用意していません。必要であればPerlクックブックを購入するか、あるいはリンク先の英文の解説を読んでください。 1章 文字列 1.0 概要 レシピ1.1 部分文字列を取り出す レシピ1.2 デフォルト値を設定する レシピ1.3 一時変数を使わずに値を交換する レシピ1.4 ASCII文字をコード値に(コード値をASCII文字に)変換する レシピ1.5 文字列を1文字ずつ処理する レシピ1.6 文字列を単語または文字単位で逆
Ywcafe.net This Page Is Under Construction - Coming Soon! Why am I seeing this 'Under Construction' page? Related Searches: Dental Plans Online classifieds All Inclusive Vacation Packages Contact Lens Top 10 Luxury Cars Trademark Free Notice Review our Privacy Policy Service Agreement Legal Notice Privacy Policy
変数の宣言の強制 変数のスコープ ループからの脱出 ファイル入出力 print 文関係 引数の取得 標準入出力 環境変数の取得 サブルーチンとの引数のやりとり foreach 文 文字列の連結 文字列のマッチング、比較 文字列の置換 文字列の分解 文字列の統合 文字列の処理 配列 2 次元配列 正規表現 if 構文 連想配列 ( ハッシュ変数 ) rewind eof find_header int と剰余 goto 文 ディレクトリの操作 ファイルテスト演算子 特殊変数 シグナル処理 ヒアドキュメント 配列全体に作用するコマンド ソート 省略形 入出力のバッファリングをしない 配列の要素のシフト 処理内容をファイルに落としてメールする system 文 ◆◆ 変数の宣言の強制 ◆◆ ファイルの先頭に use strict; と書くと、そのファイル中のメイン関数(関数宣言なしに 書き始め
この文書は Perl.com: Buildling a Large-scale E-commerce Site with Apache and mod_perl を翻訳したものです。2001年に書かれた文書であり、Apache/mod_perl/CPAN モジュールなど現在の状況にはそぐわない部分もある可能性があります。 大規模なeコマースサイトを Apache と mod_perl で構築する よくある神話 Perl はセーブする アプリケーションサーバの撰択 ケーススタディ: eToys.com Apache::PerlRun による救済 新たなアーキテクチャの計画 2000年のクリスマスを切り抜ける アーキテクチャ プロキシサーバ アプリケーションサーバ 検索サーバ ロードバランスとフェイルオーバー コード構造 キャッシング セッショントラッキング セキュリティ 例外(Excepti
mod_perl 環境下でやっちゃダメなものをいくつか。 exit システム関数 正確には CORE::exit ですけど、実行すると現在の Apache プロセス(nobody)が落っこちます。 当然 root の Apache は子プロセスを立ち上げなおすんで 余分なシステム負荷が掛かりますし、mod_perl のメリットである キャッシュ効果が得られない=普通のCGI実行より鈍足になるという、 なかなか致命的な結果になってしまいます(^^; これを避けるために、mod_perl 環境下では exit() 関数 が 定義されてるので、必要な場合には必ず丸括弧をつけませう。 ○ exit( 0 ); × exit 0; 同じことが、die システム関数 にも言えます。こっちは素直に 「use Carp」して「croak 関数」で代替したほうが安全だと思う。 #eval の中で CORE:
?さん 「言語何使ってる?」 僕 「Perl がメインかなぁ〜」 ?さん 「( ´_ゝ`)フーン Java じゃないんだぁ・・・今時 CGI で書いてるの?」 ここで言う Java ってのは Tomcat や Resin に代表される Servlet / JSP コンテナを利用したプロセス常駐型 java の事を指してます。決して Java-cgi のことを意味していません。多分彼らも、そういったことは意識していないと思います。 本業で随分昔(servlet 技術が出る前)に作成した Java-cgi で作られたアプリケーションが現役で活躍していますが、とてつもなく遅いです。いわゆる Perl-cgi が遅いと言われる理由と一緒です。一番の勘違いのポイントは、 CGI = Perl って図式が無意識のうちにあると言うことですね。でも実際は、CGI の定義は、アクセスがあるたびにサーバが新し
フレームワークを考えるにあたって、気になる部分のベンチマークを取ってみた。 ポイントは次の3点。 関数の呼び出し方法: Class::func() と Class->func() 形式 クラスを継承した場合のペナルティ: Class->() と SuperClass->() 連想配列への直接アクセスと、アクセサ経由のアクセス Perl における関数型の実装と OO の実装で、関数呼び出し/メソッド呼び出しでどの程度のオーバーヘッドの差があるかをベンチマークした結果。勉強になります。結果としては関数型に対して OO の方が数倍遅い、という結果。 それで、結論の方なのですが 本来なら、アプリケーションより下位にあたるライブラリ関連は、オブジェクト化されて mod_perl 上で共有されるメリットはあるかもしれないが、アプリケーションの上位にあたるフレームワークは、mod_perl 上で共有され
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く