職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

perlの演算子について

2017年12月29日 | perl
perlの演算子について

【環境条件】
Eclipse 4.4(ルナ)
XAMPP 1.8.3 
Perlは既にXAMPPにインストール済み

【演算子】
演算子とは→主に四則演算などを行う算術演算子
サンプルプログラム「enzanshi.pl」
use strict;
use warnings;

my $var;

$var = 8 + 3;
print "8 + 3 = $var\n";

$var = 4 * 3;
print "4 * 3 = $var\n";

$var = 4 ** 3;
print "4 ** 3 = $var\n";

$var = 8 / 4;
print "8 / 4 = $var\n";

$var = 7 % 3;
print "7 % 3 = $var\n";

結果
8 + 3 = 11
4 * 3 = 12
4 ** 3 = 64
8 / 4 = 2
7 % 3 = 1

【変数に対する演算】
サンプルプログラム「enzanshi2.pl」
use strict;
use warnings;

my $var;

$var = 8;
print "$var\n";

$var = $var + 7;
print "$var\n";

結果
8
15

【インクリメント及びデクリメント演算子】
サンプルプログラム「enzanshi3.pl」
use strict;
use warnings;

my $var;

$var = 3;
print "$var\n";

$var++;
print "$var\n";

$var--;
print "$var\n";

結果
3
4
3


【前置きと後置きの違い】
前置き: ++変数
$var1 = 10;
$var1 = $var1 + 1;
$var2 = $var1;

後置き: 変数++
$var1 = 10;
$var2 = $var1;
$var1 = $var1 + 1;

サンプルプログラム「enzanshi4.pl」
use strict;
use warnings;

my ($var1, $var2);

$var1 = 9;
$var2 = $var1++;


print "$var1\n";
print "$var2\n";

$var1 = 9;
$var2 = ++$var1;

print "$var1\n";
print "$var2\n";

結果
10
9
10
10

【その他の代入演算子】
代入演算子には「=」以外に他の算術演算子と組み合わせた演算子が用意されている
a += b、a -= b、a *= bなど
サンプルプログラム「enzanshi5.pl」
use strict;
use warnings;

my $var;

$var = 9;
$var += 5;

print "$var\n";

$var /= 2;
print "$var\n";

結果
14
7

【ビット演算子】
数値に対してビット単位で演算を行うための演算子
サンプルプログラム「enzanshi6.pl」
use strict;
use warnings;

my ($src, $dst);

$src = 11;
$dst = $src & 14;
print "$src \& 14 = $dst\n";

$src = 10;
$dst = $src | 12;
print "$src | 12 = $dst\n";

$src = 10;
$dst = $src ^ 12;
print "$src ^ 12 = $dst\n";

$src = 10;
$dst = ~$src;
print "~$src = $dst\n";
結果
11 & 14 = 10
10 | 12 = 14
10 ^ 12 = 6
~10 = 18446744073709551605

【シフト演算子】
ビット演算子の一つで数値の各ビットを左又は右へシフトさせるための演算子です。
サンプルプログラム「enzanshi7.pl」
use strict;
use warnings;

my ($src, $dst);

$src = 11;
$dst = $src << 1;
print "$src << 1 = $dst\n";

$src = 11;
$dst = $src >> 1;
print "$src >> 1 = $dst\n";
結果
11 << 1 = 22
11 >> 1 = 5

【文字列演算子】
文字列に対する操作を行う演算子として文字列の連結と文字列の繰り返しを行う演算子が用意されています
サンプルプログラム「enzanshi8.pl」
use strict;
use warnings;

my ($str1, $str2, $str3);

$str1 = "こんにちは";
$str2 = $str1."伊藤さん";
$str3 = $str1 x 3;
結果
こんにちは
こんにちは伊藤さん
こんにちはこんにちはこんにちは
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

変数について

2017年12月26日 | perl
変数について


【環境条件】
Eclipse 4.4(ルナ)
XAMPP 1.8.3 
Perlは既にXAMPPにインストール済み

[変数]
・変数とは
値を保管する場所

・変数の宣言
プレフィックス($,@,%) + 変数名→スカラー、配列、ハッシュ→$var,@var,%var

・構文
my $変数名 = 初期値;←初期値が無いと、エラーに成る。myは範囲を示す
print $変数名;
で、初期値を表示する 

・変数の格納
変数には数値や文字列の値や他の変数も格納

例文「sample.pl」のコード
use strict;
use warnings;

my ($var1, $var2);
$var1 = "Hello¥n";
$var2 = $var1;

print $var1;
print $var2;

表示
Hello
Hello

・文字列中の変数展開
例文「sample2.pl」のコード
use strict;
use warnings;

my $name = "加藤";
print "こんにちは $name さん\n";
print "こんにちは ".$name." さん\n";
print 'こんにちは $name さん'."\n";←展開しない
print 'こんにちは '.$name.' さん'."\n";

表示
こんにちは 加藤 さん
こんにちは 加藤 さん
こんにちは $name さん
こんにちは 加藤 さん

・変数展開上の注意
変数の後に続く、英数文字は間を空けるか?変数を{}で囲む
例文「sample3.pl」のコード
use strict;
use warnings;
my $name = "加藤";
print "Hello,$name san¥n";
print "Hello,${name}san¥n";

表示
Hello,加藤 san
Hello,加藤san
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

文字コード設定

2017年12月26日 | perl
文字コード設定



【環境条件】
Eclipse 4.4(ルナ)
XAMPP 1.8.3 
Perlは既にXAMPPにインストール済み

【日本語表示するには】
・プログラムを記述する場合に文字コードとしてUTF-8を使用する場合
1)コマンドプロンプトから場合
[サンプルプログラム]
use strict;
use warnings;
use utf8;
binmode STDIN, ':encoding(cp932)';
binmode STDOUT, ':encoding(cp932)';
binmode STDERR, ':encoding(cp932)';

print "こんにちは\n";
print "図表\n";

表示
こんにちは
図表


2)Eclipse 4.4の場合
[サンプルプログラム]
use strict;
use warnings;

print "こんにちは\n";
print "図表\n";
にしないと、文字化けになる


表示
こんにちは
図表
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

コメントの記述について

2017年12月26日 | perl
コメントの記述について


【環境条件】
Eclipse 4.4(ルナ)
XAMPP 1.8.3 
Perlは既にXAMPPにインストール済み

【コメントの記述】
1)Perlでコメントを記述するには「#」の後に記述
#コメント

サンプルプログラム
print "Orange¥n"; # Orange←コメント
表示
Orange

2)複数行に渡るコメントの記述
=pod
コメント
コメント
=cut

サンプルプログラム
=pod
画面出力サンプル
2008/01/22
=cut
print "Orange¥n";
print "Melon¥n";
print "Lemon¥n";
表示
Orange
Melon
Lemon
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

厳密な構文チェック

2017年12月23日 | perl
厳密な構文チェック


【環境条件】
Eclipse 4.4(ルナ)
XAMPP 1.8.3 
Perlは既にXAMPPにインストール済み

参照サイト→厳密な構文チェック

【基本プログラムを書く】
「test4-1.pl」をコーチングして実行
$num = 10;
print $nun;



【警告表示】
「test4-1.pl」にuse warnings文を追加

警告が表示される

【チェック】
「test4-1.pl」にuse strict文を追加

エラーが表示されます。グローバル変数をパッケージ名無しで利用しようとする時に表示されるエラーです。変数の前に「my」を付けることによりローカル変数とすることでエラーは表示されなくなります。

【完成】
今度はエラーも警告もなくプログラムが実行されました

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする