プログラムとcgiに関するatch1980のブックマーク (15)

  • Perlにおける真偽 : blog.nomadscafe.jp

    Perlにおける真偽 おいぬま日報(不定期)さんの記事で、 でもこれは下記のように書くことが出来ます。 sub func { my %args = @_; my $hoge = $args{hoge} || 'fuga'; # なんか処理 } なんとこれを知っているだけで3行もコードが節約出来るんです。 とあって、短く書けてエレガントです。 これだけでも97%ぐらいはかまわないのですが、使い続けるとはまりどころがあります。 &func(hoge=>0); &func(hoge=>""); として、$hogeに0や""を入れたい場合がそれ。 なぜなら、0や""がブール値コンテキストにおいて、偽となるからです。 Perlにおける真偽の規則は、らくだから引用ですが、 1. ""と"0"を除き、すべての文字列は真である 2. 0を除き、すべての数値は真である 3. すべてのリファレンスは真である

    atch1980
    atch1980 2007/07/26
    真偽値判定
  • SBP:結城浩の「Perlクイズ」

    atch1980
    atch1980 2007/07/04
     ヒアドキュメントについて
  • ハッシュ - 2部 Perl言語仕様 - [SMART]

    1.ハッシュへ値を代入 ハッシュ変数は、配列のインデックスが文字列となったもので、このインデックスを『キー』と呼びます。ハッシュの場合は要素の値がキーによって管理されます。 ハッシュの宣言 ハッシュへ値を代入 ハッシュの宣言 ハッシュを宣言するときは変数名の前にパーセント( % )を付けます。 %hash; ハッシュへ値を代入 配列では、[ ] でインデックスを囲みましたが、ハッシュは、 { }でキーを囲みます。例えば社員の名前とメールアドレスを管理する場合、次のような方法でハッシュを使った管理ができます。 $hash{'Akai'} = 'akai@domain.com'; $hash{'Ishikawa'} = 'ishi@domain.com'; $hash{'Ueda'} = 'ueda@domain.com'; 複数の値を一度にハッシュへ代入するには、キー、値の順番で記述します。

    ハッシュ - 2部 Perl言語仕様 - [SMART]
    atch1980
    atch1980 2007/07/03
     ハッシュ
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    atch1980
    atch1980 2007/06/29
    命名規則について
  • 特殊変数一覧 [Perl講座 -Smart]

    特殊変数一覧 ※強調した特殊変数はよく使われるものです。 グローバルな特殊変数 グローバルな特殊配列と特殊ハッシュ グローバルな特殊ファイルハンドル グローバルな特殊定数 パターンマッチに関する特殊変数 ファイルハンドルに関する特殊変数 グローバルな特殊変数 $_ use English: $ARG デフォルトで入力やパターンマッチの対象になる特殊変数です。 $. use English: $INPUT_LINE_NUMER / $NR [入出力関連] ファイルハンドルの現在の行数 ※ファイルハンドルを明示的にクローズすると行番号もリセットされます。 $/ use English: $INPUT_RECORD_SEPARATOR / $RS [入出力関連] 入力時のレコード区切り文字 デフォルト値は改行文字です。 $/ の使い方 $/ を未定義値にすると、ファイルの内容を一度に読み込むこ

    atch1980
    atch1980 2007/06/29
    @INC 自作のライブラリの場所をPerlに記憶させる
  • http://members.jcom.home.ne.jp/j-klein/perl/module.html

    atch1980
    atch1980 2007/06/29
     モジュールの配置について
  • 2006-05-07

    1度書いたコードは再利用しなきゃもったいないですよね。同じ処理を何度も書いていたり、コピーアンドペーストしていたら、手間がかかりすぎます。 そういった再利用しそうなコードを書く時、Perlでは「モジュール」と呼ばれるファイルを作るそうです。コードをモジュールにする事で再利用しやすくなります。 ファイルの先頭で「package」を使って名前空間を定義して、ファイル名をそのパッケージ名と同じにします。また、普通のPerlスクリプトと区別するために拡張子には「.pm」を使います。 package Palmo; というパッケージを宣言したなら、「Palmo.pm」として保存するわけですね。 また、パッケージ名に階層表現「::」が含まれている場合は、フォルダで階層を再現します。 package Palmo::Study::Perl; と書いた場合、ファイルは「Palmo\Study\Perl.pm

    2006-05-07
    atch1980
    atch1980 2007/06/29
     パッケージ名の::はフォルダの階層を示す
  • パッケージとモジュール Perl講座(Exporter、@ISA、@EXPORT、@EXPORT_OK)

    四角の枠に囲ってある段落で、> というマークは出力行、もしくはコマンドラインを意味します。 例 print "Hello\n"; > Hello 謝辞 インターネットのおかげで無料で勉強でき、プログラムの仕事をするようになりました。とても感謝です。そのお返しという程でもありませんが、勉強の成果を公開することにしました。 この講座に掲載した情報のすべては、インターネットからかき集めたものが大半です。その情報が正しいものかどうかは確かめたのですが、それはちょっと怪しいものですので、間違いや誤解などが含まれている可能性があります。 ということで、ちょっとおかしいなと思ったらご報告お願いします。 次にこの講座にきたときは、ただしい文章が掲載されていると思います、たぶん。

    パッケージとモジュール Perl講座(Exporter、@ISA、@EXPORT、@EXPORT_OK)
  • Perlオブジェクト指向プログラミング

    -> 趣旨と注意書き -> 身近なpackage -> なんのためのpackage ? -> What's `new' ? -> bless ( reference => package ) -> Hello, Module World! -> オブジェクト? -> main パッケージと関連付けてみる -> クラスとメソッド -> オブジェクト指向 -> オブジェクトがリファレンスなら… -> -> を連続する -> 継承 -> 多重継承 -> 多重継承をやめる -> 多重継承をやめる(もう少し簡単に) -> 情報源(書籍等) <- モドル 趣旨と注意書き これを読んでも、あんまりきちっとした知識は、身に付きません(^^; オブジェクト指向の概念はほんの少ししか説明しません。ここで述べるのは、Perlでどうやるかってのが主です(それも不十分&嘘まじりかも)。 とりあえず、モジュールを作り

  • Perlメモ/CGIモジュール - Walrus, Digit.

    フォームデコードなどの機能を持つ、CGI作成者のためのPerlモジュール。 CGIモジュールはHTMLやフォームの生成、フォームデータのパース、Cookieの取得と出力などの機能を持つモジュールです。 いささか重厚長大のきらいはありますが、CGI::Liteモジュールと異なりCGIモジュールは多くの環境でデフォルトインストールされていることなど、CGIモジュールを選ぶべき理由も多くあります。 CGIモジュールには多くのドキュメントが付属しています。 この内いくつかは、Perldoc.jpで和訳した文書を見ることができます。 http://perldoc.jp/docs/modules/ IBMのサイトには「便利なCGIスクリプト作成のためのヒント~CGI.pmモジュールを綿密に検討する」という文書があります。 いささか古いのですが、CGIモジュールを使ったファイルアップローダを検討するのに

  • http://www.ipa.go.jp/security/awareness/vendor/programming/a04_03.html

  • 関連サイト - セキュアプログラミングしよう。

    参考になるドキュメント † 安全なウェブサイトの作り方 改訂第2版 H18年度ウェブアプリケーション開発者向けセキュリティ実装講座 安全なWebアプリ開発の鉄則 2005 (PDF) 安全なWebアプリ開発の鉄則 2004 OWASP Guide日語版 The Web Security Threat Classification / Web Application Security Consortium ↑

  • 正規表現 [Perl講座 -Smart]

    正規表現の概要 正規表現は、Perlの中で最も重宝する機能のひとつです。正規表現にはテキスト処理のための様々な機能があり、文字列の中から特定のパターンを見つけ出したり、置換したりすることができます。 正規表現の基的な使用方法 たとえば、$strという変数に格納したデータの中から、「A」で始まって途中は何があるかわからないが最後が「E」という文字列を探したい場合、次のように記述することで、条件にマッチする文字列を見つけることができます。 $str =~ /A.*E/; 上記では、ドット( . )が改行以外の1文字を表し、アスタリスク( * )がその任意の文字の0回以上の繰り返しを意味します。このように、正規表現において特殊な働きを持った文字を正規表現演算子、またはメタ文字と呼びます。また、=~ はパターン結合演算子と呼ばれ、「左辺の値から右辺の値を検索する」という意味があります。 正規表現

    正規表現 [Perl講座 -Smart]
  • Perl&CGI最強講座 [smart]

    indexは、第1引数STRの先頭から第2引数SUBSTRが最初に見つかった位置を返します。 第3引数 POSITIONで検索する位置を指定することもできます。第3引数POSITIONには最初の文字を 0 として指定します。 返却値は 0、もしくは変数$[に設定した値です。SURSTRが見つからなかった場合は -1 を返します。 indexの使い方 $str = "How you always hurt the one you love."; print index($str,'you'); > 4

    Perl&CGI最強講座 [smart]
  • Premature end of script headers

    atch1980
    atch1980 2007/06/21
    cgiで出たエラー 改行コードが問題?
  • 1