用户定义数据结构:
perl 中不存在这种内建的模板功能,一种常用的方式就是使用散列表来仿真结构类型,如图2-1所示:
例子 :矩阵:
在我们讨论这个例子之前,你必须知道如果你需要的是一个好的,高效的矩阵实现的话,就应该查看一下CPAN中的PDL模块
在Perl中使用数组的数组是最为直观的一种矩阵表达方式,因为Perl不直接支持二维数组:
zjzc01:/root/hei# cat a17.pl
@matrix=([1,2,3],[4,5,6],[7,8,9]);
print @matrix;
print "\n";
##将第1行,第2列的元素值改为100
print $matrix[1][2]."\n";
$matrix[1][2]=100;
print $matrix[1][2]."\n";
zjzc01:/root/hei# perl a17.pl
ARRAY(0x12c5d48)ARRAY(0x12e25a8)ARRAY(0x12e2620)
6
100
($line =~ /^([A-Za-z]\w*)/) ###匹配字母开头
\w 匹配一个字母、数字或下划线字符,相当于[a-zA-Z_0-9]
zjzc01:/root/hei# cat a18.pl
sub matrix_read_file {
my ($filename) = @_;
open (F,$filename) || die;
while ($line=<F>){
chomp ($line);
next if $line=~/^\s*$/; ##开头后面0个或者而多个空格结尾 ,表示空行
if ($line =~ /^([A-Za-z]\w*)/){
$matrix_name=$1}
else{
my @row = split (/\s+/,$line);
push (@{$matrix_name},\@row);#将行数组插入到外层的矩阵数组
第<2>章 实现复杂的数据结构
最新推荐文章于 2023-06-21 21:36:45 发布