Perl

パッケージ

Perlでは、オブジェクト指向関連の機能が後付けで追加された。 その中の機能の一つがパッケージであり、C++の名前空間や、Javaのパッケージに相当するものである。package - パッケージの宣言 - Perl入門ゼミパッケージやブロックが変数の所属にどのように影…

reverse

reverseは、渡された配列や文字列を逆順にする。reverse関数 - 配列/リスト - Perl関数のリファレンス実行すると、 $ vi reverse.pl $ perl reverse.pl 1 2 3 4 5 5 4 3 2 1 ABCDE EDCBA $確かに逆になっている。Sample/perl/reverse/reverse/src/reverse at…

splice

spliceは、配列に対して複雑な操作ができる。splice関数 - 配列の要素の複雑な操作 - Perl入門ゼミ簡単に言うと、指定した位置からの指定した個数の要素たちを、指定した別の複数要素たちに置き換えるというか・・・。2番目からの2つ、300と400を、@newの3つ…

pop

popは、配列の末尾から要素を取り出す。pop関数 - 配列/リスト - Perl関数のリファレンス実行すると、 $ vi pop.pl $ perl pop.pl 10 20 30 30 10 20 $最初の3つがpop前の配列。 次が取り出した値30。 最後に残った10と20。 末尾から取り出せた。Sample/perl…

unshift

unshiftは、配列の先頭に要素を追加。unshift関数 - 配列/リスト - Perl関数のリファレンス実行すると、 $ vi unshift.pl $ perl unshift.pl $array[0] = 100 $array[1] = 200 $array[2] = 300 $var = 50 $array[0] = 50 $array[1] = 100 $array[2] = 200 $a…

tr///

文字を置換する場合は、"tr///"を使う。tr - Perlリファレンス"a"を"A"に、"C"を"c"に。 $ vi tr.pl $ perl tr.pl ABcDE AABcc AABcc ABAcc AAAcc AAbcc AAABc AAbcc $それぞれの文字が置換された。Sample/perl/tr/tr/src/tr at master · bg1bgst333/Sample ·…

s///

パターンにマッチした文字列を、別の文字列に置換する場合は、"s//"を使う。Perl講座: 変数と文字列として、"AbC"または"ABC"があれば、"XYZ"に置換する。 $ vi s.pl $ perl s.pl XYZDE aaBCC AaBCC ABACC AAACC aXYZC aAaBC AAbcC $ 正確に一致するところだ…

m//

パターンマッチは以前もやっているが、実は、"//"というのは"m//"の省略形らしい。パターンマッチ演算子(m//) - 正規表現の基本 - Perlにおける正規表現ここだとパターンマッチ演算子と言っているけど、"m//"は組み込み関数の1つと書いてあるところもあって…

rindex

rindexは、指定された文字列の中で、指定された部分文字列があった場合に、最後に見つかった場所の位置(前から数えて)を返す。rindex関数 - 文字列 - Perl関数のリファレンス3番目の検索終了位置がわかりにくいけど、として実行すると、 $ vi rindex.pl $ pe…

index

indexは、指定された文字列の中で、指定された部分文字列がどこにあるか、位置を返す。Perlの組み込み関数 index の翻訳 - perldoc.jp3番目に渡す探索位置で結果が変わってくる。指定しない場合は最初から、指定する場合はその位置からになるので、 $ vi ind…

substr

substrは、指定された文字列の中から、指定された位置や長さの部分文字列を抜き出す。Perlの組み込み関数 substr の翻訳 - perldoc.jp3つのパターンでやってみる。これで、 $ vi substr.pl $ perl substr.pl ABCDE CD CDE $このように抜き出せた。Sample/per…

length

lengthは、指定された文字列の長さを返す。Perlの組み込み関数 length の翻訳 - perldoc.jpこれで、 $ vi length.pl $ perl length.pl 5 $"ABCDE"の長さは5。Sample/perl/length/length/src/length at master · bg1bgst333/Sample · GitHub

chop

chopは、指定された文字列の最後の文字を取り除く。Perlの組み込み関数 chop の翻訳 - perldoc.jpchompは、末尾が改行なら取り除き、そうでないなら何もしないのに対して、 chopは、条件なく最後の文字を取り除く。これで、 $ vi chop.pl $ perl chop.pl ABC…

x演算子

x演算子を使うと、文字列やリストなどの処理を繰り返すことができる。繰り返し演算子「x」 - Perl入門ゼミ実行すると、 $ vi x_operator.pl $ perl x_operator.pl ABCABCABC 10 20 10 20 $確かに繰り返している。Sample/perl/x_operator/x_operator/src/x_op…

冪乗演算子

**で冪乗を計算できる。べき乗演算子 - ** - Perl入門ゼミ実行すると、 $ vi exponentiation_operator.pl $ perl exponentiation_operator.pl $y1 = 8 $y2 = 625 $y3 = 49 $冪乗が計算できてる。Sample/perl/exponentiation_operator/exponentiation_operato…

型グロブ

Perlは、変数名などのシンボルが同じでも、頭の記号で、変数だったり、配列だったり、ハッシュだったりする。 型グロブは、このシンボルテーブルのエントリーを表現する。型グロブを理解する - Perl入門ゼミ *をつけて型グロブを取得できる。 型グロブに型グ…

シンボリックリファレンス

シンボリックリファレンスは、非常に不思議な機能である。The Perl5 Manual - シンボリックリファレンス シンボリックリファレンス単なる文字列の代入が、その文字列の名の付いた変数へのリファレンスの代入にもなるという2つの意味を持つ。 どちらを出力し…

構造体

ハッシュのリファレンスをネストしていって、構造体を作ることができる。Perl - 無名配列と無名ハッシュ (itsのブログ)foreachで構造体のメンバを比較的簡単に参照できる。 $ vi hash.pl $ perl hash.pl 1 Taro 20 Tokyo 2 Jiro 18 Osaka 3 Saburo 16 Nagoya…

多次元配列

配列のリファレンスをネストしていくと、多次元配列を作ることができる。リファレンスと多次元データ構造 - Perl入門ゼミ添字と添字の間のアロー演算子は省略できるので、より多次元配列っぽさがある。 $ vi array.pl $ perl array.pl 1 5 9 1 5 9 $指定した…

アロー演算子

C言語のポインタと同じく、配列などのリファレンスから要素の値を参照する場合はアロー演算子が使える。配列のリファレンス - Perl入門ゼミ添字の[]の前や、{}の前に->を置くことができる。 $ vi arrow_operator.pl $ perl arrow_operator.pl 3 3 value2 val…

push

pushで配列の末尾に要素を追加する。Perlの組み込み関数 push の翻訳 - perldoc.jppushで40を追加。 $ vi push.pl $ perl push.pl 10 20 30 10 20 30 40 $確かに40が末尾に追加された。Sample/perl/push/push/src/push at master · bg1bgst333/Sample · GitH…

ref

refでリファレンスの情報を返す。Perlの組み込み関数 ref の翻訳 - perldoc.jpリファレンスなら、"SCALAR"とか"ARRAY"とか何のリファレンスかを文字列で返し、リファレンスでない場合、偽として空文字列を返す。変数といろんなリファレンスをチェックしてみ…

無名サブルーチン

無名サブルーチンというものもある。サブルーチンのリファレンス - Perl入門ゼミ名前のないサブルーチンをその場で定義して、リファレンスとして変数に持っておける。$$でデリファレンスして10と20を渡すと、 $ vi sub.pl $ perl sub.pl 30 $足されて30が返…

無名ハッシュ

無名配列と同様に、無名ハッシュも作ることが出来る。無名ハッシュ生成子 - ハッシュのリファレンスを作成 - Perl入門ゼミハッシュの場合は、{}でキーと値を定義すると、それが無名ハッシュのリファレンスになる。%$でハッシュ全体、$$~{}で要素の値。 $ vi…

無名配列

リファレンスの応用として、無名配列を使うことが出来る。無名配列生成子 [] - 配列のリファレンスを簡単に作成 - Perl入門ゼミ要素を並べて[]で囲むと無名配列のリファレンスになるので、それをデリファレンスすれば要素の参照や操作ができる。@$で配列全体…

リファレンスのリファレンス

ポインタへのポインタと同様に、リファレンスのリファレンスというものも使える。perlref - Perlのリファレンスとネストしたデータ構造 - perldoc.jp\\というように2回付ける場合は、$$$というように3回付けてデリファレンスする。 $ vi reference.pl $ perl…

リファレンス

リファレンスは、C言語のポインタのようなものであり、変数、配列、ハッシュ、サブルーチン、などが格納されているアドレスを示す。perlref - Perlのリファレンスとネストしたデータ構造 - perldoc.jp Perl/リファレンス - Wikibooks変数などを代入する時、\…

ハッシュのコピー

ハッシュ全体を表す記号は%なので、%で始まるハッシュオブジェクトを代入するだけでハッシュをコピーできる。ハッシュをコピーする | まくまくPerlノートハッシュをコピーして、コピー元もコピー先も中身をいじる。 $ vi hash.pl $ perl hash.pl value1 valu…

ハッシュ

ハッシュ(連想配列ともいう)は、添字に文字列を指定することができ、文字列をキーとして値を取得できるデータ構造。Perlのハッシュを理解しよう - Perl入門ゼミPerlでもハッシュを使うことができる。1つ目は、'key1'から'key3'までをキーとして、'value1'か…

配列スライス

配列スライスという、複数の添字を指定できる方法を使って、配列の複数の要素から値を取り出したり、逆に複数の要素に値を代入することができる。配列スライス - Perl入門ゼミ@ary1の0番目と2から4番目までを@ary2に代入し、それぞれの値を出力。 その後に、…