📜  珀尔 |多行字符串 |这里文档

📅  最后修改于: 2022-05-13 01:55:05.435000             🧑  作者: Mango

珀尔 |多行字符串 |这里文档

Perl 中的字符串是一个标量变量,它可以包含字母、数字、特殊字符。字符串可以由单个单词、一组单词或多行段落组成。在用户想要一个完整的段落或一组段落作为字符串的情况下,需要多行字符串,为此,他或她需要保留空格和换行符。可以使用多种方式创建多行字符串。

使用单引号和双引号的多行字符串

用户可以使用单引号(”)双引号(“”)创建多行字符串。使用双引号会导致字符串中嵌入的变量被其内容替换,而单引号中的变量名称保持不变

例子:

# Perl code to illustrate the multiline 
# string using single quotes and 
# double quotes
  
# consider a string scalar
$GeeksforGeeks = 'GFG';
  
# multiline string using double quotes
$mline = "This is multiline 
  
string using double quotes
  
on $GeeksforGeeks";
      
# displaying result    
print "$mline\n\n\n\n";
  
# multiline string using single quotes
$multi_line = 'This is multiline 
  
string using single quotes
  
on $GeeksforGeeks';
      
# displaying result    
print "$multi_line\n";

输出:

This is multiline 

string using double quotes

on GFG



This is multiline 

string using single quotes

on $GeeksforGeeks

使用 Here Document 的多行字符串

这里 Document是多个打印语句的替代方式。 Here-Document 也可用于多行字符串。它在开始时声明一个分隔符,以知道字符串需要输入的位置。 Here-Document 以“<<”开头,后跟用户选择的分隔符。字符串读取代码,直到分隔符再次出现,并且中间的所有文本都被视为字符串。

例子:

# Perl code to illustrate the multiline 
# string using Here-Document
  
# consider a string scalar
$GeeksforGeeks = 'GFG';
  
# defining multiline string using 
# ending delimiter without any quotes
$deli = <

输出:

Multiline string using 
    
     Here-Document on 
    
    GFG




Multiline string using 
    
     Here-Document on 
    
    GFG




Multiline string using 
    
     Here-Document on 
    
    $GeeksforGeeks

解释:在上面的代码中,如果分隔符放在双引号中,那么嵌入在字符串中的变量将被它们的内容替换,比如变量 GeeksforGeeks 被 GFG 替换,这被称为Interpolating Here Document 。如果分隔符放在单引号中,则嵌入在字符串中的变量将不会被它们的内容替换,这被称为Non-interpolating Here Document 。请记住,如果分隔符没有放在任何引号中,则默认情况下会考虑双引号

注意:建议在字符串末尾使用与开头完全相同的分隔符,这意味着在分隔符之前不应有空格,在分隔符之后也不应有空格。否则,Perl 将无法识别它并给出错误。换句话说,用户不能缩进结束标记以匹配其余代码的缩进。

例子:

# Perl code to illustrate the error by 
# changing the ending delimiter
  
# consider a string scalar
$GeeksforGeeks = 'GFG';
  
# defining multiline string using 
# ending delimiter without any quotes
$deli = <

运行时错误: