perl基础语法

一 some关键字
@ARGV 所有的输入参数被push进该数组
$_ 默认变量
foreach(@ARGV){
print $_
}
将打印出所有的输入参数
sub child_function{
……
$a = $a+ 1
}
$funciton_return = child_function ## $function_return = $a
子程序默认会返回子程序中最后得到的一个变量,当有return会返回return语句

state a #持久性私有变量,在子程序中使用这个关键字,每次调用子程序时,会使用上次保留下来的值
二 输入输出
@lines = \<\STDIN> #键盘标准输入
open FILEHANDLE, ‘< dino’ 打开文件句柄 ;< 只读 ;>只写会覆盖 ;>>只写不覆盖,写在文件末尾。
open LOG, ’ > :encoding(UTF-8)’, $file_name or die #特定编码
while(<\FILEHANDLE>){
print $_
}
foreach 和while是有区别的
foreach会直接将整个句柄的文件吃进内存,while会一行一行的吃进来
close FINEHANDLE
三 哈希
my %last_name(
‘hannan’ => ‘chenhn’
‘zishan’ => ‘xie’
)
函数 keys values each
my @k = keys %last_name
my @v = valus %hash
# key 的顺序不可预测,不过k[i] 会对应v[i]
四 正则
正则匹配修饰符
/m #多行匹配
/s #任意匹配字符 (.)可以匹配/n
/i #大小写无关
/x #加入空白符
/-?[0-9]+.?[0-9]*/0
/-? [0-9]+ .> [0-9]* /x 两者的匹配是一样的
锚位
\A 行开头 \z 行末尾
\b 单词边界 /\bdefine\b/ 只匹配define 不匹配tc_define
五 各种小细节

1.1.多行匹配
while(<\FILEHANDLE>){
print $_
}
上述代码会将整个文件以\n换行符吃进来,无法进行多行匹配。
方法a : 改变行分割标志 undef $/ 这样做之后,while会将整个文件知道文件结尾作为行分割标志,吃进来。
方法b: m//m 使用m修饰
### Perl 编程语言基础语法 #### 1. 变量 Perl 中的变量分为三种主要类型:标量(Scalar)、数组(Array)和哈希(Hash)。 - **标量**:存储单个值,前缀为 `$` 符号。例如:`$name = "John";`[^2] - **数组**:存储一组有序的数据,前缀为 `@` 符号。例如:`@numbers = (1, 2, 3);` - **哈希**:键值对集合,前缀为 `%` 符号。例如:`%ages = ("Alice" => 25, "Bob" => 30);` #### 2. 数据类型 Perl 支持多种数据类型,主要包括字符串、整数、浮点数以及布尔值。这些数据通常通过标量来表示。 ```perl $string = "Hello, world!"; # 字符串 $integer = 42; # 整数 $float = 3.14; # 浮点数 $boolean = 1; # 布尔值(真) ``` #### 3. 控制结构 控制结构允许程序执行条件分支或循环操作。以下是常见的控制结构: ##### 条件判断 (`if`, `elsif`, `else`) ```perl if ($age >= 18) { print "You are an adult.\n"; } elsif ($age >= 13) { print "You are a teenager.\n"; } else { print "You are a child.\n"; } ``` ##### 循环 (`while`, `for`, `foreach`) - 使用 `while` 实现计数器逻辑: ```perl $count = 0; while ($count < 10) { $count += 2; print "Count is now $count\n"; # 打印出 2 4 6 8 10 } ``` 上述代码展示了如何利用 `while` 进行迭代[^3]。 - 使用 `for` 遍历固定范围内的数值: ```perl for ($i = 0; $i < 5; $i++) { print "$i\n"; } ``` - 使用 `foreach` 处理列表中的每一项: ```perl @fruits = ('apple', 'banana', 'cherry'); foreach $fruit (@fruits) { print "I like $fruit.\n"; } ``` #### 4. 函数定义与调用 函数可以通过 `sub` 关键字定义,并接受参数传递。 ```perl sub greet { my ($name) = @_; print "Hello, $name!\n"; } greet("Alice"); # 输出 Hello, Alice! ``` #### 5. 正则表达式 Perl 的正则表达式功能强大,适用于复杂的文本匹配和替换场景。 ```perl $text = "The price is \$100."; if ($text =~ /\$(\d+)/) { print "Price found: $$1\n"; # 提取价格部分 } ``` #### 6. 标识符命名规则 Perl 的标识符遵循严格的命名约定,仅能由字母(a-z, A-Z)、数字(0-9)和下划线 `_` 组成,且必须以字母或下划线开头。此外,标识符严格区分大小写[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值