在日常办公中,经常要处理大量文本数据,比如整理日志、批量修改文件名、提取表格信息等。很多人第一反应是用Excel或者Word,但遇到复杂规则时就显得力不从心。这时候,掌握一点Perl语法基础知识,就像手里多了把小巧锋利的剪刀,几行代码就能搞定繁琐任务。
变量:存储数据的基本单元
Perl里的变量分几种,最常用的是标量(scalar),用来存单个值,比如数字、字符串。标量以美元符号$开头。
$name = "小李";
$age = 28;
$salary = 5000.50;
上面三行分别存了名字、年龄和工资。注意字符串可以用双引号或单引号,双引号支持变量插值,单引号则原样输出。
数组:管理一串数据
如果你想存多个名字,用数组更方便。数组以@开头,元素用括号包裹,索引从0开始。
@fruits = ("苹果", "香蕉", "橙子");
print $fruits[1]; # 输出:香蕉
这里要注意,取单个元素时用$,因为它是标量;整个数组才是@fruits。
哈希:键值对的高效查找
哈希就像通讯录,用名字找电话。它以%开头,存放键值对。
%phonebook = (
"张三" => "13800138000",
"李四" => "13900139000"
);
print $phonebook{"张三"}; # 输出:13800138000
查号码时用花括号,前面还是加$,因为结果是一个值。
条件判断:让程序做选择
工作中常要根据条件执行不同操作。比如判断销售额是否达标:
$sales = 12000;
if ($sales >= 10000) {
print "业绩优秀!\n";
} else {
print "还需努力。\n";
}
这里的if-else结构很直观,适合处理报表中的分类逻辑。
循环:批量处理的好帮手
假设你要给10个员工发通知,写10次太麻烦,用for或foreach循环更省事。
@names = ("王五", "赵六", "钱七");
foreach $person (@names) {
print "正在发送邮件给:$person\n";
}
每轮循环$person依次取数组中的值,自动遍历完为止。
正则表达式:文本提取利器
办公中最头疼的是从一堆杂乱文本里抓关键信息。Perl的正则功能强大。比如从一段文字中找出所有邮箱:
$text = "联系人:alice@example.com 和 bob@test.org";
while ($text =~ /([\w.-]+@[\w.-]+)/g) {
print "找到邮箱:$1\n";
}
这行代码会输出两个邮箱地址。虽然正则符号看起来怪,但学会后处理日志、导出数据特别快。
这些Perl语法基础知识并不难,重点是动手试。哪怕只会这几招,也能在整理文档、清洗数据时少加班半小时。下次面对一堆文本文件时,不妨打开命令行,写两行Perl试试。