珀尔 |多行字符串 |这里文档
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 = <
运行时错误:
Can’t find string terminator “string_ending_delimiter” anywhere before EOF at /home/1873b0a5dae105b4bfa82e3c79f156c5.pl line 9.