お知らせ
現在サイトのリニューアル作業中のため、全体的にページの表示が乱れています。
Env | Ver |
---|---|
Perl | 5.34.0 |
キャプチャ変数をifのスコープに封じ込める必要がある
my $text = <<EOF;
```unya
hoge
piyo
fuga
hpf
```
EOF
my @lines = split(/\n/, $text);
foreach my $line (@lines){
if ($line =~ /^(?<indent> *)(?<bquote>```)(?<lang>[a-z]*)$/) {
print "SYMBOL: '$+{indent}', '$+{bquote}', '$+{lang}'\n";
} else {
print "$line\n";
}
}
$+
変数はマッチするまで中身が消えないので、このプログラムは予期した動きにならない
my $text = <<EOF;
```unya
hoge
piyo
fuga
hpf
```
EOF
my @lines = split(/\n/, $text);
foreach my $line (@lines){
$line =~ /^(?<indent> *)(?<bquote>```)(?<lang>[a-z]*)$/;
print "$+{indent}, $+{bquote}, $+{lang}\n";
}
my $text = <<EOF;
```unya
hoge
piyo
fuga
hpf
```
EOF
my @lines = split(/\n/, $text);
foreach my $line (@lines){
$line =~ /^(?<indent> *)(?<bquote>```)(?<lang>[a-z]*)$/;
if (defined $+) {
print "$line: ";
print "$+{indent}, $+{bquote}, $+{lang}\n";
# この変数はundef出来ない
undef $+;
} else {
print "$line\n";
}
}