在awk中,
停止处理当前的输入记录。读取下一个输入记录并从AWK程序中的第一个模式开始重新处理。当到达输入数据的末尾时,执行任何END规则。
假设我的perl脚本是一系列的转换规则,是否有类似的东西可以在perl中模拟它,比如如果我编写以下代码:
ABC音符,如
next
命令将会做以下操作:停止处理当前的输入记录。读取下一个输入记录并从AWK程序中的第一个模式开始重新处理。当到达输入数据的末尾时,执行任何END规则。
假设我的perl脚本是一系列的转换规则,是否有类似的东西可以在perl中模拟它,比如如果我编写以下代码:
s/a/A/g;
s/b/B/g; next();
s/c/C/g;
next?()
会检查给定的替换是否成功,然后停止处理剩余的转换规则,并从转换规则的第一个模式重新开始。
示例输入:
R: waltz
M: 3/4
L: 1/4
K: C
|: E2"C"G | d3"G7" | c2"C"G | F3"F" | E2"C"E | EFG | A3"Dm" | G3"G7" |
| E2"C"G | d3"G7" | c2"C"G | F3"F" | E2"C"G | G"G7"AB | c3"C"- | c3 ||
||d"G7" z/G/ G | BAG | E2"C"G | c3 | A2"F"c | d2"D"c | B3"G" | G3 |
| E2"C"G | d3"G7" | c2"C"G | F3"F" | E2"C"G | G"G7"AB c3"C" | c3 :|
ABC音符,如
E2
,G
,d3
等,是在一个while /re/gi
循环中最后处理/替换的,而吉他和弦"C" "Dm" "G7"
等则是先替换,然后跳过ABC音符的替换。
我尝试使用next if s/".*?"/^$&/g;
来替换吉他和弦部分,但是,所有的ABC音符替换都被跳过了,后面的while循环无法执行到。
next if s/foo/bar/g
- 一个确切的输入/输出示例会有助于澄清。 - undefined