本文へスキップ
BecomeCoder

Perlコース · 第2章 文字列と演算子 · レッスン6

比較演算子 ― 数値は「==」文字列は「eq」

ブラウザで完結

導入

Perl の比較には、数値用文字列の2種類があります。ここを混同すると思わぬ結果になるので、しっかり区別しましょう。

説明

数値の比較は == != < > <= >=、文字列の比較は eq ne lt gt le ge を使います。たとえば "10" == "10.0" は数値として等しいので真ですが、"10" eq "10.0" は文字列として違うので偽になります。

意味数値文字列
等しい==eq
等しくない!=ne
より小さい<lt
より大きい>gt
use strict;
use warnings;

my $a = 10;
my $b = 9;

print "aは大きい\n" if $a > $b;          # 数値の比較

my $x = "apple";
my $y = "banana";
print "xが先\n" if $x lt $y;             # 文字列(辞書順)の比較

真のとき Perl は 1 を、偽のとき空文字 "" を返します。それを print で確かめてみましょう。

use strict;
use warnings;

print 3 == 3, "\n";     # 1(真)
print 3 == 4, "\n";     # (空=偽で、何も出ない)
print "abc" eq "abc", "\n";   # 1

やってみよう

==eq に変えたり、比べる値を変えたりして、数値比較と文字列比較の違いを確かめましょう。

演習

スカラ $word"perl" を入れ、$word eq "perl" が真なら match! と表示してください(後置の if を使ってかまいません)。

ヒント1を見る

print "match!\n" if $word eq "perl";

実際に動かしてみよう

下のエディタにPerlを書いて「実行」を押すと、学習用シミュレータが print / say の出力を表示します(本物のperlではなく、教材の範囲を再現した軽量なエンジンです)。スカラ/配列/ハッシュ・制御構文・サブルーチン・正規表現(=~ / s///)なども動きます。本文の例を書き換えて動かしてみましょう(ファイル入出力・リファレンス・CPANモジュールなど一部の機能は対象外です)。

Perl — ブラウザ内で実行(学習用シミュレータ)

Perlの教材サブセットを動かす学習用シミュレータを読み込みます(本物のperlではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。