2011-04-05 119 views
8

例子:

my $some_variable; 
my @some_variable; 
my %some_variable; 

我知道,@似乎是阵列,$对原始的,它是完全正确的? 什么是%

+6

真的,perl的任何入门级书籍都应该能够告诉你这一点。 – 2011-04-05 14:56:11

+2

你可以在google上查找'sigil'。 – Benoit 2011-04-05 14:58:14

+0

这不可能不是重复 – DVK 2011-04-06 06:46:42

回答

7

$是标量,@是数组,而%是散列。

+0

是的,但是为什么$ _和@_对于函数中包含传入参数是相同的?或者我错了? – nicola 2011-04-05 15:11:45

+1

@nicola,数组和散列元素使用“$”。 '$ _ [0]'是'@ _'的第一个元素。两者都不会被'$ _'所破坏。 – ikegami 2011-04-05 15:25:56

+5

@nicola =>'@ _'是一个包含传递给函数的所有参数的数组。 '$ _'是一个包含当前项目的标量,例如'for(@array){...}'。 '$ _'与'@ _'无关。您可能会感到困惑的地方在于,要访问参数列表中的单个元素,您需要编写“$ _ [0]”,它访问第一个元素。在这里,sigil改变为'$'来表示你正在访问一个标量,但是尾部的'[0]'告诉perl它正在访问'_'中的标量元素或者换句话说,'@ _' 。 – 2011-04-05 15:30:36

4

$变种表示单值的标量变量
@var表示阵列
%VAR表示关联数组或散列(它们都是相同的)

17

关于Perl的好处之一是它带有内置的手册。键入以下命令:

perldoc perlintro 

,并采取一看部分Perl的变量类型。您也可以在Perl变量的perldoc.perl.org部分看到这一点。

快速概述:

  • $ foo的变量。它可以保持单个值,其可以是字符串,数字等。
  • @foo阵列。数组可以保存多个值。您可以使用索引访问这些值。例如,$ foo [0]是数组的第一个元素,$ foo [1]是数组的第二个元素等(数组通常以零开始)。
  • %FOO散列,这就像一个数组,因为它可容纳多于一个的值,但是散列键阵列。例如,我有一个密码哈希,名为%密码。这由用户名键入,值是用户的密码。例如:

    $ password {Fred} =“swordfish”; $ password {Betty} =“秘密”;

    $ user =“Fred”; print“用户$ user的密码是$ password {$ user} \ n”; #打印出剑鱼 $ user =“Betty”; print“用户$ user的密码是$ password {$ user} \ n”; #Prints了秘密

注意,当你在一个哈希阵列指单个值,使用美元符号。这对初学者来说有点令人困惑。

我会建议你拿到美洲驼书美洲驼书Learning Perl,是一个很好的语言介绍。

相关问题