将一行C正则表达式代码转换为Perl
我正在尝试将一行旧代码从 C(我不知道)转换为 Perl(我有点知道)。
它有一个我不明白的数据结构,即一个数字后跟 /* 字符 */
if (lSeries != 18 /*S*/ && lSeries != 2 /*C*/ && lSeries != 4 /*E*/ && lSeries != 6 /*G*/) {}
回答
在 C 中,/* ... */结构表示注释。它不会被程序编译或执行。
所以该代码片段的可执行部分是
if (lSeries != 18 && lSeries != 2 && lSeries != 4
&& lSeries != 6) {}
Perl 的字面翻译是
if ($lSeries != 18 && $lSeries != 2 && $lSeries != 4
&& $lSeries != 6) { }
回答
/* 多行注释的 C 风格 */
代码:
if( lSeries != 18 /*S*/
&& lSeries != 2 /*C*/
&& lSeries != 4 /*E*/
&& lSeries != 6 /*G*/
) {}
#perl 风格的单行注释。更多请参考Acme::Comment
珀尔代码:
if( $lSeries != 18 #S
&& $lSeries != 2 #C
&& $lSeries != 4 #E
&& $lSeries != 6 #G
) {}