Perl 数据类型
在 Perl 中,数据类型主要分为以下几种:
- 标量(Scalar)
- 表示单个值,可以是数字(整数、浮点数)、字符串或引用。
- 用
$
前缀表示,例如:perl my $number = 42; # 整数 my $string = "Hello"; # 字符串 my $float = 3.14; # 浮点数
- 数组(Array)
- 有序的标量列表,按索引访问。
- 用
@
前缀表示,访问元素时用$
和索引,例如:perl my @array = (1, 2, 3, "text"); print $array[0]; # 输出 1
- 哈希(Hash)
- 键值对集合,键是字符串,值可以是任意标量。
- 用
%
前缀表示,访问元素时用$
和键,例如:perl my %hash = ("name" => "Alice", "age" => 25); print $hash{"name"}; # 输出 Alice
- 引用(Reference)
- 指向其他数据结构的指针,用
\
创建。 - 用
$
前缀表示,解引用时使用适当的符号(如@
或%
),例如:perl my $scalar_ref = \$number; # 标量引用 my $array_ref = \@array; # 数组引用 my $hash_ref = \%hash; # 哈希引用 print $$scalar_ref; # 解引用输出 42 print $array_ref->[0]; # 输出 1 print $hash_ref->{"name"}; # 输出 Alice
- 文件句柄(Filehandle)
- 用于文件或网络操作的特殊类型,通常通过
open
函数创建。 - 现代 Perl 使用标量存储文件句柄,例如:
perl open my $fh, '<', 'file.txt' or die "Cannot open file: $!"; while (<$fh>) { print $_; } close $fh;
- 子程序(Subroutine)
- 可定义并调用的代码块,用
sub
关键字声明。 - 可以通过引用存储,例如:
perl sub greet { print "Hello!\n"; } my $sub_ref = \&greet; &$sub_ref; # 调用子程序,输出 Hello!
注意事项:
- Perl 是动态类型语言,变量无需显式声明类型,解释器会根据上下文自动推断。
- 数组和哈希的元素只能是标量;若需存储复杂结构,使用引用。
- Perl 5.36+ 推荐使用
my
声明变量以限定作用域。
如果你有具体问题或需要代码示例,请告诉我!