【问题标题】:Perl Array values show in different line without using loopPerl 数组值显示在不同的行中而不使用循环
【发布时间】:2011-02-13 15:26:00
【问题描述】:

谁能告诉我如何在不使用循环的情况下打印不同行中的数组值?

#!/usr/bin/perl -w

my @a = ('Test1','Test2','Test3');
print "@a";# output like **Test1 Test2 Test3** but i want **Test2 in next line and Test3 next to next line**

有可能吗?

【问题讨论】:

    标签: perl


    【解决方案1】:

    你可以这样做:

    print join("\n", @ar);
    

    【讨论】:

      【解决方案2】:

      你可以设置 $" 变量

       $" = "\n";
      

      这样做可能会更好

      {
           local $" = "\n";
           print "@ar";
      }
      

      编辑:

      根据camel book

      $"(或替代的 $LIST_SEPERATOR)指定在将数组插入双引号字符串时要放在各个元素之间的字符串,这适用于您要说的情况:

      print "@ar";
      

      $,(或替代的 $OUTPUT_FIELD_SEPERATOR)指定要打印列表时放置在各个元素之间的字符串。它最初是空的。你可以为你想说的情况设置$:

       print @ar;
      

      【讨论】:

        【解决方案3】:

        您可以将$, 特殊变量设置为您想要分隔列表元素的任何内容。这应该做你想做的事:

        $, = "\n";
        my @a = ('Test1','Test2','Test3');
        print @a;
        

        【讨论】:

        • 这仅适用于传递给 print (print @a) 的多个元素,而不是单个字符串。
        【解决方案4】:

        使用地图功能

        打印@array = map{"$_\n"} @a;

        【讨论】:

          猜你喜欢
          • 2016-06-18
          • 1970-01-01
          • 2020-10-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-01-09
          相关资源
          最近更新 更多