我需要帮助“优化”我的代码,因为我确信有一种更好,更清洁的方法。我有6个变量是通过从较长的字符串中解析而创建的:
Year
Make
Model
Color
ColorLower
Style
根据记录,我可能会在部分或全部变量中包含详细信息。但在大多数情况下,有些是空白的。在填充变量之后,我将它们添加到数据库字段中,该字段是汽车/车辆的描述。
目前我的if / else块一个接一个,如果变量的长度非零,则连接的描述变量
if (length($Year)>0)
{
$Description == $Description + " " + Year
}
elsif (length($Make) > 0)
$Description == $Description + " " + $Make
} ...and so on
TMTOWTDI绝对适用于此,我总是惊叹于专家提出的优雅的单行。虽然我现在的工作正在发挥作用,但我仍然有兴趣听到有一种更简洁,更紧凑的方式,我可以最大化我的代码。
谢谢大家。
答案 0 :(得分:5)
也许是这样的:
$desc = join ' ', grep { length $_ > 0 }
$Year, $Make, $Model, $Color, $ColorLower, $Style;
答案 1 :(得分:1)
不需要长度测试。空字符串是 false ,因此这将起作用
$desc = join ' ', grep $_, $year, $make, $model, $color, $color_lower, $style;
值得指出的是,大写字母是为Perl全局标识符保留的,例如包名。对于那些没有英语作为第一语言的人来说,混合大小写标识符也特别困难,Wikipedia has this to say
“至少有一项研究发现,读者可以比
CamelCase
更快地识别蛇案例值