perl - 在 Perl 中识别空字符串

标签 perl string

对此可能有一个简单的解决方案,但我无法弄清楚。我期待:

  • 将 CSV 文件放入数组
  • 遍历数组并将字段拆分为变量
  • 如果数组字段为空,则将变量设置为“N/A”

  • 注意:它只是设置 $variable致“N/A ”,我无法开始工作。

    例如:
    foreach $var (@list) {
    
    ($name,$date,$size, etc...)=split(/,\"/,$var);
    
    }
    

    我将如何设置 $dateN/A”如果数组中的字段为空?

    所以要生产:
    $name = Jim
    $date = N/A
    $size = small
    

    我希望这是有道理的,并且很容易解决。
    -谢谢

    最佳答案

    假设变量 $date “空”时未定义:

    if (!defined($date)) {
      $date = 'N/A';
    }
    

    或者更简洁:
    $date //= 'N/A';
    

    或者如果它确实是一个空字符串,即 $date = ''; (这也适用于 $date 未定义的情况,但如果您只想识别未定义的情况,则不想使用它):
    if ($date eq '') {
      $date = 'N/A';
    }
    

    或者更简洁(请注意,如果 $dateN/A,由于 Perl 的弱类型,这也会将 $date 设置为 '0'):
    $date ||= 'N/A';
    

    关于perl - 在 Perl 中识别空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4490166/

    相关文章:

    perl - 如何通过调用外部程序来替换 perl 模块的使用?

    perl - 如何在 Perl 中将跨多个时区的 unix 日期输出转换为 UTC?

    java - 在 Java 中交换两个字符串,通过将它们传递给实用函数,但不返回对象或使用包装类

    Java HashSet 以奇怪的顺序显示列表,总是从 3 开始

    string - 表情符号字符 (😎) 与简单字符,lengthOfBytesUsingEncoding 的不同结果

    perl - 将数组和标量传递给Perl子例程

    php - 如何设置服务器以在 Ubuntu 10.04 中从 "root-directory/sub-directory/cgi-bin"运行 "root-directory/cgi-bin"中的 perl 脚本?

    perl - 在 @INC 中找不到 Email/Sender/Transport/SMTP/TLS.pm

    c# - String.Equals 的奇怪行为?

    c# - C# 中的 Regex.Split 命令