首页编程perl数组(perl中如何定义数组参数)

perl数组(perl中如何定义数组参数)

编程之家2023-11-0292次浏览

这篇文章给大家聊聊关于perl数组,以及perl中如何定义数组参数对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

perl数组(perl中如何定义数组参数)

perl 数组赋值 求解释

首先,这个程序可以简化一点的(而我在最後加了两句,留意结果):

while(my$entry=$result->shift_entry){

my$sam=$entry->get_value('sAMAccountName');

my$mail=$entry->get_value('mail');

print LOG"$sam,$mail$/";

next unless($sam and$mail and$sam=~/^\w+$/g);

perl数组(perl中如何定义数组参数)

my$user= [];

@{$user}[0]=$sam;

@{$user}[1]=$mail;

$adusers{$sam}=$user;

}

use Data::Dumper;

perl数组(perl中如何定义数组参数)

print Dumper\%adusers;

其实当中的:

my$user= [];

@{$user}[0]=$sam;

@{$user}[1]=$mail;

其实又可以写成:

my$user= [$sam,$mail ];

$adusers{$sam}=$user;

又可以写成:

$adusers{$sam}= [$sam,$mail ];

最後你会发现%adusers的结构就是:

$VAR1=>{

'路人甲'=> [

'路人甲',

'email address',

],

'路人乙'=> [

'路人乙',

'email address',

],

}

所以使用的时候就是

$mail=$adusers{'路人甲'}->[1];

print$mail;

後记,其实...根本不需要

my$user= [];

@{$user}[0]=$sam;

@{$user}[1]=$mail;

$adusers{$sam}=$user;

$adusers{$sam}=$mail;#就够了.

因为那个 key(路人甲)与$user->[0](都是'路人甲')根本就是重覆的数据

perl中如何定义数组参数

PERL的参数可以使用数组,调用的时候要在%或者@前面加上\,否则就把数组的值传递给函数了,下面是调用的例子:

Run(\%o,$ch,$num);

这个函数Run使用三个参数,第一个是数组类型,函数定义就没什么特殊的:

sub Run{

my($o,$ch,$num)=@_;

my$th= IO::Socket::INET->new('PeerAddr'=>$o->{'tohost'},'PeerPort'=>$o->{'toport'});

my$read_counter=0;

}

补充:

你的问题我以为是问PERL函数的参数。

PERL使用下面的变量获取命令行参数:$#ARGV表示参数的个数,$ARGV[0]、$ARGV[1]、$ARGV[2]……依次表示各个参数

perl 数组中如何删除元素

1.用grep函数

函数名 grep

调用语法@foundlist= grep(pattern,@searchlist);

解说与同名的UNIX查找工具类似,grep函数在列表中抽取与指定模式匹配的元素,参数pattern为欲查找的模式,返回值是匹配元素的列表。

例子@list=("This","is","a","test");

@foundlist= grep(/^[tT]/,@list);

结果@foundlist=("This","test");

2.用map函数

函数名 map

调用语法@resultlist= map(expr,@list);

解说此函数在Perl5中定义,可以把列表中的各个元素作为表达式expr的操作数进行运算,其本身不改变,结果作为返回值。在表达式expr中,系统变量$_代表各个元素。

例子

1、@list=(100, 200, 300);

@results= map($_+1,@list);

2、@results= map(&mysub($_),@list);

结果 1、(101, 201, 301)

2、无

3.用splice或者delete

函数名 splice

调用语法@retval= splice(@array, slipelements, length,@newlist);

请问怎么给perl里的标量,哈希,数组赋初值

perl中的哈希赋值

在perl中,通过代码动态的给哈希赋值,是最常见的应用场景,但是有些情况下,我们事先知道一些信息,当需要把这些信息存放进一个哈希的时候,直接给哈希赋值就好;

哈希的key不用说,就是一个字符串,关键是value,大概有下面3种:

1)一个值

就是一个普通的一维哈希,直接赋值即可

代码示例:

my%hash=('a'=> 1,'b'=> 2,);print qq{$hash{a}\n};

2)一个列表

这种情况下直接把值写成一个列表是不行的,在perl中,哈希的值也是一个标量,所以应该用一个列表的引用

代码示例:

my%hash=('a'=> [1, 2, 3],'b'=> [1, 2, 3],);

print qq{$hash{a}->[0]\n};

3)一个哈希

和列表类似,直接用哈希的引用就可以了

代码示例:

my%hash=('a'=>{'1'=> 1,'2'=> 2},'b'=>{' 1'=> 1,'2'=> 2},);

print qq{$hash{a}->{1}\n};

上面这种情况,其实就是申明了一个二维哈希

关于perl数组到此分享完毕,希望能帮助到您。

mouseevent 电脑出现object mouseevent是什么意思哈尔滨网站设计(哈尔滨网站建设都怎么收费)