标签: perl-data-structures

如何在Perl中取消引用数组数组?

传递给函数时如何取消引用数组?

我是这样做的:

my @a = {\@array1, \@array2, \@array3};

func(\@a);


func{
    @b = @_;

    @c = @{@b};
}
Run Code Online (Sandbox Code Playgroud)

其实我想要的数组@c应包含的地址@array1,@array2@array3.

perl perl-data-structures

1
推荐指数
2
解决办法
4238
查看次数

Perl:关于hashmap的基本问题

$hash_map{$key}->{$value1} = 1;
Run Code Online (Sandbox Code Playgroud)

我只是perl的初学者,我需要这个表达式的帮助,这个表达式意味着什么?我假设将创建一个新的键/值对,但这里1的含义是什么?

perl perl-data-structures

1
推荐指数
1
解决办法
396
查看次数

多哈希中的整数索引优于字符串索引

我编写了这个示例代码来检查perl哈希中的整数或字符串索引是否更好.

use Time::Local;
use Time::HiRes qw/gettimeofday/;

my %string_hash;
my %int_hash;

$i_count = 100;
$j_count = 100;
$k_count = 1000;
foreach $i (0..$i_count)
{
    foreach $i (0..$j_count)
    {
        foreach $k (0..$k_count)
        {
            $i += 0;$j += 0;$k += 0;
            $int_hash{$i}->{$j}->{$k}           = 1;
            $string_hash{"$i"}->{"$j"}->{"$k"}  = 1;
        }
    }
}


my $profile = gettimeofday();
print "String hash start:$profile\n";
foreach $i (keys %string_hash)
{
    foreach $j(keys %{ $string_hash{$i} })
    {
        foreach $k(keys %{ $string_hash{$i}{$j} })
        {
            $i += 0;$j += 0;$k += 0;
            $val …
Run Code Online (Sandbox Code Playgroud)

perl perl-data-structures

1
推荐指数
1
解决办法
882
查看次数

Perl hashref打印键

我有以下hashref: -

my $hashref = {'a'=>(1,2,3,4),
               'b'=>(5,6,7,8)};
Run Code Online (Sandbox Code Playgroud)

然后我使用以下内容来打印键(即'a'和'b'): -

foreach (keys %$hashref){
   print "\n".$_."\n";
}
Run Code Online (Sandbox Code Playgroud)

这将打印以下输出: -

4

a

7

2

5
Run Code Online (Sandbox Code Playgroud)

尝试使用Data :: Dumper打印数据结构hashref,得到以下输出: -

$VAR1 = {
          '4' => 'b',
          'a' => 1,
          '7' => 8,
          '2' => 3,
          '5' => 6
       };
Run Code Online (Sandbox Code Playgroud)

我的问题是: -

1)如何只打印正确的键,即'a'和'b'.2)为什么数据结构看起来像上面的输出而不是: -

$VAR1 = {
           'a' => (1,2,3,4),
           'b' => (5,6,7,8)
        };
Run Code Online (Sandbox Code Playgroud)

perl perl-data-structures

1
推荐指数
1
解决办法
2461
查看次数

将元素插入perl中哈希的哈希值

我有一个阵列.数组中的元素在它们之间包含半冒号.

数组看起来像这样:

@Array = { "AUT;E;1",
           "AUT;E;2",
           "CHE;A;1",
           "CHE;C;4"
         };
Run Code Online (Sandbox Code Playgroud)

我想用';'分割数组元素 (分号)作为分隔符.

通过使用散列哈希,我想将'AUT'存储为键,并且希望存储E => 1且E => 2.

即我需要哈希作为

%HashOfElem = (
         'AUT' => {
                     'E' => 1,
                     'E' => 2
                  },

         'CHE' => {
                     'A' => 1,
                     'C' => 4
                  }
              )
Run Code Online (Sandbox Code Playgroud)

为此,我编写了以下代码,其行为不符合预期:(

foreach(@Array)
{
    my @TmpArray = split(/;/,$_);

    %HashOfElem = (
              $TmpArray[0] => {
                                  $TmpArray[1] => $TmpArray[2]
                              }
                  );
Run Code Online (Sandbox Code Playgroud)

}

如果我的方法是错误的,那么perl中的哪个数据结构可用于实现上述目的?

请帮忙..

perl perl-data-structures

1
推荐指数
1
解决办法
326
查看次数

存储在数据结构中的匿名子例程/子例程引用

为什么我要使用Perl匿名子程序而不是命名子程序?激励我思考以下方面的优点:

  • 在数组,散列和标量中存储匿名subs.

这是一个非常酷的概念,但它在任何方面都很实用吗?我有必要使用存储在某种数据结构中的匿名子/子引用吗?或者也许是方便的情况?

我理解为什么在某些上下文中需要匿名子类,例如处理共享变量(当在另一个子元素中声明匿名子元素时),但除非我遗漏了某些内容,否则我只是看不到使用任何类型函数的意义参考.看起来我们应该直接调用函数,代码看起来会更好/更有条理.

请告诉我,我错了.我很想有充分的理由使用这些东西.

提前致谢.

perl perl-data-structures

1
推荐指数
1
解决办法
144
查看次数

Perl for循环错误

我是Perl的新手,我试图使用Strawberry perl 5,版本16执行下面编码的简单程序:

#!usr/bin/perl

use warnings;
use strict;

my @array= {1,2,3,5,7,9};
my $i;

foreach $i (@array)
{
print qq(Element is $i\n);
}
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

Element is HASH(0x3f8b4c)
Run Code Online (Sandbox Code Playgroud)

但是我应该收到的输出是:

Element is 1
Element is 2
Element is 3
Element is 5
Element is 7
Element is 9.
Run Code Online (Sandbox Code Playgroud)

感谢你的帮助.

arrays perl perl-data-structures

1
推荐指数
1
解决办法
167
查看次数

如何从Perl中的哈希中删除键?

如何从现有地图中删除密钥?

if (exists $sampleMap{1})
{
      #Here I want to remove the "1" key from sampleMap
}
Run Code Online (Sandbox Code Playgroud)

perl hash perl-data-structures

1
推荐指数
1
解决办法
3344
查看次数

Perl:如何打印哈希数组,

似乎没有很多人使用包含哈希的数组的例子.我想检查我在sub中构建的数组,但是我在访问结构时遇到了一些问题.也许我并没有想象它的存在方式.这是一些代码的示例:

#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;


my (%data, %data2, @holding);

%data = (
    'monday' => "This stuff!",
    'tuesday' => "That stuff!!",
    'wed' => "Some other stuff!!!"
    );

push @holding, %data;

%data2 = (
    'monday' => "Yet more stuff... :-P ",
    'tuesday' => "Some totally different stuff!",
    'wed' => "What stuff is this?"
    );

push @holding, %data2;

foreach my $rows(@holding){
    foreach my $stuff (keys %{$holding[$rows]} ){
        print "$holding[$rows]{$stuff}\n";  
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到的错误消息:

Argument "wed" isn't numeric in array element at …
Run Code Online (Sandbox Code Playgroud)

perl perl-data-structures

1
推荐指数
1
解决办法
765
查看次数

添加数组列表perl

我有一个由空行分隔的数字列表的文本文件给出如下─我想添加的所有第一(20.187 + 19.715 + 20.706 ...),第二个元素(15.415 + 14.726 + 15.777)等获得每个元素的总数为1,第2,第3等

20.187 15.415  8.663  6.001  6.565  6.459  6.564 ..

19.715 14.726  8.307  5.833  6.367  6.089  6.444 ..

20.706 15.777  9.185  6.546  7.327  7.172  7.084 ...
Run Code Online (Sandbox Code Playgroud)

因为它们是*不列排列*我怎么能加起来数组中的元素.

perl perl-data-structures

0
推荐指数
2
解决办法
1444
查看次数

标签 统计

perl ×10

perl-data-structures ×10

arrays ×1

hash ×1