perl语言再探之raku有记

2021-09-01  本文已影响0人  teddyandchen

部分反斜线转义字符序列

转义序列 描述
\a ASCII响铃字符
\b 退格
\r 回车
\n 换行
\t 制表符号
\f 换页
\c[NAME] 按名字指定字符
\q[...] 对括号中的部分加单引号
\qq[...] 对括号中部分加双引号
\x[ABCD] 按十六进制码数指定字符

部分引号形式

短名 长名 描述
「...」 字面量字符串 默认定界直角引号
Q '...' 字面量字符串 有替代定界符的广义引号
Q[...] 字面量字符串 有成对定界符的广义引号
'...' 转义字符串 默认定界符单引号
q{...} 转义字符串 使用替代的成对定界符
Q:q[...] 转义字符串 带:q副词的广义引号
"..." 插值字符串 默认定界符双引号
qq[...] 插值字符串 使用替代的成对定界符
Q:qq '...' 插值字符串 带:qq副词的广义引号
Q:c '...{}...' 插值字符串 只对大括号中部分插值的广义引号
Q:to(HERE) 字面量字符串 Here doc
q:to(HERE) 转义字符串 Here doc
qq:to(HERE) 插值字符串 Here doc

部分引号副词:

短名 长名 描述
:x :exec 执行shell命令并返回结果
:q :single 对\,\qq[...]和转义定界符插值
:qq :double 组合 :s,:a,:h,:f,:c,:b的插值
:s :scalar 对$变量插值
:a :array 对@变量插值
:h :hash 对%变量插值
:f :function 对&调用插值
:c :closure 对{...}中的代码插值
:b :blackslash 对\n,\t和其他特殊序列插值
:to :heredoc 解析结果作为here doc终止符
:v :val 如果可能,转换为语素变体

Example:

put "The escaped \" stays in the string";
put "The snowman is \x[2603]";

my $name = 'Hamadryas perlicus';
put "The best butterfly is $name";

my $answer = prompt 'What\'s your favorite animal?';
put qq/\$answer is: \n\t$answer/;
put Q :qq /\$answer is type {$answer.^name}/;

my $genus = 'Hamadryas perlicus';
put '$genus is \qq[$genus]';
put "\q[$genus] is $genus";

my $multi-line = qq :to/HERE/;
    Hamadryas perlicus: 19
    Vanessa atalanta:   17
    Nymphalis antopia: 0
    $genus;
    HERE
put $multi-line;

put qq :to/END/;
    The genus is $genus
   END

my $uname = qx/hostname/.chomp;
put "The hostname is $uname";
put "The hostname is {qx/hostname/.chomp}";
print "The hostname is {qx/hostname/}";
print Q :q      :x    /hostname/;
print Q :q      :exec /hostname/;
print Q :single :exec /pwd/; 

my $name= 'Hamadryas';
print Q :s:c:b "\r \n {2+2} $name";
print qq :!c /No {2+2} interpolation $name/;

在人的职业生涯中,有时可能会创建一个无限循环。你可能坐在那里看着屏幕,心里奇怪为什么什么也没发生。在这种情况下,可以用Ctrl-C中断你的程序。

上一篇下一篇

猜你喜欢

热点阅读