この記事は abicky.net の 初めて Perl でコードを書く時に知っておきたかったこと に移行しました
2008年06月30日04:00 カテゴリLightweight LanguagesTips perl - use Carp; # warn() と die() だけじゃなくて 以下のエラー処理の方法にちょっと口を挟みたくなったので。 エラー処理を行う。 - サンプルコードによる Perl 入門 warn() vs. die() まず、warn()の使い方。エラーに対して使ってはいけません。warnはその名の通り、あくまでもエラーではなく警告です。エラーの際にはdie()を使わなければなりません。 警告とエラーの違いですが、警告は「続けて処理してもいいけど、これはあなたの意図ではないかもしれません」という場合、エラーは「このままでは処理を続けられません」という場合です。 たとえばperlの場合、抜けた引数はundefなので、数値としては0、文字列としては''として解釈されます。それらをデフ
[Perl] LWP::UserAgentを利用すればWEBデータを取得できます。GETメソッドのみでしたらLWP::Simpleの方が簡単です。ちなみにhttpsでの取得も可能ですが、Crypt::SSLeayがインストールされている必要がある。 [サンプル] #!/usr/bin/perl use LWP::UserAgent; my $ua = LWP::UserAgent->new; #タイムアウトを設定 $ua->timeout(10); #ユーザエージェントを設定 $ua->agent('Mozilla'); #GET、PUT、POST、DELETE、HEADのいずれかを指定(httpsの場合はhttpsにするだけ) my $req = HTTP::Request->new(GET => 'http://www.ksknet.net'); #リファラーを設定 $req->ref
Catalyst で action を遷移する場合は,コンテキストオブジェクトの forward() メソッドを使うのが一般的だと思いますが,同じような役割のメソッドとして detach() というのもあります。違いは,forward() は遷移先から return 等で戻ってくるのに対し,detach() は遷移しっぱなしです。 sub act1 : Private { my ($self, $c) = @_; $c->forward('act9'); # ファイナライズとかやります? } sub act2 : Private { my ($self, $c) = @_; $c->detach('act9'); # ここにはもうきません }エラー時やリダイレクト時に,遷移元の記述がスマートになりますね。 この「サブルーチンとして呼び出したのに戻ってこない」ってどのように実装しているのだろ
Perlのメリットってなんですか、と尋ねられたときに「CPANっていうライブラリを使うことで車輪の再発明ばかりすることを防げます」と答えても、ハテ、といった感じに頭ひねる人多かった気がしたので、別の面を考える。 実益的な面を挙げるのがてっとりばやい可能性もあるので、CPANそのものはwikipediaを示すことにして、perlというかcpanモジュールを作ることで見えてくるメリットを書き出してみる。 cpanにモジュールを登録する際には、以下の思考的流れが必要になる。 要件定義 テスト作成 テストにそったコーディング 依存モジュールの最適化 POD形式での仕様書き出し テスト Makefileの最適化 配布用アーカイブの作成 PAUSEへのモジュール解説記述 Testerのテスト結果反映 プロジェクト作成のいい模範例になるわけだ。それぞれの具体例はモダンPerl入門読むのが手っ取り早い。
Perl › here Perl5.8以降における標準的なPerlの書き方を解説します。 インターネットで検索するとPerl4のころの古い記述がたくさんあります。また書籍などの多くもPerl4の記法で書かれています。Perl4の記法は複雑になりやすく間違いを生みやすいのでこれからPerlを書く人はPerl5の現代的な記法で記述することを強くお勧めします。 strictプラグマとwarningsプラグマ (必須) strictプラグマとwarningsプラグマを有効にします。 use strict; use warnings; use strict;とuse warnings;の2行はスクリプトの最初に必ず記述してください。これらはPerlの文法チェックを厳しくするためのものです。面倒だという軽い気持ちでこれを記述しないと後々本当に面倒なことになります。 use strict;とuse wa
(社) Japan Perl Association Japan Perl Associationについて 一般社団法人Japan Perl Association (JPA) は Perl技術及び文化の啓蒙・促進のた めの組織です。Perl技術を利用するプロジェクト、コミュニティ、ビジネスのサポートに 取り組む事を目的とします。 理事会 Perlについて Perlは1987年に初めて発表され、以来20年以上の長きに渡って進化し続けている言語 です。インターネットの創世記にはCGIスクリプトを作成するのに多用されさらに有名に>なりました。しかしPerl自体はCGIのための言語ではありません:世界中の開発者達が自>作のライブラリを登録するCPANという巨大なライブラリネットワークを持ち、豊富なテス ト・自動化ツールを駆使して堅牢なシステム開発を可能にする、「難しい事を可能に、簡 単な事をさ
perlのCGI.pmはUTF8で使うとすごい大変。 -nostickyや-utf8はIISのActivePerlでまともに動かない。 CGI.pmのescapeHTMLはuse utf8;を正しく変換できない。 なのでautoEscapeはuse utf8;でまともに動かない。 -no_xhtmlもmod_perlやPerlEx?で動かない。$CGI::XXXのグローバル変数で動作を変えてる系は全滅。 とりあえずCGI.pmの便利機能はoffにして使うべき またはLinux上でCGIだけで使うとか、UTF-8をやめてEUCで書くとか(それはそれで問題が)。my $cgi = new CGI; はダメ my $cgi = CGI::->new();が正しい。self_url()やurl()が使えなくなる環境がある(Windowsなど)。 出力はxhtmlに固定 $cgi->autoEsca
管理者の重要な仕事のひとつに、テストがあります。新しいシステムのテスト、H/W、 OSやソフトウェアなどの移行にともなうテスト、過去に発生したミスの再発防止テストなどいろいろなテストありますが、目的はシステムが要件通りに稼働し続けることの保証です。今回は、テストの自動化を取り上げます。 テストの自動化 安定したシステムにテストは欠かせませんが、みなさんの環境ではどのようにテストをしているでしょうか。手順がExcelに並べられているだけだったりしませんか。ミスが起きたら、再度同じミスをしないためのテストをしていますか。ミスが起きない、もしくはミスがあってもできるだけ迅速に検知できることをテストで保証できているでしょうか。 以前ファイアーウォールの移行作業をしたのですが、製品のベンダが異なるためACLの記法も異なり、設計思想も異なっていため、簡単にはACLを移行することができませんでした。AC
記号ゴルフって英語でなんやろって聞いたら題字の返事が mark byers 氏から帰ってきました。 さて、最近の記号ゴルフについては、 http://d.hatena.ne.jp/kikx/20061030#1162308720 にまとまっていますが、とりあえず無限ループは [*""..$/] と (""..$/).min で更新できますねーと。 あとは quine も StackError も SEGV もわからないなぁといったところです。特に quine を「安直に」作る kik さんは異常だと思いました。つまり答えキボンヌと申しておるのですが。 追記なんかこれ偉そうですね。こう答えがわからないギギギというアレが。 StackError は正規表現とかなんかなぁ…あ、あと思い出したんですが 6B StackError は察しておられる通り load$0 のつもりでした。 Perl Go
Perlモジュールの追加にはCPANモジュールを使うのがらく。面倒臭いモジュールの依存関係も自動で解決してくれる。いろんなところでCPANの導入部分は書かれているのでその辺はあえて書かずに、自分が使う上でちょっと戸惑ったところを中心に使用方法をつらつらと。 # perl -MCPAN -e shell 始めてこのコマンドを実行したときは、基本設定を作るための質問が次々と出される。質問の後にある[]の中がデフォルトの設定でだいたいはそのままでOK。ただ、HTTP/FTPのProxyの設定、モジュールをダウンロードするCPANサーバーの設定はここで行うのが吉。 へルプを見る。 cpan> h 終了する。 cpan> qCTRL-Dでシェルは抜けれない。 モジュールをインストールする。cpan> install [モジュール名]ダウンロード、perl Makefile.PL、make、make
時間が空いているときに Catalyst のお勉強をしていたのですが、なかなか情報をまとめる時間がとれないのです・・・。思ったより苦戦したので少しずつでもお勉強の情報をまとめていこうと思ってます。今回はその1ってことで。Catalyst をこれからお勉強してみようって方の参考にでもなれば幸いです。 実際には、アプリケーションを1つ作ってみるってところまで既に2週間前に終わっていたりするのですが、その解説に至るまでどれくらい時間かかるんだろう・・・ (。・x・)ゝ Catalyst の基礎知識 Catalyst のフレームワークの構成は上図のような構成になっています。純粋な MVC ではなく、MV C + A(Apprication) のような構成になっていますが、Application の部分は Dispatcher 機能に相当する部分で、実装時には MVC の考え方で問題ありません。 M
2006年09月04日13:45 カテゴリLightweight Languages perl - HTTP::Date モジュールなしとは行かないのだけど、HTTP::Dateは紹介するに値する。 [を] 日付文字列のencode/decode とある用途に、日付っぽい文字列を手軽に可逆変換する方法を模索中。 モジュールなしで済ませたい。なんといっても、LWPに付属しているので、インストールベースをあまり気にしなくてよいのがよい。今時LWPをinstallしていないとしたら、そちらの方がperl mongerとしては問題といえるほど普及しているので。 対応しているフォーマットは、以下のとおり。 HTTP::Date - date conversion routines - search.cpan.org The function is able to parse the followin
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く