「Perl 文法」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「==Perl== [Ruby] ====コメント==== *先頭に#をつける #comment ====変数==== $age = 35; # $ではじめるとスカラ変数 pri…」) |
|||
1行目: | 1行目: | ||
==Perl== | ==Perl== | ||
− | [Ruby] | + | [[Ruby]] |
====コメント==== | ====コメント==== | ||
*先頭に#をつける | *先頭に#をつける | ||
82行目: | 82行目: | ||
%alpha = ( # 別の宣言方法 | %alpha = ( # 別の宣言方法 | ||
− | "a" = | + | "a" => "A", |
− | "b" = | + | "b" => "B", |
− | "c" = | + | "c" => "C" |
); | ); | ||
print "$alpha{'b'}\n"; | print "$alpha{'b'}\n"; | ||
128行目: | 128行目: | ||
=====繰り返し===== | =====繰り返し===== | ||
'''for''' | '''for''' | ||
− | for ($i=0; $i | + | for ($i=0; $i<5; $i++) { |
print "$i\n"; | print "$i\n"; | ||
} | } | ||
136行目: | 136行目: | ||
while (true) { | while (true) { | ||
print "$check\n"; | print "$check\n"; | ||
− | if (++$check | + | if (++$check > 4) { |
last; # break ぢゃない | last; # break ぢゃない | ||
} | } | ||
143行目: | 143行目: | ||
====ファイル操作==== | ====ファイル操作==== | ||
=====読込===== | =====読込===== | ||
− | open IN, " | + | open IN, "<c:\\test.txt"; |
− | while ($line = | + | while ($line = <IN>) { |
print $line; | print $line; | ||
} | } | ||
150行目: | 150行目: | ||
=====書出し===== | =====書出し===== | ||
− | open OUT, " | + | open OUT, ">c:\out.txt"; |
print OUT "Hello!"; | print OUT "Hello!"; | ||
close OUT; | close OUT; |
2020年2月15日 (土) 08:05時点における版
目次
Perl
コメント
- 先頭に#をつける
- #comment
変数
- $age = 35; # $ではじめるとスカラ変数
- print "my age is $age \n"; # ダブルクォート文字列
- print 'my age is $age ' , "\n"; # シングルクォート文字列 変数展開されない
宣言 | 変数 |
---|---|
$ | スカラ |
@ | 配列 |
% | ハッシュ |
数値演算
算術演算
- $n1 = 2;
- $n2 = 10;
- print $n1 + $n2 , "\n"; # 加算
- print $n1 ** $n2 , "\n"; # べき乗
文字列演算
- $n1 = 2;
- $n2 = 10;
- print $n1 , $n2 , "\n"; # 連結(,)
- print $n1 x $n2 , "\n"; # 繰り返し(x)
論理演算
- $b1 = true;
- $b2 = false;
- print $b1 && $b2 , "\n"; # 論理積( and )
- print $b1 || $b2 , "\n"; # 論理和( or )
- # print !$b1 , "\n"; # 否定 ( not )
配列
リスト配列
- @week = ("sum", "mon", "tue", "wed", "thu", "fri", "sat"); # 宣言
- print "$week[0] $week[1] $week[2] $week[3]\n"; # アクセス
- $week_cnt = @week;
- print "$week_cnt\n"; # 配列の個数
操作 | 内容 |
---|---|
push | 配列の末尾へ要素を追加 |
pop | 配列の末尾の要素を削除 |
unshift | 配列の先頭へ要素を追加 |
shift | 配列の先頭の要素を削除 |
reverse | 配列の順序を逆順 |
sort | 配列の順序をソート |
マップ配列
- %eng_num = ("1", "one", "2", "two", "3", "tree");
- print "$eng_num{'1'}\n"; # 取得
- %alpha = ( # 別の宣言方法
- "a" => "A",
- "b" => "B",
- "c" => "C"
- );
- print "$alpha{'b'}\n";
- $lang{"1"} = "C"; # さらに別の宣言
- $lang{"2"} = "C++";
- $lang{"3"} = "Java";
- print "$lang{'3'}\n";
操作 | 内容 |
---|---|
keys | すべてのキーを取り出す |
values | すべての値を取り出す |
each | 1組のキーと値を取り出す |
delete | 特定の要素を取り除く |
eg.
- @alpha_keys = keys(%alpha);
制御
選択
- $cnd = 1;
- if ($cnd == 1) {
- print "1";
- } elsif ($cnd == 2) { # elseif ぢゃない
- print "2";
- } else {
- print "else";
- }
繰り返し
for
- for ($i=0; $i<5; $i++) {
- print "$i\n";
- }
while
- $check = 0;
- while (true) {
- print "$check\n";
- if (++$check > 4) {
- last; # break ぢゃない
- }
- }
ファイル操作
読込
- open IN, "<c:\\test.txt";
- while ($line = <IN>) {
- print $line;
- }
- close IN;
書出し
- open OUT, ">c:\out.txt";
- print OUT "Hello!";
- close OUT;
サブルーチン
- print add(5, 6);
- sub add {
- ($n1, $n2) = @_; # パラメータの受取
- return ($n1 + $n2); # 戻値
- }
ローカル変数、My変数のスコープ
種類 | スコープ |
---|---|
local | 変数を宣言したサブルーチンから呼び出したサブルーチンでも参照できる。 |
my | いわゆる自動変数。宣言したサブルーチンからのみ参照できる。 |
正規表現
- $s = "30/Jan/2007:02:39:34 +0900";
- # 一致 =~
- if ($s =~ /([0-9]{4}:[0-9]{2}:[0-9]{2})/) {
- print "$1\n";
- }
- # 不一致 !~
- if ($s !~ /abc/) {
- print "no match\n";
- }
テンプレート:Include html banner html, "!RegExp"
書式
- printf("%05d $line", $lin_num);
型指定
記号 | 内容 |
---|---|
s | 文字列 |
d | 整数 |
f | 浮動小数点 |
フラグ
フラグ | 内容 |
---|---|
左詰め | |
0 | 左側を0埋め |
© 2006 矢木浩人