初めてのPerl

初めてのPerlを読み終えました

本日,初めてのPerl第17章の練習問題を解答したところで,やっと初めてのPerlを読み終えたことになります.ログ見ると4/18日から開始してるのでひと月くらいかかったかしら.もう少し,早く本を読めるようになりたい.これまで,初めてのPerlなカテゴリで書…

第17章 上級テクニック 練習問題

やっと,最終章にたどりつきましたよ.最後はevalの使い方,map,grep,あと,スライシングなどがテーマ. 1. 単語のリストをファイルから読み込み,ユーザが入力した正規表現をマッチさせ結果を表示する 以外に単純そうな問題ですが,これを今までの知識を…

第16章 DBMファイルとDBMハッシュ 練習問題1,2,3

ファイルデータベースのDBMをPerl上でDBMハッシュとして使う. 1.perlfunc.podの中の=itemで始まる行の次に現れる識別子に対して,その識別子が初めて現れた行数を記録する 問題なが.perlfunc.podのフルパスは, $ perlfunc -l perlfuncで取得できる.中を…

第15章 文字列処理とソート 練習問題 3

今日も今日とて,たんたんとPerl. 3. 与えられた文字列の中から部分文字列を見つけその位置を返す 部分文字列の位置を返すのはindex関数でした. #!/usr/bin/env perl -w use strict; # 検索対象 print "input target string: "; chomp (my $string = <STDIN>); # </stdin>…

第15章 文字列処理とソート 練習問題 1,2

ゆかりライブの興奮冷めやらぬ中、本日もPerl。 1. 数値のリストを読み込んでソートし、右寄せで表示するプログラム 数値のリストはオライリーからダウンロードできるサンプルコードに入ってるのを使いました。numbersというファイルです。oreilly.co.jp -- …

第14章 プロセス管理 練習問題

本日はコードが冗長になりがち。 1. ls -lの結果を出力するプログラム ディレクトリの指定はハードコードすればよいらしいです。 #!/usr/bin/env perl -w use strict; # 指定のディレクトリに移動 my $dir = '/'; # ディレクトリの指定は直接書く(ハードコー…

第13章 ファイルとディレクトリの取り扱い 練習問題 その2

同じような問題が続きます。 3. lnと同じように動くプログラムを作る lnといってもハードリンクを作る部分だけです。13章の練習問題 2問目とほとんど同じ。removeをlinkに変える。 #!/usr/bin/env perl -w use strict; use File::Basename; use File::Spec; …

第13章 ファイルとディレクトリの取り扱い 練習問題 その1

出かけるまでにいかに、ここの更新とRSSのチェックを済ますかが問題。 1. rmと同じ働きをするプログラムを書く ここは単純に、 #!/usr/bin/env perl -w unlink @ARGV;これでおっけ。エラー表示が必要な時は、foreachでファイルごとに削除してエラー処理をす…

第12章 ディレクトリ操作 練習問題

Rubyに浮気したいなんていわないよ。*1 1. 指定されたディレクトリの内容をソートして表示 #!/usr/bin/env perl -w use strict; print "input directory name: "; chomp(my $dir_name = <STDIN>); if ($dir_name) { #入力があったら chdir $dir_name or die "cannot</stdin>…

第11章 ファイルハンドルとファイルテスト 練習問題 その2

平日より数倍いそがしかったGWも終わったのでがんがんいくよー。 3. コマンドラインからファイルのリストを受け取り、最も古いファイルとその古さを表示する まず、以下のように書いてみましたよ。 #!/usr/bin/env perl -w use strict; my $oldest = 0; my $…

第11章 ファイルハンドルとファイルテスト 練習問題 その1

ファイルを読んだり書いたり。 1.入力ファイルの内容をを指定の正規表現で置換して、ファイルに出力するプログラム #!/usr/bin/env perl -w use strict; print "in-file: "; chomp(my $infile = <STDIN>); open INFILE, "< $infile" or die "No such file named $in</stdin>…

第10章 さまざまな制御構造 練習問題

初めてのPerl、とりあえず最後まで読めました。あとは練習問題は解いて行こう。平行してCPAN遊びもしたいところ。 1. 数あてゲームを作る 10章は練習問題はこれだけです。Cで言うcontinueがnext、breakがlastね。 use strict; my $seacret = int (1 + rand 1…

第9章 正規表現の利用法 練習問題

GWだけどがんばります。 1. $whatという変数に入っている正規表現が三回現れるようなパターンを書く まずは、まんまと罠にひっかかりました。 /$what{3}/で、$what='test';などとしても、"testtesttest"にマッチしない。{3}がtに結合しちゃってるんだからそ…

第8章 正規表現の詳細 練習問題 その3

そろそろ8章にとどめを。 3, スカラー変数名を示すような文字列にマッチするような正規表現 まず、$(ドル記号)がきて、その後が、英数字の大文字小文字と数字、そして_(アンダーバー)だけで構成されているような文字列。ただし、$(ドル記号)の直後に数字はだ…

第8章 正規表現の詳細 練習問題 その2

昨日の続き。もっかい問題を引用すると、 /"([^"]*)"/ #1 /^0?[0-3]?[0-7]{1,2}$/ #2 /^\b[\w.]{1,12}\b$/ #3 ですね。#1は昨日やったので、#2から。この正規表現にマッチする文字列を数値としてみて、一番大きいのは377。[0-7]あたりから8進数の匂いがぷん…

第8章 正規表現の詳細 練習問題 その1

この練習問題の冒頭を引用すると、 この章の練習問題は、本書の中で最も難易度がたかくなっています。 となって、いきなり脅されまくりですよ。そのうえねみぃので半分くらいの予定で;)。 1. 略 正規表現を書けという問題。問題文があまりに長ったるいので、…

第7章 正規表現の基本 練習問題

本日はまだおてんと様も昇ってないようですよ。正規表現は詳説正規表現でわりとやったので、一気にいくよん。初めてのPerlのp122に正規表現のテスト用スクリプトが用意されています。問題1、2、3で使うので以下に引用。 #!/usr/bin/env perl -w while { chom…

第6章 入出力の基本 練習問題

何も言わずに練習問題。だって、ねむいんだもんよ。あぁ、外が明るくなってきた。 1. 出力が逆になるcatっぽいプログラムtacを作る ともかく、 use strict; my @lines = <>; print reverse @lines;と書いてみたけど、これでも生温かった。 use strict; print…

正規表現をちょっと

Perlでちょっとだけ正規表現を使ってみました。 $_ = "higurashi no NAku koro ni"; if (/NA/) { print "$`<span style=\"color:red;\">$&</span>$'\n"; }ちゃんとNAが赤くなります。ひぐらしのなく頃には怖くて夜には見れません。ひぐらしな怖い正規表現考えます、そのうち。初めてのPerl作者:…

第5章 ハッシュ

ここはそんなにも難しくなかったので、軽くまとめ。配列では、[](ブラッケット)を使いますが、ハッシュでは{}(ブレース)を使う。 # 配列 $sos[0] = 'haruhi; # ハッシュ $sos{'dancho'} = 'haruhi;ハッシュ全体を表すのには、%(パーセント記号)を使いう。ま…

第5章 ハッシュ 練習問題

ここもまだまだ簡単。 5-1 名前を入力してそれに対応した姓を出力する use strict; my %nameset = ( "akari" => "mizunashi", "aika" => "granzchesta", "alice" => "carroll" ); print "input a name: "; chomp(my $name = <STDIN>); print "family name is $names</stdin>…

第4章 サブルーチン 4.12 練習問題

いっきに練習問題まで。 4-2 & 4-3 引数リストに含まれる数値の合計を返すサブルーチンを作る 単純に、 use strict; #問題のサブルーチン sub total{ my @nums = @_; my $sum = 0; foreach (@nums) { $sum += $_; } $sum; } # 4-1 my @fred = qw{1 3 5 7 9};…

第4章 サブルーチン Perlは変数のスコープがアレだなぁ

サブルーチンの章をいっぺんに読んだ。まず、ためしにサブルーチンを書いてみる。 sub adder { my ($x, $y) = @_; $x + $y } print &adder(1, 2) . "\n";軽ーくまとめておこう。 subでサブルーチンを定義する サブルーチン名に&を付けると呼び出せる 引数は(…

第3章 リストと配列 その5 3.10 練習問題

ずいぶんPerlっぽさにもなれたのでペースを上げて行きたいところ。 3-1 標準入力から読み込んだ文字列のリストを逆から表示 いろいろおつきあいして書くとこんな感じ。 @lines = <STDIN>; @lines = reverse @lines; print @lines;解答のページには、 print reverse <STDIN></stdin></stdin>…

第3章 リストと配列 その4 3.8 スカラーコンテキストとリストコンテキスト

本日はコンテキストについて。初めてのPerlから引用する所によると、 ここが、この章で最も大切なセクションです。事実、この本の中で最も重要なセクションといえるでしょう。あなたがPerlを使えるか否かは、まさにこのセクションにかかっているといっても過…

第3章 リストと配列 その3 foreach

初めてのPerlシリーズ。配列をひとつひとつ処理するときに素敵な、制御構造foreachについて。foreachを使うときには、制御変数と値のリストを指定する。 @langs = qw{Ruby Python Java C/C++ Perl LISP}; foreach $lang (@langs) { print "$lang\n"; }この制…

第3章 リストと配列 その2 配列の操作

配列に関するいくつかの操作について。popとpushで、末尾のデータを追加したり、取り出したりすることで、配列をスタックとして使えます。 @books = ('AWDwR', 'henna_kaisha', 'K&R', 'LearnigPerl'); print "@books\n"; # AWDwR henna_kaisha K&R LearnigP…

第3章 リストと配列 その1

本日は配列の基本的な部分を学んだ。配列へのアクセスは、 $host_bu[0] = 'tamaki'; $host_bu[1] = 'kyoya'; $host_bu[2] = 'haruhi';と変数にインデックスを付けることで行える。これはリスト代入という形式でも書けて、 ($host_bu[0], $host_bu[1], $host_…

第2章 スカラデータ その1

ほんとは昨日のid:hakobe932:20060418が、スカラデータ その1くらいだったんだけどね。眠いので手短に。本日学んだリスト。 文字列と数値はPerlが良さそうな方にあわせて変換してくれる 比較には数値用と文字列用がある(どっちで比較すべきかわかんないもん…

Perlの勉強はじめます

Pythonそこそこ、Rubyもちょっとは書けるけど、Perlはまったくさっぱり書けません。しかし、世のハッカー的でクールなものの原材料はPerlが多いっぽいので、やはり勉強したい。そこで、学校の図書館からリャマ本こと、『初めてのPerl』を借りてきたので、本…