【Perl 】初心者コーナーPart5

このエントリーをはてなブックマークに追加
615名無しさん@お腹いっぱい。
大文字でHOGEと入力すると"Hello, HOGE"と返り、小文字、もしくは別の単語を
入力すると"Who are you?"、数字を入力すると"Type the letters"となるように
したいのですが、どうしてもうまく行きません。

elsif ( $input != /\w/)だとうまく行きます。しかし
elsif ( $input == /\W/)やelsif ( $input == /\d/)
だと全く意図しない結果が出てしまいます。

具体的には
elsif ( $input == /\W/)やelsif ( $input == /\d/)
数字を入力すると"Who are you?"
HOGE以外の文字だと"Type the letters"

なぜこうなってしまうのか教えてください。また、elsif ( $input == //)の
形で、//のところに/dを入れて意図した結果を得るのはどうすれば良いのでし
ょうか?

#!/usr/bin/perl -w

$test = "HOGE";

print "What is your name?: ";
chomp ( $input = <STDIN> );

if ( "$input" eq "$test" ) {

print "Hello,$input\n";

} elsif ( $input == /\d/ ) {

print "type the letter\n";


} else {

print "Who are you?\n";

}


__END__