小编Ala*_*avi的帖子

如何对阵列数组执行数学运算?

我有一个像下面的数组数组与所有数值.我想用这些值执行一些数学运算.

1)添加并打印每个数组元素的值.例如

sum $VAR1 = sum1
sum $VAR2 = sum2
Run Code Online (Sandbox Code Playgroud)

2)添加每个变量的所有值.例如

sum $VAR1 + $VAR2 +...+ $VARn = totalsum
Run Code Online (Sandbox Code Playgroud)

3)寻找每个变量的总(的百分比sum1,sum2等)与totalsum.

$VAR1 = [
          '17071',
          '16120',
          '16292',
    'upto n numbers'
        ];
$VAR2 = [
          '1306',
          '1399',
          '1420',
    'upto n numbers'
        ];  
.
.
.
$VARn = [
          '1835',
          '1946',
    'upto n numbers'
        ];  
Run Code Online (Sandbox Code Playgroud)

我已尝试下面的代码来执行第一个数组ref的添加,但它没有给我正确的值.

my $total = 0;
($total+=$_) for $input[0];
print $total;
Run Code Online (Sandbox Code Playgroud)

arrays perl

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

迭代A Perl Hash会打印出一个内存地址

以下子例程用于迭代节点数组(每个节点的哈希值都有一个大陆)并返回所有国家/地区的列表:

sub getContinentsServed{
    my $self = shift;
    my $temp = $self->{cityListRef};
    my %hash = {};
    my $h_ref = \%hash;
    foreach my $cont (@{$temp}){
        $h_ref->{$cont->{continent}} = '1';
    }
    print "Continents Served: ";
    foreach my $coord (keys %hash){
        print $coord;
        print " , ";
    }
} 
Run Code Online (Sandbox Code Playgroud)

我很确定这包含所有正确的数据,但是当我尝试打印这些值时,我得到了这个结果:

Continents Served: Australia Europe North America South America Asia Africa HASH(0x100949a70) 
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么我会得到最后一个元素HASH(0x1009...).我宁愿这不会出现,但我所做的只是迭代键,所以我不确定为什么或如何那样.

memory perl hash hashmap

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

如何使用Net :: FTP获取与模式匹配的文件?

如何使用Net::FTP获取与模式匹配的文件?

基本上我想做的是:

$ftp->get("test*");
Run Code Online (Sandbox Code Playgroud)

应匹配以test开头的所有文件并执行get().

谢谢你的帮助!

ftp perl design-patterns match

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

将一条线分成两部分

我有来自亚马逊的乔治迈克尔的DVD曲目列表的剪切和粘贴$str以及随后的代码,通过分割前两位数字和其余数字来处理它:

$str = "20 Fastlove 21 Jesus To A Child 22 Spinning the Wheel 23 Older 24 Outside 25 As (with Mary J. Blige) 26 Freeek! 27 Amazing 28 John and Elvis are Dead 29 Flawless (Go To The City) 30 Shoot The Dog 31 Roxanne 32 An Easier Affair 33 If I Told You That (with Whitney Houston) 34 Waltz Away Dreaming 35 Somebody To Love 36 I Can’t Make You Love Me 37 Star People '97 …
Run Code Online (Sandbox Code Playgroud)

regex perl

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

为什么ICQ机器人不发送消息?

#!/usr/bin/perl
use Net::OSCAR qw(:standard);
$uin="7777777"; 
$password="1234567";
$sender = "43214312";
$text = "test";
$oscar = Net::OSCAR -> new();
$oscar -> signon($uin, $password);
$oscar -> send_im($sender, $text);
$oscar -> signoff();
Run Code Online (Sandbox Code Playgroud)

为什么不给我发消息?

perl bots icq

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

使用单个哈希的副本填充perl哈希数组

我搜索并搜索过,但我找不到任何我发现的代码.我很抱歉,如果这是重复旧的,但我现在花了2天试图让这10行工作,我在我的智慧结束没有留下头发:-(

我正在运行Perl 5.8.8.

我想在Perl中填充哈希数组,使其包含我正在更新的单个哈希变量的多个副本.我的代码在这里:

use strict;
use warnings;

my @array;

my %tempHash = (state => "apple", symbol => "54", memberId => "12345");
push(@array, \%tempHash);

%tempHash = (state => "tiger", symbol => "22", memberId => "12345");
push(@array, \%tempHash);

%tempHash = (state => "table", symbol => "37", memberId => "12345");
push(@array, \%tempHash);

printf("%p %p %p\n", $array[0], $array[1], $array[2]);

foreach my $entry (@array){
    printf("state: %s\n", $entry->{state});
    printf("memberId: %s\n", $entry->{memberId});
    printf("symbol: %s\n\n", $entry->{symbol});
}
Run Code Online (Sandbox Code Playgroud)

这会产生以下输出:

1868954 18688d0 18688c4
state: table
memberId: 12345 …
Run Code Online (Sandbox Code Playgroud)

perl copy reference perl-data-structures

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