タグ

2009年4月14日のブックマーク (4件)

  • wantarrayのもう一つの使い方 - ヒルズで働く@robarioの技ログ

    普通wantarrayは「arrayコンテキストか否か」を判定するために使われるが、voidコンテキストの判定にも使える。 イマイチ使い方がピンと来ていなかったが、HTML::Entitiesのソースを見ていてなるほどと思った。 sub encode_entities { my $ref; if (defined wantarray) { my $x = $_[0]; $ref = \$x; # copy } else { $ref = \$_[0]; # modify in-place }wantarrayは subroutine() # voidコンテキスト undef $scalar = subroutine() # scalarコンテキスト @array = subroutine() # arrayコンテキスト 1 になる。 よって、defined wantarrayを調べることに

    wantarrayのもう一つの使い方 - ヒルズで働く@robarioの技ログ
    mikeda
    mikeda 2009/04/14
  • Rubyにインクリメンタル演算子がない理由は?

    No.1の方のURLが端的なのですが、もう少し詳しく書いてみます。 Ruby での「数」は「数が格納された箱」ではなく「数」そのものです。 例えば String は「文字列が格納された箱」なので、<< の用な破壊的なメソッドを使い、foo = "0"; foo << "1"; p foo とすれば "01" と表示されます。また、foo = "0"; bar = foo; foo << "1"; p bar としても、bar は foo と同じ文字列が格納された箱を示しているので "01" が表示されます。この辺りは Array や Hash などの「何かを格納する箱のようなもの」でも同じですね。 さて、Ruby では Fixnum などが数字そのもののためこの様な破壊的な動作が出来ません。もし出来てしまうと、foo = 0; foo++ としたときに、そのスクリプト中にある全ての 0 が

    Rubyにインクリメンタル演算子がない理由は?
    mikeda
    mikeda 2009/04/14
    rubyに++がないのはFixnumを破壊できないため
  • Ruby Quiz

    自己紹介 cuzic は きゅーじっく と読む Ruby 関西 広報担当 Ruby 関係の仕事 Rubyist Magazine に Win32OLE の記事を執筆 Ruby On Rails 用に Relative Path プラグインを開発 Ruby クイズとは Best of Ruby Quiz (Pragmatic Programmers) とは無関係 http://www.rubyquiz.com とももちろん無関係 名前を拝借しただけ Ruby 中級者がハマりがちな ちょっとしたポイントを楽しく学べる新企画 選択式の問題を解きながら、Ruby の文法等への理解度を確認できます。 今まで知らなかった Ruby の特徴を学べます。

    mikeda
    mikeda 2009/04/14
  • iandeth. - Spreadsheet::ParseExcel - ごくごく普通の使い方メモ

    iandeth. Perl, Flash ActionScript, MySQL, Movable Type, システム開発 - そんなテーマのサイトdeth. sample: エクセルからデータを読みとるparseExcel.pl #!/usr/bin/perl -w use strict; use Dumpvalue; use Spreadsheet::ParseExcel; use Spreadsheet::ParseExcel::FmtJapan; our @COL_DEF= qw( pid name stand_name ); our $PKEY = 'pid'; our $FILE = 'jojo.xls'; my %dupChk; # for checking duplicate records my $dv = Dumpvalue->new; # for data dump