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