小编mj6*_*174的帖子

从数组派生的perl哈希不能按预期工作

我在使用从数组派生的哈希时遇到了一些麻烦.对于我所知道的那些元素,它没有"存在"测试.我写了一些小测试代码来证实这一点.这里是:

#!/usr/local/bin/perl

my @sieve = (2, 3, 5, 7, 11, 13, 17, 19);
my %sieve_hash = @sieve;


foreach $prime (@sieve) {
    if (exists($sieve_hash{$prime})) {
    print "$prime exists!\n";
    } else {
    print "$prime DOES NOT exist.\n";
    }
}
Run Code Online (Sandbox Code Playgroud)

这是示例输出:

2 exists!
3 DOES NOT exist.
5 exists!
7 DOES NOT exist.
11 exists!
13 DOES NOT exist.
17 exists!
19 DOES NOT exist.
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

perl hash

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

Perl排序在数值上没有按预期工作

我对此感到困惑,显然遗漏了一些基本的东西.似乎perl sort不适用于特定的值集.以下是测试代码的一部分:

    use strict;

    my $i = 7;
    my $j = 8;
    my $k = 4;

    print "before:$i:$j:$k\n";
    my @p = ($i, $j, $k);
    ($i, $j, $k) = sort(@p);
    print "after:$i:$j:$k\n";

    print "######################################\n";


    my $i = 23;
    my $j = 24;
    my $k = 7;

    print "before:$i:$j:$k\n";
    my @p = ($i, $j, $k);
    ($i, $j, $k) = sort(@p);
    print "after:$i:$j:$k\n";

print "######################################\n";
Run Code Online (Sandbox Code Playgroud)

如您所见,它在输入值为(7:8:4)时有效.当值(23:24:7)时似乎不起作用!

before:7:8:4
after:4:7:8
######################################
before:23:24:7
after:23:24:7
######################################
Run Code Online (Sandbox Code Playgroud)

sorting perl

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

在Perl中旋转Integer的数字

在Perl中,如何旋转整数数字?以下是输入和输出示例

样本输入

12345 10901

样本输出

51234 11090

perl integer

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

标签 统计

perl ×3

hash ×1

integer ×1

sorting ×1