Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
请帮我理解这句话中的片段;编程Perl“;书_Perl_Perl Context - Fatal编程技术网

请帮我理解这句话中的片段;编程Perl“;书

请帮我理解这句话中的片段;编程Perl“;书,perl,perl-context,Perl,Perl Context,我读了汤姆·克里斯蒂安森、布赖恩·德福伊、拉里·沃尔、乔恩·奥旺特的《Perl编程》。以下是我未能理解的文本(我不理解的确切位置用粗体标记): 您真正想知道的是哪些操作符提供了哪些上下文 到它们的操作数。碰巧,你可以很容易地分辨出是哪一个 提供列表上下文,因为它们的语法中都有列表 说明。其他一切都提供标量上下文。通常地 这很直观。如果需要,可以强制标量上下文 通过使用标量< /代码>列表中的参数< /强> 伪函数。Perl无法在上下文中强制列表上下文, 因为您想要列表上下文的任何地方都已经提供了

我读了汤姆·克里斯蒂安森、布赖恩·德福伊、拉里·沃尔、乔恩·奥旺特的《Perl编程》。以下是我未能理解的文本(我不理解的确切位置用粗体标记):

您真正想知道的是哪些操作符提供了哪些上下文 到它们的操作数。碰巧,你可以很容易地分辨出是哪一个 提供列表上下文,因为它们的语法中都有列表 说明。其他一切都提供标量上下文。通常地 这很直观。如果需要,可以强制标量上下文 通过使用<代码>标量< /代码>列表中的参数< /强> 伪函数。Perl无法在上下文中强制列表上下文, 因为您想要列表上下文的任何地方都已经提供了它 通过某些控制功能的列表

为方便起见,我想提出以下问题:

  • 代码段中的列表是什么意思

  • 什么是语法描述?(似乎是某种文档)

  • 下一段文字是什么意思:

  • 您可以强制标量上下文 在列表中间的一个参数< /强>


    这很简单,就像课文上说的。请查看
    perldoc-f print
    示例:

    print FILEHANDLE LIST
    print FILEHANDLE
    print LIST
    
    正如上面所说,
    print
    接受列表参数,这意味着
    print
    之后发布的任何内容都在列表上下文中。对于参数表示为列表的任何函数,这是相同的

    使用
    scalar
    函数,您可以覆盖此列表上下文,这样就不会在列表上下文中计算参数。例如,文件句柄readline语句,例如:

    my $line = <$fh>;
    
    读取行位于列表上下文中,这意味着将读取文件中所有剩余的行。您可以通过将readline语句置于标量上下文中来重写该语句:

    print scalar <$fh>;
    
    打印标量;
    
    然后你只需要读一行。更确切地说,可以在列表中间执行标量上下文:

    print @list, scalar <$fh>, @list2;
    
    print@list,scalar,@list2;
    
    这大概就是你那句话中提到的

    print @list, scalar <$fh>, @list2;