print "$person has $books{$person} items\n"; # fred
借了
3
本书
}
}
但这种方式不支持内插整个哈希,
"%books"
的结果只是字面上的这
6
个字符组成的
字符串:
%books
。之前介绍过,在双引号中需要反斜线转义的魔力字符有
$
和
@
,因
为它们后面的变量能进行内插;还有双引号
"
,若不用反斜线转义,这个符号就会结
束双引号引起的字符串;另外,
\
本身也需要转义。除了这些以外,双引号中任何字
符都只代表它们自己,无需转义。但要注意,在双引号中变量名之后的撇号(
'
)、左
方括号(
[
)、左花括号(
{
)、瘦箭头(
->
)和双冒号(
::
),它们是表示变量内容
的一部分,而非字符本身。
特殊哈希
%ENV
有一个哈希是不用设置直接就能用的。你写的
Perl
程序最终是要运行在某个环境中,
而程序需要对所运行的环境有所感知。
Perl
会把环境信息放到特殊哈希
%ENV
里面。
比如从
%ENV
中读取键为
PATH
的值:
print "PATH is $ENV{PATH}\n";
根据你所使用的操作系统和设定,大致会看到类似下面这样的输出:
PATH is /usr/local/bin:/usr/bin:/sbin:/usr/sbin ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.
O’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
I wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
I’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
I'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.