|
|
|
Perl基礎講座(1) 変数の使い方について説明します。 変数というのは箱みたいなものです。 一時的にそこのところに値を入れておいて、計算させたりするために使います。 例えば180 という値を変数に入れます。 それを、1秒間に1つずつマイナスしていって、値が0になったら画面上にメッセージを流す!! なんてすれば、カップラーメンのタイマーにも使えます(笑) 60秒*3分で、180ですよね。 変数はスカラー変数、と言われます。単に「変数」で覚えておけばいいでしょう。 変数はこのように定義します。 $なまえ; 文の終わりは 必ず「;」改行で次の行に移ります。 C言語のように変数名を事前に定義する必要はないので、 使う時、使いたい時に、変数名を作って値を入れればよいです。 $なまえ = "キャラクター"; $なまえ = 数値; $なまえ = 'キャラクター'; 変数の定義は、この3つのように、変数名 = とします。 そうすると右辺のデータが 左辺に代入されます。 数学とは違う点が一つ。 数学では「a = b」としたら、両方ともが同じだということを 指し示すことになるわけですが、左辺に右辺のデータが入るだけです。 途中で、左辺$なまえ のデータが変わったとしても、右辺側のデータには影響がない 右辺のデータが変わったとしても、左辺側のデータには影響がない ということを頭に入れておいてください。 実際には変数名には2byte(漢字)は使えませんので、変数名は0-9,A-Z,a-zで定義することになります。 $name="3333"; $name=3333; これはどちらも 変数名「name」に、値を代入をしています。 値が、数なのか、キャラクタなのかで扱いが変わってきます。 ただし、perlの場合はキャラクタとして入れた数値も、後で計算したりすることもできます。 Perl以外の言語などでは厳密に扱われることが多いです。 なるべく数値は数値として扱いましょう。 (頭の中でどういうデータが流れていくのかを把握しながら作らないと、バグを生み出す原因になったりしますからね) 数値以外のキャラクタ文字は、必ずダブルクォーテーション("")、または シングルクォーテーション(')でくくるのをお忘れなく。 上で書いたように、数値以外のキャラクター文字は、シングルクォーテーション、ダブルクォーテーションの2つでくくる方法があります。 で、その違いがどこにあるのか、を説明したいと思います。まず、変数abcd を定義し、値にsample を入れてみます。 $abcd = "sample"; これで定義ができました。(ここはシングルでもかまいません) さて、では次に、変数名efgh を定義し、値の中に変数abcd を「入れながら」定義 してみましょう。 こんな風に書きます。 #--- 上がダブルクォーテーション 下がシングルクォーテーション ---- $efgh = "this is a $abcd"; $efgh = 'this is a $abcd'; 画面に出力するのはprint文ですので、以下のようにスクリプトを書いて、 コマンドプロンプトから実行させてみましょう。 sample1とsample2の2つを作ります。 片方はシングルクォーテーション、もう片方はダブルクォーテーションで。 sample1.pl #------------------------------------------------ $abcd ="sample"; $efgh ="this is a $abcd"; print $efgh; print "\n"; #------------------------------------------------- ここまで sample2.pl #------------------------------------------------ $abcd ="sample"; $efgh ='this is a $abcd'; print $efgh; print "\n"; #----------------------------------------- ここまで さて、どうなるでしょうか? サンプル2 実行結果 サンプル1は $abcdの値であるsampleが 表示されています。 でも、サンプル2は$abcdと、そのまま出てしまいましたね。 そうです、シングルクォーテーションでくくっている場合、その中で 変数の値が展開(変数展開と言います)されないのです。 重要なポイントです、よく押さえておいてください。 ダブルクォーテーション内は変数展開が起こる。 シングルクォーテーション内は変数展開されない。 では、また次までしばらくお待ちください。 |