4 回答

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊
1. @{....}[...] 先不論這里有沒(méi)有寫錯(cuò), 但這種表達(dá)方式,
以 @ 開(kāi)頭, 頭面有 [ ] , 我們叫 array slice 是應(yīng)該放在等號(hào)右手邊的
1 2 3 4 5 | @arr0 = (0..10) @arr1 = @arr0[1..2]; # @arr1 = 1, 2
$x = [ 1..10 ]; @y = @{$x}[1,2]; # @y = 1, 2 |
這里你放到了左手邊, 自然就不對(duì)了
2. 然後, @{line.... 這里就少了個(gè) $ 應(yīng)該寫成 @{$line ....
3. 最後, 我想你真正想做到的效果應(yīng)該是
1 2 3 | $line->[$j][$i] = $eachline; # Array of Array #又或者 $line->{$j}[$i] = $eachline; # Hash of Array |

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊
#! /usr/bin/perl
use strict;
use warnings;
my @array = (0 .. 9);
my $tmp = 10;
print "@array\n";
push(@array,$tmp);
print "@array\n";
@array = $tmp + 1;
print "@array\n";
-------------------------------------------------
輸出:
C:\Users\Hunter\Documents\Perl>perl 17.pl
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 10
11
C:\Users\Hunter\Documents\Perl>

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊
可以試一下這幾種方式,每種方式各有優(yōu)劣:
#!/bin/perl -w
use strict;
my @arr = ( "aaa","bbb","ccc","ddd","eee","fff"); # 這個(gè)是數(shù)組
my $vv = "ddd"; # 這個(gè)是要查找的變量
# 方法1,:使用類似c語(yǔ)言的風(fēng)格,遍歷這個(gè)數(shù)組,查找變量是否匹配。
foreach ( @arr)
{
if( $vv eq $_ )
{
print "$vv\n"
}
}
#方法2:使用map,查找數(shù)組中是否含有該變量
map { if($vv eq $_) { print "$vv\n"} } @arr;
#方法3:使用grep,查找數(shù)組中是否含有該變量
print( grep /^$vv$/, @arr );

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊
my @m=(0,1);
$m[0]=1;指定位置1 0 1
push @m,2;尾部添加1 0 1 2
unshift @m,3;頭部添加3 1 0 1 2
$m[1..3]=(3,5,8);多位置修改3 3 5 8 2
splice將制定位置移除并可進(jìn)行替換
- 4 回答
- 0 關(guān)注
- 1397 瀏覽
添加回答
舉報(bào)