#Perl
## 変数
- 種類
- `$var`はスカラー
- `@var`は配列
- `%var`はハッシュ
- 宣言子
- `my`
- ブロック内で有効
## 配列
### 初期化
```perl
my @array = ("aa", "bb", "cc")
```
これもOK???
```perl
my $array = []
```
## ハッシュ
### 初期化
```perl
my %hash = ("key1", "name1", "key2", "name2")
# または
my %hash = ("key1" => "name1", "key2" => "name2")
```
指定しなければ空ハッシュ。
```perl
my %empty = ()
```
### 値の取得
`{}`で取り出す。
```perl
$hash{"key1"}
```
> [!attention]
> `%hash{"key1"}`ではないので注意
## モジュール
- `use`で読み込む
## ファイル操作
`open`を使う。
- 第1引数はファイルハンドル名
- 第2引数はモードとファイルパスを空白で区切ったもの
- 第2引数をモード、第3引数をファイルパスにすることも可
```perl
open(INPUT_HANDLER, "<", "input.txt")
open(OUTPUT_HANDLER, ">", "output.txt")
# または
open(INPUT_HANDLER, "< input.txt")
open(OUTPUT_HANDLER, "> output.txt")
```
## 条件式
### 比較演算子
https://perlzemi.com/blog/20161005147566.html
`eq`や`ne`など[[Bash]]と同じ。[[📕Bashの文法#条件判定]]が参考になりそう。
### パターンマッチ
https://perlzemi.com/blog/20080331120697.html
`=~`はパターンマッチ。正規表現が含むかをチェックする。
## 文字列操作
- [[chomp]]
## エラーハンドリング
- `die "message"` で `message` をエラーメッセージとして表示してプログラムを終了