Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 使用unshift分配给变量时出现问题_Arrays_Perl - Fatal编程技术网

Arrays 使用unshift分配给变量时出现问题

Arrays 使用unshift分配给变量时出现问题,arrays,perl,Arrays,Perl,我尝试拆分一个字符串并分配一个数组,然后使用unshift在开始处添加http。 但是,我没有得到期望的输出。我做错了什么 use strict; my $str = 'script.spoken-tutorial.org/index.php/Perl'; my @arr = split (/\//,$str); print "chekcing the split function:\n @arr\n"; my @newarr = unshift(@arr, 'http://

我尝试
拆分一个字符串并分配一个数组,然后使用
unshift
在开始处添加http。 但是,我没有得到期望的输出。我做错了什么

use strict;
my $str = 'script.spoken-tutorial.org/index.php/Perl';
my @arr = split (/\//,$str);
print "chekcing the split function:\n @arr\n";
my @newarr = unshift(@arr, 'http://');
print "printing new array: @newarr\n";
输出为:

checking the split function:
 script.spoken-tutorial.org index.php Perl
printing new array: 4


为什么不添加http而给出数字4(即数组长度)?

这是有记录的行为。发件人:

取消移位数组、列表

与移位相反。或者推的相反方向,取决于你如何看待它。将列表前置到数组的前面,然后 返回数组中新的元素数

见最后粗体部分。这意味着函数
unshift()
的返回值是数组的大小。你就是这么做的

unshift(@arr, 'http://');   # this returns 4
你想做的是

my @newarr = ('http://', @arr);


这是记录在案的行为。发件人:

取消移位数组、列表

与移位相反。或者推的相反方向,取决于你如何看待它。将列表前置到数组的前面,然后 返回数组中新的元素数

见最后粗体部分。这意味着函数
unshift()
的返回值是数组的大小。你就是这么做的

unshift(@arr, 'http://');   # this returns 4
你想做的是

my @newarr = ('http://', @arr);


请参见@arr
unshift
的检查值在其第一个参数中将元素添加到数组的前面,因此在使用该参数后,
@arr
将该新元素放在其开头。更重要的是:在学习使用函数时,您必须阅读perldoc页面!如果有些内容太难阅读和理解,至少要浏览一下基本内容和重要内容。请参阅@arr
unshift
的检查值在其第一个参数中将元素添加到数组的前面,因此在使用后,
@arr
将该新元素放在其开头。更重要的是:在学习使用函数时,您必须阅读perldoc页面!如果有些东西太难阅读和理解的话,至少要浏览一下基本的和重要的东西。