【问题标题】:What are the differences between $, @, % in Perl variable declaration? [duplicate]Perl 变量声明中的 $、@、% 有什么区别? [复制]
【发布时间】:2020-08-18 23:49:39
【问题描述】:

例子:

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

我知道,@ 似乎是数组,$ 是原始的,完全正确吗? % 是干什么用的?

【问题讨论】:

  • 你可以在谷歌上查找sigil
  • 这不可能是重复的
  • 有些人明显不同意,请帮忙删除这个问题
  • @dvk:你的意思是不能删除?或者直接关闭它
  • % 用于哈希。 Refer Here

标签: perl syntax declaration


【解决方案1】:

Perl 的优点之一是它带有内置手册。输入以下命令:

perldoc perlintro

并查看Perl 变量类型部分。你也可以在 Perl 变量的perldoc.perl.org 部分看到这一点。

快速概览:

  • $foo 是一个标量 变量。它可以保存单个值,可以是字符串、数字等。
  • @foo 是一个数组。数组可以保存多个值。您可以使用索引访问这些值。例如 $foo[0] 是数组的第一个元素,$foo[1] 是数组的第二个元素,依此类推(数组通常以零开头)。
  • %foo 是一个 hash,这就像一个数组,因为它可以保存多个值,但哈希是键控数组。例如,我有一个名为 %password 的密码哈希。这由用户名键入,值是用户的密码。例如:

    $password{Fred} = "剑鱼"; $password{贝蒂} = "秘密";

    $user = "弗雷德"; print "用户 $user 的密码是 $password{$user}\n"; #打印出剑鱼 $user = "贝蒂"; print "用户 $user 的密码是 $password{$user}\n"; #打印出秘密

请注意,当您在 hasharray 中引用单个值时,您使用美元符号。这对初学者来说有点混乱。

我建议您购买 Llama BookLlama BookLearning Perl,是对该语言的极好介绍。

【讨论】:

  • $ 前的@ 怎么样?在下面的示例中 - $baseball_team_ids 被传递给子例程,然后在新变量创建中引用。我的 $total_ids = 标量(@$baseball_teamIDs);
【解决方案2】:

$ 用于标量,@ 用于数组,% 用于哈希。有关详细信息,请参阅文档的 Variable Types 部分。

【讨论】:

    【解决方案3】:

    $ 是标量,@ 是数组,% 是哈希。

    【讨论】:

    • 是的,但是为什么 $_ 和 @_ 在包含传入函数的参数时是相同的?还是我错了?
    • @nicola,数组和哈希元素使用“$”。 $_[0]@_ 的第一个元素。两者都与$_无关。
    • @nicola => @_ 是一个包含所有传递给函数的参数的数组。 $_ 是一个标量,包含在for (@array) {...} 等情况下正在使用的当前项目。 $_@_ 无关。您可能会感到困惑的是,要访问参数列表的单个元素,您将编写 $_[0],它访问第一个元素。这里的印记变为$ 表示您正在访问一个标量,但是尾随的[0] 告诉perl 它正在访问_ 或换句话说@_ 中的数组的标量元素。跨度>
    【解决方案4】:

    $var 表示单值标量变量
    @var 表示一个数组
    %var 表示关联数组或哈希(它们都是相同的)

    【讨论】:

      猜你喜欢
      • 2019-12-29
      • 2015-07-09
      • 2012-07-15
      • 2012-05-09
      • 1970-01-01
      • 2010-10-02
      • 1970-01-01
      • 2016-05-08
      • 2022-01-16
      相关资源
      最近更新 更多