What are the differences between $, @, % in Perl variable declaration? [duplicate]

落爺英雄遲暮 提交于 2019-11-30 11:58:57

问题


Example:

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

I know, @ seems to be for array, $ for primitive, is it totally right? What is % for?


回答1:


One of the nice things about Perl is that it comes with a built in manual. Type in the following command:

perldoc perlintro

and take a look at the section Perl variable types. You can also see this on line with the perldoc.perl.org section on Perl variables.

A quick overview:

  • $foo is a scalar variable. It can hold a single value which can be a string, numeric, etc.
  • @foo is an array. Arrays can hold multiple values. You can access these values using an index. For example $foo[0] is the first element of the array and $foo[1] is the second element of the array, etc. (Arrays usually start with zero).
  • %foo is a hash, this is like an array because it can hold more than one value, but hashes are keyed arrays. For example, I have a password hash called %password. This is keyed by the user name and the values are the user's password. For example:

    $password{Fred} = "swordfish"; $password{Betty} = "secret";

    $user = "Fred"; print "The Password for user $user is $password{$user}\n"; #Prints out Swordfish $user = "Betty"; print "The Password for user $user is $password{$user}\n"; #Prints out secret

Note that when you refer to a single value in a hash or array, you use the dollar sign. It's a little confusing for beginners.

I would recommend that you get the Llama Book. The Llama Book is Learning Perl and is an excellent introduction to the language.




回答2:


$ is for scalars, @ is for arrays, and % is for hashes. See the Variable Types section of the the docs for more information.




回答3:


$ is scalar, @ is array, and % is hash.




回答4:


$var denotes a single-valued scalar variable
@var denotes an array
%var denotes an associative array or hash (they are both the same)



来源:https://stackoverflow.com/questions/5553898/what-are-the-differences-between-in-perl-variable-declaration

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!