利用者:Dsk/memo/perl

提供: dsk's note
移動: 案内検索

正規表現のリファレンス

#Markdownにマッチするのものを表示
my $regexp = qr/\.md$/;
foreach my $file (@files) {
  if ($file =~ $regexp) {
    print $file, "\n";
  }
}
#オプションも付けられる。
#qr// を使うとオプションも含めて変数に保存できる(gオプションは不可)

変数に初期値を代入

$a ||= 'test';

Defined-or演算子 //

  • Defined-or演算子は、左辺が定義されている場合、左辺値を返し、未定義の場合は右辺値を返す。これを利用して、変数に初期値を代入してみる。
  1. 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

Link