2008-03-05から1日間の記事一覧
パターンが1つしか無い場合 while ($line = <>) { if ($line =~ /$pattern/o) { # 処理をここに書く } } 複数のパターンがある場合 @pats = map { qr/$_/ } @strings; while ($line = <>) { for $pat (@pats) { if ($line =~ /$pat/) { # 処理をここに書く }…
次のサブルーチンを使用する。 sub glob2pat { my $globstr = shift; my %patmap = ( '*' => '.*', '?' => '.', '[' => '[', ']' => ']', ); $globstr =~ s{(.)} { $patmap{$1} || "\Q$1" }ge; return '^' . $globstr . '$';
開始パターンにマッチする箇所から終了パターンにマッチする箇所までの全ての行を抽出したい。または、n行目からm行目までの全ての行を抽出したい。 ..演算子、もしくは、...演算子を使う。 ..演算子は、開始パターン(左オペランド)にマッチする部分文字列が…
各種の文字列で区切られたレコードを読み込みたい。 ファイル全体を読み込んだ後、splitを使用する。 undef $/; @chunks = split(/pattern/, <FILEHANDLE>);</filehandle>