perl变量做为数组名怎样写?

perl变量做为数组名怎样写?


繁花不似锦
浏览 1240回答 4
4回答

MYYA

1. @{....}[...] 先不论这里有没有写错, 但这种表达方式, 以 @ 开头, 头面有 [ ] , 我们叫 array slice 是应该放在等号右手边的12345@arr0 = (0..10)@arr1 = @arr0[1..2]; # @arr1 = 1, 2 $x = [ 1..10 ];@y = @{$x}[1,2]; # @y = 1, 2这里你放到了左手边, 自然就不对了2. 然後, @{line.... 这里就少了个 $ 应该写成 @{$line ....3. 最後, 我想你真正想做到的效果应该是123$line->[$j][$i] = $eachline; # Array of Array#又或者$line->{$j}[$i] = $eachline; # Hash of Array 

慕盖茨4494581

#! /usr/bin/perluse 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.pl0 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 9 1011C:\Users\Hunter\Documents\Perl>

慕妹3146593

可以试一下这几种方式,每种方式各有优劣:#!/bin/perl -wuse strict;my @arr = ( "aaa","bbb","ccc","ddd","eee","fff"); # 这个是数组my $vv = "ddd"; # 这个是要查找的变量# 方法1,:使用类似c语言的风格,遍历这个数组,查找变量是否匹配。foreach ( @arr){if( $vv eq $_ ){print "$vv\n"}}#方法2:使用map,查找数组中是否含有该变量map { if($vv eq $_) { print "$vv\n"} } @arr;#方法3:使用grep,查找数组中是否含有该变量print( grep /^$vv$/, @arr );

慕慕森

my @m=(0,1);$m[0]=1;指定位置1 0 1push @m,2;尾部添加1 0 1 2unshift @m,3;头部添加3 1 0 1 2$m[1..3]=(3,5,8);多位置修改3 3 5 8 2splice将制定位置移除并可进行替换
打开App,查看更多内容
随时随地看视频慕课网APP