だんぺんぶこみっく

2007-03-3020070330

[]いっき 06:49 いっき - だんぺんぶこみっく を含むブックマーク はてなブックマーク - いっき - だんぺんぶこみっく

6:30~7:50

 起床。メールチェック・web

 はてブ少し

7:50~9:00

 1階に下りる。母,やや熱があるとのこと。2週間くらい前の風邪がぶり返したらしい(心配)

 朝食。その後,web

9:00~9:30

 絵(同人)

9:30~10:40

 仕事。母,熱下がってきたと。母外出(銀行)

10:40~11:50

 TVなど。母帰宅。マック(昼)買ってきてた……

 昼(マック)

11:50~12:30

 支度して外出。本日振り込まれる(はず)の仕事の代金を下ろしに駅(大野)へ。

 この代金を保険料(振り込み期限が4/2まで)にあてることにしている。

 駅前銀行ATMで残高チェック……しかし,振り込まれていない。

12:30~13:00

 いちど帰って出直そうかと思ったが,面倒なので駅前で時間つぶす(時間つぶすの苦手なのだけど)

 駅前某ゲーセンでUFOキャッチャーをやってみる(昔,はまってて結構取れてた)

 しかし,全然とれない(丸いぬいぐるみは難しい)。600円浪費。

13:00~13:50

 郵便局とかによって自転車を止め,別のゲーセンに(この別のゲーセンについてはhttp://fragments.g.hatena.ne.jp/TakahashiMasaki/20070331/1175328141参照)

 その後,大野のスタバに行ってみる。

13:50~14:00

 再び銀行で残高確認。振り込まれていない。(…

 しかたなく帰宅することに。途中で行きつけのスーパーで飲み物とか

14:00~16:00

 帰宅。webなど

 あとperl勉強

16:00~19:00

 引き続きwebなど

19:00~21:00

 ベッドで本(「はじめに読みたいAjax」たにぐちまこと著)。そのうち寝てた

[][]いま(嫌々)Perlを勉強中なのですが 17:14 いま(嫌々)Perlを勉強中なのですが - だんぺんぶこみっく を含むブックマーク はてなブックマーク - いま(嫌々)Perlを勉強中なのですが - だんぺんぶこみっく

 ……どうもこの言語の文法とかって自分のいままでの言語遍歴(C->C++(VisualC++MFCも少し)->Java)の各言語の性質と勝手が違うせいか,難しい。

 (ちなみに,仕事のためではなく,今度受けるテクニカルエンジニア(情報セキュリティ)試験のため。)

 教材は昨日購入した「新版 Perl言語プログラミングレッスン入門編」(結城 浩氏著,ソフトバンククリエイティブ)を使用している。この本自体はさすが結城氏のご著書だけあって平易でいいんだけど,言語の文法がどうも。以下,気になる点やら不満やらを,メモとして箇条書き。

 (なお,Javaを勉強したときも結城氏の「Java言語プログラミングレッスン(旧版)」を最初に使っていた。前掲書は現在3章まで読了)

(1)なんで変数名の前に$をつけにゃならんのか

 これはPHP(以前,少し勉強した)にもいえるのだけど,なんで変数名の前に$をつけないといかんのか。押しにくいんですよ。$って(自分は普通の人より手が小さく,指が短いため,$をタイプするために左手の小指で左側shiftを押さえながら,左手の人差し指で「4」のキーを押すのが結構つらかったりする。また,左手でshift+右手で「4」は,普段キーボードの右側に位置している右手を移動する位置が大きいので,これもちょっと時間がかかる)。

 あと,配列の前に@をつけないといけないとかいうらしいのですが,これも…(まだ前掲書の配列の章までいってないが)

(2)なんでelsifなのか

 条件分岐は比較的C等と近い記述で書けるようだけど,if {~} else if {~} …じゃなくて if {~} elsif {~} なのが……(Cなどの記述と違うのでややこしい)。最初,前掲書のサンプルコード見たとき「誤植か」と思ったが,"elsif"が正しいって書いてあって……

(3)演算子

 and, or, not, eq, ne, lt…とかの比較演算子が(ry

(4)文字列連結

 これもPHPにもいえるのだけど,文字列連結の演算子が"+"ではなく"."というのが…(Cなどで,"+"は文字列連結,"."は構造体等のメンバ参照か小数点というふうに認識しきっているせいで困る)

 まえ,PHPでつい,Javaなどのノリで

 $dt = $test + " is a " + $xxx + " .\n"; 

とかいうコードを書いてしまい,なぜ連結できないのかえらい長い間悩んだことがある……

よいと思った点

 よいと思った点も。

 (1)if文の記法 … if文の中身の文が一つだけでも必ず{}で囲うことが必要な点(Cなどでは省略可能,前掲書47ページ)。これはif文などの影響範囲を明示するためのわかりやすい規則だと思う(自分も,Cなどでもかならず書くようにしている)。

 (2)標準入出力が簡単

 1行入力が my $a = <STDIN>; でいいってやつ(これがJavaだと,1行入力するだけで(略))

自分でもプログラムを書いた

 前掲書のサンプルは,(まだ最初の方の章だから)読んだだけで意味がわかるのが多いので,自分でプログラムを書いて動かしてみた(以下)。

use strict;
use warnings;

#入力
my $mess = <STDIN>;

if( index( $mess, "ウホッ" ) == 0 ) {
	print "やらないか\n";
}
if( index( $mess, "アッー!" ) != -1 ) {
	print "しゃぶれよ\n";
}
use strict;
use warnings;

#入力
my $mess = <STDIN>;

if( index( $mess, "ウホッ" ) != -1 ) {
	print "やらないか\n";
}
elsif( index( $mess, "好きです" ) != -1  ) {	#elseifじゃないんかい
	print "うれしいこと言ってくれるじゃないの\n";
}
else {
	print "お前オレのケツの中で(ry\n";
}

 (……って,最初に書いたプログラムがこんなのか)

[]PerlとJavaでそれぞれエコープログラムを書いてみた 17:59 PerlとJavaでそれぞれエコープログラムを書いてみた - だんぺんぶこみっく を含むブックマーク はてなブックマーク - PerlとJavaでそれぞれエコープログラムを書いてみた - だんぺんぶこみっく

 (標準入力から1行入れて,そのまま表示するやつです)

Perl

use strict;
use warnings;
my $x = <STDIN>;
print $x;

Java

import java.io.*;
class Inout {
	public static void main( String[] args ) {
		BufferedReader br = new BufferedReader(
			new InputStreamReader( System.in )
		);
		try {
			System.out.println( br.readLine() );
		}
		catch( Exception e ) {
		}
	}
}

 ……………………………………(-_- ;)

トラックバック - http://fragments.g.hatena.ne.jp/TakahashiMasaki/20070330