「利用者:Dsk/memo/perl」の版間の差分
提供: dsk's note
細 |
細 |
||
(同じ利用者による、間の4版が非表示) | |||
1行目: | 1行目: | ||
+ | ===正規表現のリファレンス=== | ||
+ | <syntaxhighlight lang="perl"> | ||
+ | #Markdownにマッチするのものを表示 | ||
+ | my $regexp = qr/\.md$/; | ||
+ | foreach my $file (@files) { | ||
+ | if ($file =~ $regexp) { | ||
+ | print $file, "\n"; | ||
+ | } | ||
+ | } | ||
+ | #オプションも付けられる。 | ||
+ | #qr// を使うとオプションも含めて変数に保存できる(gオプションは不可) | ||
+ | </syntaxhighlight> | ||
+ | |||
===変数に初期値を代入=== | ===変数に初期値を代入=== | ||
<syntaxhighlight lang="perl"> | <syntaxhighlight lang="perl"> | ||
30行目: | 43行目: | ||
print $_, "\n"; | print $_, "\n"; | ||
} | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ===配列のリファレンスを配列スライス=== | ||
+ | <syntaxhighlight lang="perl"> | ||
+ | my $w = ['a', 'b', 'c', 'd']; | ||
+ | my @a = @{$w}[1, 2]; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
49行目: | 68行目: | ||
*[http://d.hatena.ne.jp/perlcodesample/20090317/1237125522 コンストラクタの作成] | *[http://d.hatena.ne.jp/perlcodesample/20090317/1237125522 コンストラクタの作成] | ||
*[http://itpro.nikkeibp.co.jp/article/COLUMN/20071011/284280/ Part1 正しいPerl/CGIの書き方] | *[http://itpro.nikkeibp.co.jp/article/COLUMN/20071011/284280/ Part1 正しいPerl/CGIの書き方] | ||
+ | |||
+ | [[Category: perl]] |
2015年5月15日 (金) 16:33時点における最新版
正規表現のリファレンス
#Markdownにマッチするのものを表示 my $regexp = qr/\.md$/; foreach my $file (@files) { if ($file =~ $regexp) { print $file, "\n"; } } #オプションも付けられる。 #qr// を使うとオプションも含めて変数に保存できる(gオプションは不可)
変数に初期値を代入
$a ||= 'test';
Defined-or演算子 //
- Defined-or演算子は、左辺が定義されている場合、左辺値を返し、未定義の場合は右辺値を返す。これを利用して、変数に初期値を代入してみる。
- undefだったら1を代入する。0の場合は0。
$a //= 1; $a = defined $a ? $a : 1;#以前はこう書いていた。
q - シングルクォートの代替表現
エスケープしなくてもよいので便利。
my $a = q/<h1>title</h1>/; q(<h1>title</h1>) q{<h1>title</h1>} q#<h1>title</h1># q[<h1>title</h1>] q!<h1>title</h1>!
配列 デリファレンス
for (@{$test->{hoge}}) { print $_, "\n"; }
配列のリファレンスを配列スライス
my $w = ['a', 'b', 'c', 'd']; my @a = @{$w}[1, 2];
$rec = { NAME => "Jason", AGE => 23, PEERS => [ "Norbert", "Rhys", "Phineas"], }; $rec->{NAME} @{ $rec->{TEST} }
ファイル操作
- Path::Class
- File::Slurp - Simple and Efficient Reading/Writing/Modifying of Complete Files