Perl one-liner if else逻辑

phi*_*ogg 7 perl

我正在评估某些变量是否与预期值匹配.变量由某个程序在内存中设置,其值可以通过自定义程序从shell访问.

我正在将shell命令的输出传递给awk以获取我想要的特定字段,然后我想通过perl运行它以查看它是否与预期值匹配.例如,

ysgrp autostart | awk -F\: '{print $1}' | perl -e 'print {"True"} else {print "False"} if /on/'
Run Code Online (Sandbox Code Playgroud)

但是,我收到了perl关于"} else"附近的编译错误的投诉.如何在perl单行中处理if/then/else逻辑?

fri*_*edo 13

您不能else在后缀条件中使用条件.您可以使用这样的三元条件运算符:

perl -e 'print /on/ ? "True" : "False"'
Run Code Online (Sandbox Code Playgroud)

或者像这样使用显式块:

perl -e 'if ( /on/ ) { print "True" } else { print "False" }'
Run Code Online (Sandbox Code Playgroud)