2009-01-01から1ヶ月間の記事一覧

第21回 q と qq

シングルクォートで囲った場合は、文字列の中にシングルクォートが現れたらエラーになってしまう。 ダブルクォートで囲った場合は、文字列の中にダブルクォートが現れたら同じくエラーになってしまう。そこで、qとqq qで囲うのは、シングルクォートで囲う別…

第19回 文字列の話をしよう コンテキストをふまえて

前回まで、「無名シリーズ」のお話から始まって、 Higher-Order、つまり「高階関数」の話題をお届けしていたわけですが、 今回からは、「文字列」のお話にがらりと変えていきます。 Perlでは、 my $c = 1; my $d = 'こんにちは'; こんな風に、「数字」も「文…

第18回 その場で実行! すぐやれ!

今回は、「無名シリーズを作ってその場で実行」 というのをみていきたいと思います。 いままで、無名シリーズは、 my $c = [1,'b']; my $d = {'a'=>'A', 'b'=>'B'}; my $e = sub { print "無名\n"; }; といったように、いったん、変数にそのリファレンスを代…

第20回 シングルクォートとダブルクォート

今まで、なにげなしに、文字列を使ったプログラムを見てきましたが、 文字列の作成の仕方をもっと詳しく見ていきましょう。 文字列を作成する2つの方法 my $c = 'こんにちは'; my $d = "こんばんは"; このように、文字列を、 シングルクォートとダブルクォー…

第16回 無名関数をもっと理解する

さて、前回は、 配列全要素に対してなにか処理したものを配列として受け取れる map について見てきました。 今回は、また無名関数の話題に戻します。 無名関数をもう一度よく見てみましょう。 use strict; # 無名関数 my $f = sub { print "無名の世界から、…

第15回 map

さて、今まで「無名シリーズ」を見てきた訳ですが、 今回は、for以外に、配列全体を処理することができる map というものについて見ていきたいと思います。まず、次のソースを実行してみましょう。 use strict; use Data::Dumper; my @array = 1..3; my @plu…

第17回 grep

さて、全配列の要素を処理してくれるものに map というものがありました。 これは、かなり強力ですので、他言語でもよく使われているかたがいらっしゃると思います。 これと書き方がよくにていますが、ちょっと機能が違うものに grep があります。 さて、で…

第14回 無名関数

さて、今まで、「無名配列」「無名ハッシュ」と見てきました。 いよいよ「無名関数」の登場です。 今までの無名シリーズに共通していることは次の通りです。 「名前をなくすと、一撃でリファレンスを取得できる」 ほほう。では、関数の名前をなくしてみます…

第13回 多段ハッシュ

さて、前回は多次元配列のお話でした。今回は、多段ハッシュのお話です。配列の中に配列が入っているのは「次元」という言葉をつかって「多次元配列」と呼ばれるのですが、 ハッシュの値の中にまたハッシュが入っているのは、「段」という言葉をつかって「多…

第12回 2次元配列

今回は、2次元配列を見てみましょう。Perlで配列は、@ なのですが、これ1次元配列なんですよね。 2次元配列自体は言語自体は持っていない。ということで、自分でつくらないといけないわけです。 まずは、失敗する例からみてみましょう。 use strict; use Dat…

第11回 「配列」と「ハッシュ」と「無名配列」と「無名ハッシュ」と

前回は、Data::Dumper を紹介しました。ということで、これからは変数の中身を見るときは積極的にData::Dumperを使っていきます。 今回は、 「配列」と「ハッシュ」と「無名配列」と「無名ハッシュ」を相互に乗り換える方法を紹介します。 「配列」から「ハ…

第10回 今までの知識を総動員して、Data::Dumperを理解する

use strict は、 CPANからなにも落としてこずに使えるように、Data::Dumperも、use Data::Dumper; と書けば、 Perlに組み込まれているので使えます。こいつは、すこぶる便利です。もう手放せない。 Rubyのp や、 PHPのprint_r みたいな機能です。 使い方を見…

第9回 リファレンスと無名ハッシュ

さて、みなさん。 もう配列のリファレンスとデリファレンスはマスターされていることと思います。 リファレンスを取得するときは、 \を変数に付ければよいですね。 デリファレンスするときの法則は \と同じだけの$で元にもどす。ただし、最後の記号はもとの…

第8回 ハッシュ

今回は、ハッシュです。これまた多くの言語でありますね。JavaScriptだとまさにまんまハッシュだし、JavaにはMapっていうのがあったり、RubyにもHashっというのがあったりします。 というわけで、ハッシュの作り方とアクセスの仕方なんかを紹介しましょう(…

第7回 関数というかサブルーチン

今回は、関数というかサブルーチンというかまあ、いわゆるファンクションというかー... 要は、機能の集まりというか.... ええい! 「関数」を学びましょう。 「関数」と「サブルーチン」の違いなのですが、 関数は、「引数をうけとってなにかの値を返します…

第6回 エイリアスという発想と破壊的!という考え方

Perlにおけるエイリアスという言葉を紹介します。これリファレンスとよく似たような考え方のものなのですが、ちょっと違っています。 ですが、リファレンスよりは簡単だと思います。今まで、for文の中で $_ を使ってきましたね。 use strict; my @array = 1.…

第5回 リファレンスと無名配列

さて、リファレンスの話をしたいと思う。リファレンスというのは、「メインメモリのどこかを指し示している変数」である。 この言葉がわかりにくいなら、「メインメモリのどこかのアドレスが代入されている変数」と考えてもよい。 Perl以外の他の言語でもこ…

第4回 Perlはメモリについて意識しないでいいようにできている

Joel on Software作者: Joel Spolsky,青木靖出版社/メーカー: オーム社発売日: 2005/12/01メディア: 単行本購入: 18人 クリック: 371回この商品を含むブログ (451件) を見るJoel on Software(上記)でも述べられているのですが、プログラマはオブジェクト指…

第3回 JavaScriptのスコープと比べてみましょうか

さて、JavaScriptのスコープの話をしたいと思います。 あ、今回の内容は、3回目の記事にしてはレベルが高いと思いますので、JavaScriptにかなり精通しておられないなら、読み飛ばしたほうがいいかもしれません(あくまで、個人的レベル加減ですが)。 現状の…

第2回 main関数はどこだ? プログラムはどこから処理されるのか

C言語にはmain関数が、Javaには、クラスを用意してその中にmainメソッドがあります。 そのmain関数(メソッド)からプログラムが開始します。 さて、Perlには、main関数があるのでしょうか? いいえ、ありません。 うわああ、ならPerlはどこから処理されるん…

第1回 use strict; と my

こんばんは。ビンゴ中西です。bingo_nakanishiのPerlではじめるプログラミング言語 では、プログラムがまったくはじめてという方を対象にPerlという言語を用いてプログラミングの楽しさを知っていただこうと書いてきましたが、本ブログでは、他言語出身の方…