タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

*perlとu-pに関するsugizouのブックマーク (8)

  • mapで要素除去 - Unknown::Programming

    意外と知られてないかと思ったのでメモ。 grep {$_} map { $_ ? $N/$_ : undef } @_; って書くの? mapで特定要素を除外したいときとか - ロックスターになりたい mapを使って特定の要素を除去する方法ですが、上記の方法はこの用途であれば問題ないですが、undefという要素もちゃんと要素として見なしたい場合には困ります。 で、どうするかというと、mapの戻り値に空リストを返すことで要素の除去ができます。 my $n = 1000; my @array = (2, 1, 0, -1, -2); my @new_array = map { $_ ? $n/$_ : () } @array; たまーに使うので覚えておくと吉です。

    mapで要素除去 - Unknown::Programming
  • utf8オンな文字列のバイト数の取得方法 - Unknown::Programming

    use utf8している時のlengthは文字数を数えてしまうけど、それ以外のときは、バイト数を数えるそうだ。ところで、以下のようにしたらutf8のバイト数が取れるんじゃないかと思うんだけど、あまりutf8文字列のバイト数に需要がないのか、ググっても例が出てこない。 何か見おとしているのかもしれないな。 use utf8; my $bytes = length unpack('a*',$utf8_str); use utf8での文字列のバイト数 これ、僕も昔取得方法わかんなくて困ったことがある。 ってことで啓蒙活動しとく。 bytes::lengthを使います。 use utf8; require bytes; my $bytes = bytes::length $utf8_str; 「require bytes」が大事ね「require bytes」が。もし「use bytes」しちゃっ

    utf8オンな文字列のバイト数の取得方法 - Unknown::Programming
  • whileでファイルハンドルをループする時の暗黙の$_について - Unknown::Programming

    こんな記事をみつけた。 Perlプログラムをコンパクトに記述する方法 - builder by ZDNet Japan 短く書けてPerlってすげーんだよ的な記事でまぁそれはそれでいいんだけどこういう場合はデメリットもちゃんと説明すべきかと。 というのも上記記事にこういうコードがあったのです。 while (<STDIN>) { print $_; } $_を使うことによって「while( $line = ) {}」と書くよりも短く書けて良いっちゃ良いんですが、このコードにはバグが含まれています。 whileでの暗黙の$_はローカル化されないのです。コレ超重要。 つまり、 $_ = 100; while ( <STDIN> ) { print $_; } print $_; こう書くと$_に格納してた100が上書きされてしまうので、whileを抜けたあとに$_を参照しても100という値は消

    whileでファイルハンドルをループする時の暗黙の$_について - Unknown::Programming
  • overloadと再blessの問題 - Unknown::Programming

    overload が無効? - Practice of Programming 軽く調べてみたんですが、どうやらオブジェクトを再blessした場合、overloadフラグが立たないケースがあるようです。 具体的に言うと、overloadを使用しないオブジェクト$mが、overloadを使用しているクラスに再blessした場合、$mにはoverloadフラグが立つが$mをコピーした別のリファレンスにはoverloadフラグが立たないということです。 あー、ややこしい。こーゆーのは文章で説明するよりもコードを見た方がわかりやすいってことで以下コードで説明。 まずoverloadフラグが立つケース use Mortal qw/:all/; use strict; my $m = bless {}, "main"; bless $m , 'Mortal'; print $m; # This obj

    overloadと再blessの問題 - Unknown::Programming
  • Catalyst::Plugin::DoCoMoUID作ってみた。 - Unknown::Programming

    要はApache::DoCoMoUIDと同じようなことをCatalystのプラグインとしてやるだけですね。 sub default : Private { my ( $self, $c ) = @_; my $uid = $c->req->header('X-DoCoMo-UID'); } こんな感じ。ま、それだけのこと。 Catalyst::Plugin::DoCoMoUID-v0.01

    Catalyst::Plugin::DoCoMoUID作ってみた。 - Unknown::Programming
  • HTML::FillInFormがバージョンアップ(v2.00)したようだ - Unknown::Programming

    HTML-FillInForm-v2.00 とりあえず前バージョンとの差分を流し読みしてみたところ、 fillメソッドがクラスメソッド呼び出しできるようになったっぽい。 # 今まで my $fill = HTML::FillInForm->new; my $output = $fill->fill( scalarref => \$html ); # 新仕様 my $output = HTML::FillInForm->fill( scalarref => \$html ); でもうひとつの新仕様は、オプションの指定が無くてもOKになった。つまり、 # 今まで my $output = $fill->fill( scalarref => \$html , fdat => \%fdat ); # 新仕様 my $output = HTML::FillInForm->fill( \$html ,

    HTML::FillInFormがバージョンアップ(v2.00)したようだ - Unknown::Programming
  • 国民の祝日の名称を取得するモジュール - Unknown::Programming

    昨日の続き。 Calendar::Japanese::Holidayなるものを触ってみた - Unknown::Programming いや、続きというか昨日も言ったように僕も前に作ったやつがあるので折角だし公開しよーかなと。 DateTime::Holiday::Japaneseという名前で作ってあるんだけど、名前空間的にDateTime使ってるということもありその辺良くわかんないので、CPANにはあげてません。 →DateTime-Holiday-Japanese-0.01.tar.gz ソースは以下 package DateTime::Holiday::Japanese; use strict; use warnings; use DateTime; use UNIVERSAL::require; use Class::Inspector; use utf8; use base qw

    国民の祝日の名称を取得するモジュール - Unknown::Programming
    sugizou
    sugizou 2007/06/16
    そういえば作ってましたね
  • PHPネタ盛り上がってますね - Unknown::Programming

    404 Blog Not Found:そろそろPHPに関して一言いっとくか 前に言いたいことは言ったのであまり言うことは無いですが、トラックバックとか見てるとちょっとだけ気になった点が。 PHP使えば導入が簡単だとかWebアプリがサクっと作れるとか技術者要らずだとか言ってる人が結構いてかなりびっくり。 えっと、これだけは言っておきますが結局どの言語だろうがセキュアなアプリケーションを作ろうと思ったらかなりの労力を必要とします。 PHPだろうがPerlだろうが、です。 でPHPの場合、導入ばかりが簡単だと皆が言うからセキュアでないアプリケーションが世に溢れてる気がします。 何も考えずに作るのならそりゃPHPの方が色々一発でできるんだから簡単でしょう。 ちゃんと作るのなら結局PHP使ったとしてもそんな劇的に楽になることはありません。 むしろ僕はPHPの方がそういう面で作りにくいと感じています。

    PHPネタ盛り上がってますね - Unknown::Programming
    sugizou
    sugizou 2007/05/23
    あのマニュアルはタダのポケリなのです。偉い人にはそれが分からんのです。
  • 1