perldoc -f posしたところ、
Returns the offset of where the last "m//g" search left off for the variable in question(以下略)
とあった。
問題の変数について、前回の"m//g"検索をやめた場所のオフセットを返すってことかな。
その検索をやめた場所ってどこかな?
オフセットは0始まりだったよな。以下超適当なコードで検証。
3と7が返ると思いきや、
pos:4
pos:8
4と8が返ってくる。
つまり、前回の"m//g"検索をやめた場所ってこういうことか。ステップごとに書くと、
前略
ということで、2つ目のaのところで検索をやめた。故に4を返すってことかな。
以降同様に、
また来年。
Returns the offset of where the last "m//g" search left off for the variable in question(以下略)
とあった。
問題の変数について、前回の"m//g"検索をやめた場所のオフセットを返すってことかな。
その検索をやめた場所ってどこかな?
オフセットは0始まりだったよな。以下超適当なコードで検証。
my $str = 'abcdabcd';
# 01234567
while ($str =~ m/d/g) {
my $position = pos $str;
print 'pos:' . $position . "\n";
}
3と7が返ると思いきや、
pos:4
pos:8
4と8が返ってくる。
つまり、前回の"m//g"検索をやめた場所ってこういうことか。ステップごとに書くと、
前略
abcdabcd
^
|
マッチした!次。
abcdabcd
^
|
マッチしなかった。
ということで、2つ目のaのところで検索をやめた。故に4を返すってことかな。
以降同様に、
abcdabcd
^
|
マッチしなかった。次。
abcdabcd
^
|
マッチしなかった。次。
abcdabcd
^
|
マッチした!次。
abcdabcd
^
|
マッチしなかった(というか次なかった終わり)。
また来年。