【perl】正規表現(マッチ)と条件分岐

ここのところ、ブログを下書き保存したまま公開ボタンを押すのを忘れ続けていました(あほですね)。なので、ちょっとまとめてアップです。まだアップしてないのもあるんだけど、それらは題名すらつけてない状態なので、またおいおいアップします。


ここ最近は、perlの基礎とMac OS Xに慣れる、というのを主軸にしています。やっぱり、基礎を知ると、あー、こういうことだったんだー、って感じで知識が体系化されますね。快感です。


Macは、ホント難しい!今までず〜っとWindowsだったから、ついwinと同じようにいじってしまってあらぬことになります。昨日も、2日前まで使えてたfirefoxが使えなくなり、助けを求めてしまいましたよ。WinとMacって、ぜんぜん違って戸惑うばかりです。ま、ここら辺の話はまた明日。

#! /usr/bin/perl

use strict;
use warnings;

print "4桁数字で暗証番号を入力してください\n";

=head
#暗証番号が、0555と入力されたときのみ金庫が開く。
my $line = <STDIN>;
chomp ($line);

#eqではなく==を使うと、数字とみなされるので、一番左の桁に0が使えない。
#==とすると、555とした場合でも金庫が開く。
if ($line eq "0555") {
	print "金庫が開きます\n";
}else{
	print "金庫が爆発します。\n";
}
=cut


my $x = <STDIN>;
chomp ($x);

#数字が4回繰り返されたら金庫が開く
#^ハット(先頭を意味する)がないと、数字4桁以上の暗証番号でも金庫が開いちゃう。
if ($x =~ /^[0-9]{4}\z/){
	print "金庫が開きます\n";
}else{
	print "金庫が爆発します。\n";
}