タグ

ブックマーク / bingo-nakanishi-perl.hatenadiary.org (24)

  • 第133回 JavaScriptだけ学んでいても動的なページを作れるようになれない DOMが必要だ - bingo_nakanishiの他言語出身者のためのPerl入門

    私は動的なページを作ってみたいと思いJavaScriptを学び始めた。 今までこうとしか書けないと思っていたモノが、 他の言語では別の方法で書け、 その表現のおかけでパワフルなプログラミングができるといった話がかなり好きなので、 始めはJavaScriptの文法ばかりを勉強していた。 とくに、他の言語の経験者が面白い! ためになる! と思うのはこのである。 まるごとJavaScript & Ajax ! Vol.1 作者: 天野仁史,舘野祐一,川崎有亮,arton,田中孝太郎,国分裕,山有悟,海野裕也,nanto_vi出版社/メーカー: インプレス発売日: 2007/02/15メディア: 大型購入: 8人 クリック: 98回この商品を含むブログ (78件) を見るJavaScriptのこの書き方ってそういう意味だったのか!! といったことや、最近の動向がぎゅぎゅっとまとまっている。

    第133回 JavaScriptだけ学んでいても動的なページを作れるようになれない DOMが必要だ - bingo_nakanishiの他言語出身者のためのPerl入門
  • 第130回 Javaを始めるにあたって読んだ本 - bingo_nakanishiの他言語出身者のためのPerl入門

    私はJavaは得意ではない。 だが、世の中にはやらなければならないということがあるのだ。 Javaの「仕組み」・「文法」 Java 謎+落とし穴 徹底解明 (標準プログラマーズライブラリ) 作者: 前橋和弥出版社/メーカー: 技術評論社発売日: 2001/12/01メディア: 大型購入: 8人 クリック: 40回この商品を含むブログ (21件) を見るJavaにポインターはないと誰がいったのだろう。 確かにポインターはないかもしれないが、 もう全部「参照」と言ってもいいくらいなのがJava。 というか「参照」がわかっていないとなにもできないということに気づかせてくれる。 詳解 Javaプログラミング第2版〈VOLUME1〉 作者: パトリックニーメイヤー,ジョナサンナッセン,Patrick Niemeyer,Jonathan Knudsen,滝沢徹,鈴木憲子,牧野祐子出版社/メーカー:

    第130回 Javaを始めるにあたって読んだ本 - bingo_nakanishiの他言語出身者のためのPerl入門
    mollifier
    mollifier 2009/07/05
    参考になる本の例
  • 第120回 Perlらしく書くための5つの極意 - bingo_nakanishiの他言語出身者のためのPerl入門

    極意1 組み込み関数のカッコは書かない open my $file, '<', 'hoge.txt'; split //, $c; 組み込み関数と自分が作った関数を一発で見分けられるのは有意義だ。 それに、記号が多いと読み辛い! Perlが標準で持っている関数くらい覚えているぜ!! ということをアピールするくらいの勢いで、標準の関数の括弧はなしで!!!! 極意2 変数は必要になったら宣言 my $c = 1; # $cに関する処理 my $d = 10; # $dに関する処理 プログラム言語の中には、関数の先頭で変数を宣言しなければならない言語があるが、Perlはそんなことはない!!! 必要になったときに宣言するんだ!!!!!! 後で読んだときに、変数をすべて頭に入れる必要がなくなる!!!!! 極意3 つなげる my @c = 1..3; for(reverse @c){ print $_

    第120回 Perlらしく書くための5つの極意 - bingo_nakanishiの他言語出身者のためのPerl入門
  • 第118回 Developing Test Cases With Selenium-IDEを読んでみた - bingo_nakanishiの他言語出身者のためのPerl入門

    Developing Test Cases With Selenium-IDEを読んでみました。 自分用にまとめてみます。 (勘違い、読み違い等ありましたら教えていただけるとうれしいです。 英語的にわからないところが2割~3割ほどありました.....) 読んだのはココ Selenium - Web Browser Automation イントロダクション まあ、IDEは便利ですよと。 IDEをインストールしよう Firefoxのアドオンでいけますよ。 IDEの特徴 メニューバー テストケースを作ったり、開いたり、保存したりできる。 Edit menuは、 コピーしたり貼付けたり、 消したり、 アンドゥしたり、 コマンドを選択したりできる。 オプションメニューでは、設定をいじれる。 特定コマンドのtimeout valueとかいじれる。 保存形式の言語を選んだりもできる(HTMLなど)。 ユ

    第118回 Developing Test Cases With Selenium-IDEを読んでみた - bingo_nakanishiの他言語出身者のためのPerl入門
  • 第113回 Selenium Basicsを読んでみた - bingo_nakanishiの他言語出身者のためのPerl入門

    Selenium Basicsを読んでみました。 自分用にまとめてみます。 (勘違い。読み違い等ありましたら教えていただけるとうれしいです。 英語的にわからないところが2割ほどありました.....) 読んだのはココ: Selenium - Web Browser Automation Selenese Seleniumのコマンド(command set)はSeleneseと呼ばれるようだ。(なんて発音するのだろうか.....) コマンドは3つにわけられる コマンドは、 Actions, Accessors, Assertionsにわけられる。 Actionsは、クリックやオプションの選択などをするもの。エラーが起これば、テストはストップする。 Accessorsは、.... 変数に代入できる。 Assertionsは、ページタイトルとか、チェックボックがチェックされているとかを確認するもの

    第113回 Selenium Basicsを読んでみた - bingo_nakanishiの他言語出身者のためのPerl入門
  • 第86回 スライス - bingo_nakanishiの他言語出身者のためのPerl入門

    みんな、Perlの配列の要素にアクセスするときは、 @ を $ に変えないといけないぞ!!!!! 注意! 注意! またまた注意!! my @c = ('a','b','c'); my $e = $c[0]; こうだぞぉおおおお!! となるわけなんですが........ 当? じゃあ、 @のままでアクセスするとどうなるのでしょうか? use strict; my @c = ('a', 'b', 'c'); print @c[1], "\n"; my $d = @c[2]; print $d, "\n"; 結果: b cな、な、な、なんだってぇえええええええええ!! うまくいってるんじゃないかぁああ!? と、なっちゃうわけなんですが、 これ実は「スライス」と呼ばれるもの。 スライス 例えば、ある配列があって、その配列から、添字が1の要素と2の要素だけ持った配列を作りたいとします。 すると、P

    第86回 スライス - bingo_nakanishiの他言語出身者のためのPerl入門
    mollifier
    mollifier 2009/04/04
    Perlの配列のスライス(slice)
  • 第56回 クロージャの実践的使いどころ - bingo_nakanishiの他言語出身者のためのPerl入門

    あまりPerlでクロージャを使っている例をみたことがなくて(僕の勉強不足もあるだろうけど)、 友人に聞いてみたところ、 コールバックかな。 と言われたので、やってみよう。 コールバック そもそもコールバックとはなにかというと、 なにかの関数に関数を与えると、その与えた関数を呼んでくれる仕組みである。 言葉で説明すると、わかりにくいのでソースを提示する。 use strict; sub call_you { my $code = shift; print '今から君の関数を呼ぶ', "\n"; $code->(); # コールバック; print '呼び終えました', "\n"; } my $f = sub { print '!!呼んで!!', "\n"; }; call_you($f); 結果: 今から君の関数を呼ぶ !!呼んで!! 呼び終えました コールバックを使った関数 では、次のよう

    第56回 クロージャの実践的使いどころ - bingo_nakanishiの他言語出身者のためのPerl入門
    mollifier
    mollifier 2009/02/07
    Perlのクロージャー。難しい。
  • 第31回 Perlでオブジェクト指向を書こう - bingo_nakanishiの他言語出身者のためのPerl入門

    さて、オブジェクト指向のプログラムを書いてみようといったので書いてみました〜。 といってもいきなりソースを載せるのもなんなので、まずどんなプログラムを書こうとしたか。 そこからお話させていただきます。 今朝、電車に乗ると必死で、PSPをされている方がおられました(たぶんモンスターハンターだと思われる)。 ということで、なにか冒険者が冒険するようなものを作ってみたいと思います。 でも、そんな大げさなものは作れないので、たんに主人公だけを作ってみたいと思います(といってもこの主人公もできることは少ないのですが)。 主人公 まず、主人公ですから、名前を持ちましょう。そしてこの主人公には年齢の情報も持たせます。そしてこの主人公は、袋(bag)をもっており、なんでもそこに入れることができます。 主人公ができること 主人公は袋を持っていますので、何かを袋に入れることができます。 以下のようにpushメ

    第31回 Perlでオブジェクト指向を書こう - bingo_nakanishiの他言語出身者のためのPerl入門
  • 第50回 forとwhileの違い その2 - bingo_nakanishiの他言語出身者のためのPerl入門

    第46回 forとwhileの違い その1 - bingo_nakanishiの他言語出身者のためのPerl入門 で、 あるときの例外を除いて、whileはforのように$_に値をいれません。 と述べました。その例外を紹介しましょう。それは、行入力演算子といっしょに使ったときです。 whileと行入力演算子 whileの( )の部分に行入力演算子を与えた場合は、$_にファイルの中身が読み取られます。 use strict; open my $file, '<', 'hoge.txt'; while(<$file>){ print $_; } 結果: aaaaaaaa bbbbbbbb cccccccc dddddddd eeeeeeeewhileの( )の部分がスカラーコンテキストであることを思い出すと、 whileが1回まわるごとに、$_に1行ずつ読み込まれていくのが納得できます。 fo

    第50回 forとwhileの違い その2 - bingo_nakanishiの他言語出身者のためのPerl入門
    mollifier
    mollifier 2009/01/31
    "forはリストコンテキストなので、ファイルの中身を全部メモリに読み込む。なので、大きなファイルに対してforを使うとメモリを大量につかってしまう。"
  • 第49回 行入力演算子とコンテキスト - bingo_nakanishiの他言語出身者のためのPerl入門

    それでは、話をPerlに戻しまして、 ファイルを読み込む話をしたいと思います。「forとwhileの違い」の続きを書く為の伏線です。 ファイルを読み込む為には、以下のように書きます。 open my $file, '<', 'hoge.txt'; はじめてその変数を使うときは、 my を付けるのを忘れないようにしましょう。 '<'は、ファイルを「読み込む」ことを示しています。 '>'なら、ファイルに「書き込む」ことになります。他にもいろいろな指定が可能です。 行入力演算子 あとは、openに与えた変数(今回は、$file)を使って、ファイルの値を読み込むことができます。 ファイルを読み込む為には、行入力演算子と呼ばれる演算子を使います。行入力演算子は、 <>という形をしており、 <$file>というように、< と > の間に読み込みたいファイルを示している変数を置くことで読み込めます。 ス

    第49回 行入力演算子とコンテキスト - bingo_nakanishiの他言語出身者のためのPerl入門
    mollifier
    mollifier 2009/01/31
    perlでのファイル読み込みの方法
  • 第47回 vim入門 part1 - bingo_nakanishiの他言語出身者のためのPerl入門

    今回は、手法を変えてというか、話題を変えてvimのお話です。 viというエディタがありますが、これを改良した(improved)のが、vimです。 このbingo_nakanishiの他言語出身者のためのPerl入門で使われているソースはvimで書いています。 vimが使えるとプログラミングだけではなく、設定ファイルの編集などが高速にでき便利です。 (このシリーズでは、私自身がそれほど、vimを使いこなしているとは言えないので紹介程度と考えてください) とりあえず とりあえず bingo.pl という名前のファイルを作って、そこになにか入力し、保存するところまでやってみましょう。 $ vim bingo.pl そうすると、bingo.plというファイルを編集できるようになります。 でも、普通のエディタと違っていきなり入力することができません。 そこで!! i iです。 おもむろに、iを入力

    第47回 vim入門 part1 - bingo_nakanishiの他言語出身者のためのPerl入門
    mollifier
    mollifier 2009/01/31
    突然のvim入門。びっくり
  • 第44回 evalで例外処理 - bingo_nakanishiの他言語出身者のためのPerl入門

    evalで囲ってしまって、dieさせない例を見てきました〜。 さてさて、次のようなことを考えてみましょう。 ファイルを無事にopenできた場合は、ファイルを読み込んで正常な処理をする。 もし、ファイルがopenできなかった場合はその旨をデータベースに残しておくためにデーターベースに書き込みにいく。 こういった処理を考えた場合。 ファイルがないからといってdieされては困ります。 そこで、eval evalを使ってdieを捕まえるのです。 evalが例外を捕まえれば、$@に値が入るのは前回みましたね。 これを使いましょう。 ソースを見た方が早いので、ソースを載せちゃいます。 use strict; my $f; eval { open $f, '<', 'hoge.txt' or die $!; }; if($@){ print '大変だデータベースに登録', "\n"; } else {

    第44回 evalで例外処理 - bingo_nakanishiの他言語出身者のためのPerl入門
  • 第34回 Perlで小技2 - bingo_nakanishiの他言語出身者のためのPerl入門

    Perlでファイルをopenするときは、以下のような感じで書きます。 ファイルを読み込む例 use strict; open my $f, '<', 'hoge.txt'; while(<$f>){ print $_; } < > という変わった記号(行入力演算子と呼ばれる演算子)と、whileのコンビで1行ずつ読み込みができます。 (このwhileの挙動も話しだすと長い。 whileの ( ) の部分はスカラーコンテキストです) おっと、 hoge.txt という名前のファイルを開いていますので、 hoge.txt という名前のファイルを用意して置きましょう。 hoge.txt aaa bbbb cccc 実行結果 aaa bbbb cccc でもファイルを用意したり、openしたりといったことは、 試しに小さなプログラムを書いてみたりといったときには、面倒な作業です。 そういったときの

    第34回 Perlで小技2 - bingo_nakanishiの他言語出身者のためのPerl入門
    mollifier
    mollifier 2009/01/24
    "__DATA__ より下に書いた部分は、すでにopenされたファイルのように扱えます" ちょっとした動作確認に
  • 第32回 前回のソースの説明 - bingo_nakanishiの他言語出身者のためのPerl入門

    さて、どこから説明したらいいものやら...... という感じなのですが、前回のソースの説明をしたいと思います。 前回のソースはもうひとつ窓を開けてもらって(別のブラウザとかで見てもらって)ここでは、部分的に説明していきたいと思います。 まずは、 new 33 my $human = Human::new({'name' => 'ビンゴ', 34 'age' => 1, 35 'bag' => {} 36 }); このnew をしている部分からいきたいと思います。 new関数自体は次のようになっています。 5 sub new { 6 my $c = shift; 7 bless $c; 8 } 単に、受け取ったものをblessしているだけ。 つまり、受け取ったものに魔法をかけて、Humanパッケージの関数を使えるようにしているわけですね。 おっと! そうそう、主人公をつくるためのパッケージは

    第32回 前回のソースの説明 - bingo_nakanishiの他言語出身者のためのPerl入門
    mollifier
    mollifier 2009/01/24
    perlでオブジェクト指向。良い説明
  • 第28回 blessは各々のパッケージに任せよう - bingo_nakanishiの他言語出身者のためのPerl入門

    さて、ただblessするだけの関数を作ったが、 これを各々のパッケージに持たせることで、 各パッケージに、blessされた変数を返してもらうことにする。 これにより、 パッケージ名::blessされた変数を返す関数 という書式で、そのパッケージの関数を呼び出せる変数がもらえることになる。 例えば、Hogeパッケージの関数を呼び出すことができる変数を返してもらうなら、 my $c = Hoge::new(); と書ける。 あとは、 $c->h() といった感じで使っていけばいいのだ。 なお、今回は、 blessされた変数を返してくれる関数を new という名前にした。 それでは、もっと具体的な例を見てみよう。 use strict; package Hoge; sub new { my $c = shift; bless $c; # Hogeパッケージ内で呼ばれているので、第2引数は'Hog

    第28回 blessは各々のパッケージに任せよう - bingo_nakanishiの他言語出身者のためのPerl入門
    mollifier
    mollifier 2009/01/22
    blessを使ったPerlのオブジェクト指向の例
  • 第26回 別パッケージの関数を呼び出すいろいろな方法 まとめ - bingo_nakanishiの他言語出身者のためのPerl入門

    さあ、 別パッケージを呼び出す方法が、たくさん出てきたので、混乱してきたところではないだろうか? いままでのところをまとめよう。 別パッケージの関数を呼び出す方法 パッケージ名::関数名 blessされた変数->関数名 'パッケージ名'->関数名 パッケージ名->関数名 この 4つの方法がでてきたわけだが、 下3つに共通しているのは、 -> 記号で関数を呼んでることである。 つまり 前回の最後のソースを実行してみよう それでは、前回の最後のソースを実行してみよう! 先ほども述べたが、別パッケージを呼び出す方法は、 で呼び出す方法 > で呼び出す方法 に大別できるのである。 この違いを示すのが、前回のソースである。 (再掲) use strict; package Hoge; sub h { my $z = shift; print "$z", "\n"; # 関数に与えられた第1引数を表示

    第26回 別パッケージの関数を呼び出すいろいろな方法 まとめ - bingo_nakanishiの他言語出身者のためのPerl入門
    mollifier
    mollifier 2009/01/21
    そろそろPerlのオブジェクト指向に関して大事なところに来た
  • 第24回 別のパッケージの関数を呼び出すもう1つの方法 bless - bingo_nakanishiの他言語出身者のためのPerl入門

    前回、パッケージによって名前空間を作り出し、 名前空間の名前::関数名 という書式で関数を呼び出せることを見ました。 実は、この書式ではなくても、他のパッケージの関数を呼び出す方法があります。 それが bless です。 bless 早速、例を見ていきたいと思います。 例: use strict; package Hoge; sub h { print 'Hogeの関数', "\n"; } package Foo; sub f { print 'Fooの関数', "\n"; } package main; my $c; $c = bless \$c, 'Hoge'; # bless に大注目 $c->h(); # 呼び出し! my $d; $d = bless \$d, 'Foo'; # bless に大注目 $d->f(); # 呼び出し! 結果: Hogeの関数 Fooの関数 なにをし

    第24回 別のパッケージの関数を呼び出すもう1つの方法 bless - bingo_nakanishiの他言語出身者のためのPerl入門
    mollifier
    mollifier 2009/01/19
    blessの使い方について。次回も期待
  • 第23回 package - bingo_nakanishiの他言語出身者のためのPerl入門

    package Perlで「名前空間」を作りたければ、 package(パッケージ)を使います。 packageは、Perlで「オブジェクト指向」を行うときの前提知識のひとつなのでしっかり覚えておきましょう。 「名前空間」というのは、苗字みたいなものですね。 名前空間 use strict; package Morning; sub greeting { print 'おはよう', "\n"; } package Night; sub greeting { print 'こんばんは', "\n"; } package main; Morning::greeting(); # おはよう Night::greeting(); # こんばんは 結果: おはよう こんばんは名前空間を使えば、同じ関数名であっても(名前空間が違うので)呼び出すことが可能です。 大規模開発 これは、複数人で大きなソース

    第23回 package - bingo_nakanishiの他言語出身者のためのPerl入門
    mollifier
    mollifier 2009/01/19
    パッケージを作る方法について
  • 第21回 q と qq - bingo_nakanishiの他言語出身者のためのPerl入門

    シングルクォートで囲った場合は、文字列の中にシングルクォートが現れたらエラーになってしまう。 ダブルクォートで囲った場合は、文字列の中にダブルクォートが現れたら同じくエラーになってしまう。 そこで、 q と qq qで囲うのは、シングルクォートで囲う別の姿 use strict; print 'こんにちは\n'; print q{こんばんは\n}; 結果: こんにちは\nこんばんは\n qqで囲うのは、ダブルクォートで囲う別の姿 use strict; print "こんにちは\n"; print qq{こんばんは\n}; 結果: こんにちは こんばんは q{ { } , qq{ { }という形になったら、エラーなのでは? print qq{こん{ばんは}; Can't find string terminator "}" anywhere before EOF at bingo.pl l

    第21回 q と qq - bingo_nakanishiの他言語出身者のためのPerl入門
    mollifier
    mollifier 2009/01/19
    文字列のシングルクォート、ダブルクォートの別の書き方
  • 第13回 多段ハッシュ - bingo_nakanishiの他言語出身者のためのPerl入門

    さて、前回は多次元配列のお話でした。今回は、多段ハッシュのお話です。 配列の中に配列が入っているのは「次元」という言葉をつかって「多次元配列」と呼ばれるのですが、 ハッシュの値の中にまたハッシュが入っているのは、「段」という言葉をつかって「多段ハッシュ」と呼ばれます。 やはり、値の方には、「スカラーな値」しか持てませんので、リファレンスで頑張ります。 さて、この多段ハッシュでどんなことができるのかというと、 「A組には、中西、木村、田中」、「B組には、斉藤、山」がいるとして、それぞれの苗字から名前を取得するということができます。 use strict; use Data::Dumper; my %c = ( 'A'=>{ '中西' => 'ビンゴ', '木村' => '次郎', '田中' => '三郎' }, 'B'=>{ '斉藤' => '4郎', '山' => '5郎' } );

    第13回 多段ハッシュ - bingo_nakanishiの他言語出身者のためのPerl入門
    mollifier
    mollifier 2009/01/13
    多段ハッシュ。ハッシュの値としてハッシュのリファレンスを持つ