タグ

perlに関するtodays_mitsuiのブックマーク (6)

  • Perlの食えない事情 - 演算子編 - アリ

    Perlえない事情 より おっと、そうです、Perlには演算子が多すぎるのでした。せっかくの機会なので、Perlの演算子を紹介します。 ビーナス演算子: 0+, +0 数値として評価してくれます。意外とよく見かけますね。 なぜこの演算子を使う必要があるのかというと、Perlは文字列と数値を明確に区別できないからです。scalarを文字列として解釈するならば文字列として、 print 0+ '10'; #=> 10 print 0+ '123b'; #=> 123 print '1.2e3' +0; #=> 1200 print [] +0; #=> 4303367864 ちなみに、文字列として評価するときにはこのようにするとかっこいいと言われています。 $obj.q(); 一見メソッド呼び出しのように見えますが $obj . ''; と等価です。 ベビーカー演算子: @{[ ]} 文字

    Perlの食えない事情 - 演算子編 - アリ
  • return; で何が返されるか【Perl ネタ】 - 無駄と文化

    Perl ネタです。 sub f { return; } sub g { return undef; } 上記の f と g は違うという話をします。 違いのわかるコード sub f { return; } print Dumper f; # => '' print Dumper { map { $_ => f } (1..4) }; # => '{ 1 => 2, 3 => 4 }' sub g { return undef; } print Dumper g; # => 'undef' print Dumper { map { $_ => g } (1..4) }; # => '{ 1 => undef, 2 => undef, 3 => undef, 4 => undef }' return; しているサブルーチンを使って構成されている HashRef はなんだか思わぬ形をしています

    return; で何が返されるか【Perl ネタ】 - 無駄と文化
    todays_mitsui
    todays_mitsui 2023/07/10
    Perl ネタです
  • substr のマジカルな挙動を再現したい - 無駄と文化

    Perl に substr という関数があります。文字列を部分的に切り出したり、部分的に置換できる関数です。 典型的な使い方はこんな感じ、 my $s = 'The black cat climbed the green tree'; # 4文字読み飛ばしてから5文字取り出す my $color = substr $s, 4, 5; print $color; # => 'black' # 14文字読み飛ばしてから7文字分を別の文字列で置換する substr $s, 14, 7, 'jumped from'; print $s; # => 'The black cat jumped from the green tree' さて、Perl 界隈で有名な書籍「初めての Perl」を読んでいたら、この substr 関数について次のように書かれていました。 ここで当に素晴らしい機能を披露しま

    substr のマジカルな挙動を再現したい - 無駄と文化
    todays_mitsui
    todays_mitsui 2023/06/29
    Perl を学び始めていちばんキモかった substr について書きました。
  • Scope::Container でリソース管理を行う - Articles Advent Calendar 2010 Hacker

    メリクリ!ライヨロ!YAPC::Asia 2010でベストスピーカー賞の nekokak さんの次に書かせて頂きます。kazeburo です。 先月 Scope::Contaier というモジュールをリリースしましたが、CPAN、紹介したblogはこちら。もともとこのモジュールを書いたのはMySQLに対する接続を制御するためでした。 某日、某サービスのMySQLのPROCESSLISTを見た時に mysql> show processlist; +-------------+-------------+-------------------+------+---------+----------+---------------------------------+------+ | Id | User | Host | db | Command | Time | State | Info

    Scope::Container でリソース管理を行う - Articles Advent Calendar 2010 Hacker
  • Contextの生成・破棄を任意のタイミングで制御可能にする Scope::Container(仮) - blog.nomadscafe.jp

    追記 CPANリリースしました http://search.cpan.org/dist/Scope-Container/ /追記 mod_perl のアプリケーションでは、Apacheモジュールの提供するpnotesを使うとリクエスト毎のデータを簡単に持つことができます。pnotesに入れたデータはリクエストの処理が終了したところで自動的にクリーンアップされます。これを利用したのがリクエストごとにインスタンスを作成破棄できる、Apache::Singleton(::Request)です。 また、pnotesはデータベースの接続の管理にもしばしば使われます。1リクエストを裁いている間だけデータベースとの接続を維持し、リクエストが完了したところで接続を閉じるような処理に利用されています。このようにすることでmod_perlのプロセス数分(数百)の接続がMySQLに常に張られることもなく、また1

  • プログラムを書く

    それでは簡単なプログラムを書いてみましょう。慣れるためのトレーニングと考えて少しづつ理解することが大切です。作成したら、FTPクライアントソフトを使って、CGIディレクトリにおいて実行させて見ましょう。なお、当サーバーではサンプル実行プログラムは置いていませんのでご了承ください。 ■ printと変数 下記のプログラムを参照してください。 #!/usr/local/bin/perl print "Content-type: text/html\n\n"; print "<html>\n"; print "<head><\n"; print "<title>サンプルCGI</title></head>\n"; print "<body>\n"; print "<p>\n"; $name = "ばんばん"; print "私は「$name」はじめまして!\n"; print "</p>\n";

  • 1