【问题标题】:Printing out a string in Perl and getting weird result在 Perl 中打印出一个字符串并得到奇怪的结果
【发布时间】:2015-04-15 19:07:20
【问题描述】:

我试图在 Perl 中打印出一个连接的字符串,但我得到了一个奇怪的结果。这是我的一些代码,我得到一个字符串并取出其中的一部分并将其放入数组@array。然后我试图获取该数组的片段并将它们连接成一个字符串。

@input = [];
while ( $in = <STDIN> ) { 
    print "# got $in";
    chomp $in;
    @inS = split(/ /, $in);
    if ($inS[2] ne ".pau"){
        print "$inS[2]";
        push(@input, $inS[2]);
    }
}

$inputSize = @input;
$stringN = "";
for ($i = 0; $i < $inputSize; $i++) {
    $stringN .= $input[$i];
    print "$stringN\n";
}

但是我从打印中得到的结果将这个大数字附加在前面。这是一个例子。我得到的不仅仅是“faIv”,而是:

 ARRAY(0x500f450)faIv

它似乎认为我的字符串是一个数组?那是因为与数组元素连接吗?任何帮助都会非常有帮助,谢谢。

【问题讨论】:

  • @input 中有什么内容?如果我设置@input = ( [] . 'faIv' );,我可以复制输出
  • ARRAY(0x500f450) 是数组引用的字符串化表示。您需要仔细看看您如何定义@input
  • 更新以显示我如何创建@input
  • 应该是my @input = (); 而不是@input = [];
  • 谢谢@HunterMcMillen 解决了我的问题

标签: arrays string perl printing


【解决方案1】:

[] 是一个数组的引用@input = []; 创建一个名为 @input 的数组,并将一个空数组的引用作为 @input 的第一个元素。如果要将@input 初始化为空数组,请使用@input = ();

【讨论】:

    猜你喜欢
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    相关资源
    最近更新 更多