查明 Perl 值是否已初始化的命令
Command to find out if a Perl value is initialized
我现在的问题是基于我在使用 CSV 文档时遇到的问题,但它也更笼统。
我希望使用 Java/Groovy/Gosu 中的空问号之类的东西来确定数组索引是否已初始化。
我有类似的东西:
for ( my i = 0; i < @engVals or i < @frenchVals; i++ ) {
$csv->print($file, [ $engVals[i] ?: "", , $frenchVals[i] ?: "" ] );
# Where Elvis ops ensure that the array element at i is initialized, and if not stores blank in the CSV
}
defined $engVals[i]
见http://perldoc.perl.org/functions/defined.html
或者你可以
$engVals[i] // ''
您需要 defined 或 运算符 //
如果已定义,则 returns 它的左操作数,否则它的右操作数
$csv->print($file, [ $engVals[i] // "", $frenchVals[i] // "" ] );
我不确定为什么两个数组元素之间有两个逗号。如果这是一个拼写错误,那么上面的语句就是您想要的,但是如果您希望在生成的 CSV 数据中有一个中间空白字段,那么您应该编写 , "",
.
我现在的问题是基于我在使用 CSV 文档时遇到的问题,但它也更笼统。
我希望使用 Java/Groovy/Gosu 中的空问号之类的东西来确定数组索引是否已初始化。
我有类似的东西:
for ( my i = 0; i < @engVals or i < @frenchVals; i++ ) {
$csv->print($file, [ $engVals[i] ?: "", , $frenchVals[i] ?: "" ] );
# Where Elvis ops ensure that the array element at i is initialized, and if not stores blank in the CSV
}
defined $engVals[i]
见http://perldoc.perl.org/functions/defined.html
或者你可以
$engVals[i] // ''
您需要 defined 或 运算符 //
如果已定义,则 returns 它的左操作数,否则它的右操作数
$csv->print($file, [ $engVals[i] // "", $frenchVals[i] // "" ] );
我不确定为什么两个数组元素之间有两个逗号。如果这是一个拼写错误,那么上面的语句就是您想要的,但是如果您希望在生成的 CSV 数据中有一个中间空白字段,那么您应该编写 , "",
.