インターネット&PC120%活用:インターネット活用編

表示、入力、変数の基礎

1 手始めに画面への表示

まずは肩ならしで、画面になにか表示させてみましょう。
画面表示コマンドは、BASICでもおなじみの print を使います。ただし、C言語のように
末尾に ; をつけますので、忘れないで下さい。文字列の表示は、これもBASIC同様に、
文字列を " (ダブルコーテーション)で囲みます。 
Hello と表示するには
print "Hello";
とします。簡単ですね。


2 変数
Perlの一般的な変数は「スカラー変数」と呼ばれます。
スカラー変数は先頭に $ をつけます。
Perlのスカラー変数には、特に変数の型はなく、数値も文字列もいっしょに扱います。Visual Basicで
言うとヴァリアント型のようなものです。


3 文字列の表示
一番最初に、文字列は " で囲むと書きましたが、Perlでは ' (シングルコーテーション)で文字列を
囲むこともできます。ただし、細部では若干機能が違います。簡単なプログラムを実行してみましょう。

例題1
#!D:/jplwin32/jperl

print "あなたのお名前は? \n";   
$name=<stdin>;
chop ($name);
print "HELLO! $name さん\n";
print 'HELLO! $name さん\n';

実行画面です。

D:\jplwin32>jperl test.pl
あなたのお名前は?
かさやん
HELLO! かさやん さん        
HELLO! $name さん\n
D:\jplwin32>

上の実行例では、スカラー変数 $nameに 「かさやん」と入力しました。
" (ダブルコーテーション)の方では、 $name が展開されて 「HELLO! かさやん さん」と表示されましたが
' (シングルコーテーション)の方では、 展開されずそのまま $name で表示されています。

また、\n は改行を意味するエスケープシーケンスですが、
" ではエスケープシーケンスが有効ですが、
' ではエスケープシーケンスとしては認識されず、単に\n という文字として扱われています。

これで、大きな違いがわかったと思いますが、 " (ダブルコーテーション)で囲むと、スカラー変数は
展開され、エスケープシーケンスが有効になるわけです。

変数を展開する時には、$ を変数の始まりとみなし、変数に使えない文字(スペース、記号、カタカナ)の
直前までを変数名と判断します。変数のあとに、さらにアルファベットがつづくような場合は、変数名を
{ } で囲んで変数であることを明示します。
print "Hello! {$name}san";
スカラー変数 $name のあとに、アルファベットで san と続くので、変数部分を{ }で括ってやらないと
$namesan という変数だとみなされてしまいます。


4 主なエスケープシーケンス
ついでに、主なエスケープシーケンスをあげておきます。だいたいC言語と同様です

エスケープシーケンス 意味
\\ \
\$ $
\" "
\% %
\& &
\b バックスペース
\f 改ページ
\n 改行文字(LF)
\r 改行文字(CR)
\t タブ
\x 文字コード(16進数)の文字


5 入力について
キーボードからの入力は <stdin> を使い
$a = <stdin>;
のようにします。

また、 chop という関数が使われていますが、これは文字列の末尾の文字を取り除く関数です。
ここでは、スカラー変数 $nameに代入された文字列から、末尾の改行コードを取り除いています。
末尾が改行コードだったら、取り除くという働きをする、 chompという関数もありますが、おじさんの
Jperlには実装されていないようなので、 chopを使いました。

TopPage


inserted by FC2 system