Perl

配列の最後のインデックス

最後のインデックス = $#配列名 print "Last is $count[$#count]\n";

配列の要素数

注意すべき点としてはいったん変数に格納すると要素数が取得できますが、配列そのものを単に出力を行うと配列の要素数が出力されるわけではなく配列に含まれる要素が続けて出力されます。「@配列名」はあくまで配列全体を表しているのであって、「@配列名」…

配列の範囲演算子

整数の値で1つだけ増加していく連続した数値を持つ配列を作る my @count = (10..15);

qw演算子

qw演算子では対象となる文字列がどこからどこまでなのかを示すために同じ記号を使って区切り文字とします 区切り文字はstartとendが同じならばどの記号でもよい。 qw/ 対象となる文字列 / qw( 対象となる文字列 ) qw{ 対象となる文字列 } qw[ 対象となる文字…

配列

配列の場合は、変数の頭は@ 何個必要かは宣言しなくてよいみたい。 インデックスは0から。 Perlの配列では、その配列が管理する要素数は自動的に拡張されたり縮小されたりします。 my @week; $week[0] = "月曜"; $week[1] = "火曜"; $week[2] = "水曜"; for …

リスト

リスト…複数の値を表すのに使用。not 配列。 my ($var1, $var2, $var3); ($var1, $var2, $var3) = (値1,値2,値3);

繰り返しの書き方-next,last,redo

use strict; use warnings; use utf8; binmode STDIN, ':encoding(cp932)'; binmode STDOUT, ':encoding(cp932)'; binmode STDERR, ':encoding(cp932)'; my $count = 1; while (1){ print "$count\n"; $count++; #while文、until文、for文、foreach文の他に…

繰り返しの書き方-foreach

use strict; use warnings; use utf8; binmode STDIN, ':encoding(cp932)'; binmode STDOUT, ':encoding(cp932)'; binmode STDERR, ':encoding(cp932)'; my @fruit = ("りんご", "メロン", "イチゴ"); foreach my $name (@fruit){ print "$name\n"; } print …

if文の書き方

use strict; use warnings; use utf8; binmode STDIN, ':encoding(cp932)'; binmode STDOUT, ':encoding(cp932)'; binmode STDERR, ':encoding(cp932)'; my $num; $num = 5; #elseif じゃなくて elsif if ($num > 0){ print "正の数です\n"; }elsif ($num < …

論理演算子

演算子 名前 記述例 意味 && 論理積 AND a && b aとbが共に真の場合に真 || 論理和 OR a || b aかbの少なくとも1つが真の場合に真 ! 否定 NOT !a aが真の時に偽、偽の時に真

関係演算子

演算子(数値) 演算子(文字列) 記述例 意味 meaning == eq a == b bがaに等しい String equality (== is numeric equality). != ne a != b bがaに等しくない String inequality (!= is numeric inequality). > gt a > b bよりaが大きい String greater than. …

文字列と数値の自動変換

使用される演算子の種類によって、その演算子に対象となる値を文字列と判別したり数値と判別したりします。 これはすごい。ちょっと慣れないけれど。 my ($var1, $var2, $var3, $var4); #「+」演算子の左辺は文字列の「3」だけど、自動的に数値の「3」と判断…

演算子

演算子 名前 記述例 意味 + 加算 a + b a に b を加える - 減算 a - b a から b を引く * 乗算 a * b a に b をかける / 除算 a / b a を b で割る % 剰余 a % b a を b で割った余り ** 累乗 a ** b a の b 乗 ++ 加算 a++,++a a に 1 を加える -- 減算 a--…

変数2

久しぶりすぎて自分のエントリを読み直した。 変数が宣言されたブロック内でのみ有効とするには変数宣言の前に「my」を記述します。 my $var; #複数宣言 my ($a, $b, %c); 実際に変数を宣言だけ行って値を格納しない状態で変数の値を出力 Use of uninitializ…

perldoc

Perlマニュアルの歩き方 - モダンなPerl入門 - モダンなPerl入門 Perl には、説明書を読むためのツールとして perldoc というコマンドラインツールが標準添付されています。 し、しらなかったー!! これは便利。 さっそく実行してみる perldoc perl 結果 C:…

文字列2

use strict; use warnings; use utf8; binmode STDIN, ':encoding(cp932)'; binmode STDOUT, ':encoding(cp932)'; binmode STDERR, ':encoding(cp932)'; my $i = "こんにちは!"; my $name = "世界\n"; #代入演算 $i.= $name; print $i; #繰り返し my ($str1…

変数

use warnings; use strict; use utf8; binmode STDIN, ':encoding(cp932)'; binmode STDOUT, ':encoding(cp932)'; binmode STDERR, ':encoding(cp932)'; #変数 文字でも数値でも同じのに入れられる #my ってつけないとグローバルになる my $i = "こんにちは…

数値

10進数であればそのまま 8進数の場合は先頭に「0」を付ける 16進数の場合は先頭に「0x」を付ける 2進数の場合は先頭に「0b」を付ける #足し算 print 10 + 4; print "\n"; #引き算 print 10 - 4; print "\n"; #掛け算 print 8 * 7; print "\n"; #割り算 print…

文字列

use warnings; use strict; use utf8; binmode STDIN, ':encoding(cp932)'; binmode STDOUT, ':encoding(cp932)'; binmode STDERR, ':encoding(cp932)'; print "こんにちは!世界!\n"; print 'ザ・ワールド!\n'; C:\Perl\src>perl string.pl こんにちは!…

cp932で保存して実行

use encoding "cp932"; うーん。実行時エラーが出てる。 "\x{00b1}" does not map to cp932 at encoding2.pl line 12. いまは見捨てて先に進もう。

文字コードの扱い

文字コードの扱いは鬼門。以下の内容はUTF-8で保存すること。 #頭につけておいたほうがよい。 use warnings; use strict; #UTF-8でプログラム記述していることを宣言 use utf8; #でも出力はwindows用にcp932を指定。Shift-JISでもいい。 binmode STDIN, ':en…

厳密な構文チェック

コマンドでチェック perl -cw プログラムファイル C:\Perl\src>perl -cw strict.pl Name "main::num" used only once: possible typo at strict.pl line 3. Name "main::nun" used only once: possible typo at strict.pl line 4. strict.pl syntax OK ソー…

Hello World!

エントリに上がってたからやってみたよー。 Perl入門 ~Perlのインストール方法やPerlを使ったプログラミングの方法について解説します~ | PerlPlusActivePerlはwiki入れたときに入れてたみたい。 拡張子を.plにして保存。 print "Hello World!"; 文法確認 …

コメントの書き方

#でOK。あと、podっていうのが便利そう。 =pod POD(Plain Old Documentation)はPerlのプログラム中に(コメントよりも 複雑なことが記述できる)ドキュメントを記述するための形式です。 POD形式で記述されたドキュメントは別途用意されたコマンドを使って ド…