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

配列(9) sort, reverse, join

なんだか三日連続で配列のお勉強をしている気がするので(笑)、配列はこのへんでそろそろ終わらせます。でも、おかげで配列操作がよくわかりました。 sort は、配列中の要素を昇順ソートした配列を返します。渡した配列を直接ソートするわけではありません。…

配列(5) スライス

配列(2) 番号で要素を取得する で、配列変数の後ろに[N]をつけてN番の要素を取り出してみましたが、perlintro によると[N..M]でN番からM番の要素を一気に、[I,J]でI番とJ番の要素をそれぞれとりだせる(スライスできる)みたいです。 スライスすると、配列が…

続・はてなダイアリーの書き方 はてダラ+秀丸+GeSHi

またまたわき道にそれて……はてダラの使い道を色々模索してみました。 普段使っているテキストエディタは秀丸なのですが、最近の秀丸ベータ版はアウトラインや一部テキストの折りたたみなど、便利で素敵な機能を提供してくれています。 はてダラを使えば、は…

配列(6) 色々な配列操作

配列操作の比較表: Ruby, Python, JavaScript, Perl, C++ - bkブログにて他の言語とPerlの配列操作の比較表を見つけました。(いやなブログどころか素晴らしいブログですね!) 幸いな事に、JavaScript や C++ は多少かじったので、配列操作が色々わかりまし…

配列(7) push, shift, pop, unshift

とりあえず、push, shift, pop, unshift の4つを練習してみました。 # arrtest8.pl my @arr = ("A", "B", "C"); print @arr, "\n"; print "push D length:", push(@arr, "D"), "\n"; print "push E length:", push(@arr, "E"), "\n"; print @arr, "\n"; prin…

配列(8) splice

続いてspliceです。置き換える範囲の指定は、オフセット(要素番号)と長さ(要素数)で指定すればいいみたいですね。長さに0を指定すると、要素を挿入できます。 このspliceは万能で、push, shift, pop, unshift と同じ事がこの関数1つでできちゃいます。便…

日記のスタイルを

「ブログ」モードにしてみました。1日に複数の見出しを書くので、別々にコメントできた方が便利っぽい気がします。 あと、Perlのリングを見つけたので参加しちゃいました♪ また、自動トラックバック機能ですが、結城さんにお許しも頂けたので、連射に気をつ…

はてなダイアリーへの書き込み

ちょっと寄り道。 この日記は、はてなダイアリーへの書き込みは結城浩さん(id:hyuki)の「はてなダイアリーライター」(はてダラ)で書き込んでいます。 ローカルにテキストファイルで書いて、このはてなダイアリーライターを実行すると、自動的に更新した…

構文チェック(-cw)

既に短いソースコードをいくつか書きましたが、まだエラーには遭遇していません。忘れがちな行末のセミコロンは、今までの言語経験(C言語など)のおかげで自然に打つ身体になっていました。 でも、やっぱり打ち忘れがないか心配……という時は、「-cw」オプシ…

コメント

Perlでコメント(プログラムとして解釈されない文章)を書くには、"#"を使います。 # ここはコメント print "Hello, world!"; # ここもコメント # コメントだらけ "#"を書くと、改行するまではコメントになります。(Javaなどの「//」と同じですね) でも、…

リテラル文字列

Hello world で覚えた通り、Perlのソースコードに直接文字列を埋め込みたい時は「""」(ダブルクォテーション)か「''」(シングルクォテーション)を使うんでした。 ダブルとシングルの違いは「エスケープシーケンスを解釈するかどうか」「変数を展開するか…

変数の種類

「perldoc perlintro」によると、Perlには主な変数の種類が3つあるそうです。それぞれ「scalars」「arrays」「hashes」との事ですが、日本語では「スカラ」「配列」「ハッシュ」と呼ぶそうです。 それぞれ試しながら調べてみたいと思います。

スカラ変数(1) とりあえず代入

スカラ変数は「値」を1つ表す変数で、「値」は文字列か整数か小数。そして、「値」は自動的に相互変換されるそうです。つまりスカラ変数に「型」という概念はないわけですね。 型を考えなくていいのは便利ですが、どのように相互変換されるのか知っておかな…

スカラ変数(2) 数値計算してみる

数値同士で加減乗除するにはそれぞれ演算子「+」「-」「*」「/」を使うみたいです。数値同士の計算はもちろん、スカラ変数でも計算できます。 そこで以下を書いてみました。 # calctest.pl my $a = 10; my $b = 5; print "$a = ", $a, " $b = ", $b, "\n"; p…

スカラ変数(3) 魔法のスカラ変数

perlintro によると、「魔法のスカラ変数」("magic" scalars)がいくつかあるそうです。なにやらファンタジックですね。 「魔法のスカラ変数」は一見すると句読点や文字化けのようですが、とても色々な用途で使われます。詳しくは perlvar を参照とのこと。…

配列(1) とりあえず代入

配列の概念はC言語などで学びましたので、知っています。要するに、複数の要素(値)が入る変数で、番号を指定するとその要素を取り出す事ができる、という事で……いいですよね? Perlの配列も同じで、値の「リスト」を表す変数みたいです。配列変数は「@」の…

配列(2) 番号で要素を取得する

PerlでもC言語などのように、配列変数の後ろに[N]と添字を付けると、N番の要素を取り出せます。要素の番号は 0 から始まります。 ただし、注意しなくちゃいけないのは、取り出した要素はスカラー扱いなので、配列の変数名に付けるのは「@」ではなくて「$」に…

配列(3) 配列の大きさ

そういえば、Perlでは変数が宣言なしに使えてしまうので、あらかじめ配列変数の大きさを指定してるわけではないですよね。Perlの配列は要素数に従って自動的に大きくなっていくのでしょうか。 そこで、確かめる為にこんなスクリプトを書いてみました。 # arr…

配列(4) 配列中の要素を数える

配列に入っている要素の数を知るには……配列変数名の頭に「$#」を付ければいいみたいです。 # arrtest5.pl my @arr = ("Zero", "First", "Second"); print $#arr, " Numbers!"; 配列変数 @arr の要素数を知るために $#arr と書いています。正常に動けば「3 Nu…

失敗…

デザイン変更のために日記を何度も更新してしまって、トラックバックを何度も送出していた事に気がつきました。これじゃあまるでトラックバックスパムです。 ご迷惑をおかけしてしまって反省。 管理画面から、自動トラックバック機能を OFF にしておきました…

RSSアイコン

Feed Iconsのアイコンを元にRSSのアイコンを作ってみました。でも、アップロードするところがない……。 日記の画像としてアップロードしたのを、サイドバーに使っていいのかな? 追記:サイドバーに置いてみました。なかなか。

ごあいさつ

はじめまして。palmoです。今日からプログラミング言語「Perl」の勉強を始めたいと思います。 ゆっくりでも毎日1歩ずつ1歩ずつ、進んでいけたら幸せです。

なぜPerl?

今までC言語やJavaScriptなどいくつかプログラミング言語を勉強してきました。そうなると、知らないプログラミング言語で書かれたソースコードでも、つらつらと眺めると不思議なことに何となく意味がわかってしまう事に気づいたのです。 でも。 Perlはダメで…

palmo?

Perl (pal) + monger*1 (mo) です。「ぱるも」って読んでくださいね♪ *1:Perlを使う人の事を monger っていうらしいです。

Perlの実行環境を整える

というわけで、まずはPerlを実行できる環境を整える事にしました。 Linuxでは標準で実行環境がついていたりするらしいですが、僕はちゃきちゃきのWindowsっ子。WindowsでのPerl実行環境と言えば、ActiveState社の「ActivePerl」が有名みたいです。 ActivePer…

Perlのバージョンを確かめる

[スタート]→[すべてのプログラム]([プログラム])→[アクセサリ]→[コマンドプロンプト] を選択して、コマンドプロンプトを開きます。 そこに、以下のように、「perl -v」と入力して、Enterを押します。 Microsoft Windows XP [Version 5.1.2600] (C) Copyrig…

perldoc

まずは、Perlのドキュメントを調べる方法を調べます(ややこしい)。調べ方がわからないと、どうにもならないですよね。もちろんウェブで検索という手もありますけど……。 Perl のドキュメントを調べるには、コマンドプロンプトでperldocというコマンドを使え…

Hello, world!

まずは、お決まりの「Hello world」を書いてみます。文章を表示するには、print という組み込み関数を使えばいいみたいです。C言語などとは違い、関数を呼び出す時に括弧()を付けなくてもいいみたいですね。 文字列は、""(ダブルクォテーション)か ''(シ…