首页 > 编程语言 >Perl 学习笔记

Perl 学习笔记

时间:2024-07-02 20:31:07浏览次数:20  
标签:name 笔记 Perl 学习 模块 print John my

Perl 是一种高效、功能强大且灵活的编程语言,广泛用于文本处理、系统管理、网络编程、Web 开发等领域。它由 Larry Wall 在 1987 年首次发布,名字来源于“Practical Extraction and Report Language”。

Perl 的特点

  1. 强大的文本处理能力:Perl 有着强大的正则表达式和字符串处理功能,非常适合处理各种文本文件。
  2. 灵活性:Perl 有着宽松的语法规则,允许多种编程风格。
  3. 跨平台:Perl 可以在多种操作系统上运行,包括 Unix、Linux、Windows 和 macOS。
  4. 丰富的模块和库:通过 CPAN(Comprehensive Perl Archive Network),Perl 提供了大量的模块和库,可以大大简化开发工作。
  5. 解释性语言:Perl 是一种解释型语言,不需要编译,便于快速开发和测试。

Hello World

下面是一个简单的 Perl 脚本,打印“Hello, World!”:

#!/usr/bin/perl
use strict;
use warnings;

print "Hello, World!\n";

基本语法

变量

Perl 有三种主要类型的变量:标量、数组和哈希。

  • 标量:以 $ 开头,用于存储单个值(字符串、整数、浮点数等)。

    my $name = "John";
    my $age = 30;
    
  • 数组:以 @ 开头,用于存储一组有序的值。

    my @colors = ("Red", "Green", "Blue");
    print $colors[0]; # 输出: Red
    
  • 哈希:以 % 开头,用于存储键值对。

    my %person = ("name" => "John", "age" => 30);
    print $person{"name"}; # 输出: John
    

条件语句

Perl 支持常见的条件语句如 if, elsif, elseunless

my $grade = 85;

if ($grade >= 90) {
    print "A\n";
} elsif ($grade >= 80) {
    print "B\n";
} elsif ($grade >= 70) {
    print "C\n";
} else {
    print "F\n";
}

循环

Perl 支持 for, foreach, whileuntil循环。

# for 循环
for (my $i = 0; $i < 5; $i++) {
    print "Number: $i\n";
}

# while 循环
my $j = 0;
while ($j < 5) {
    print "Number: $j\n";
    $j++;
}

# foreach 循环
my @colors = ("Red", "Green", "Blue");
foreach my $color (@colors) {
    print "Color: $color\n";
}

函数

Perl 支持用户定义函数,使用 sub 关键字。

sub greet {
    my ($name) = @_;
    return "Hello, $name!";
}

print greet("John");

文件操作

Perl 提供了丰富的文件操作功能。

# 打开文件
open(my $fh, '<', 'file.txt') or die "不能打开文件: $!";

# 读取文件内容
while (my $line = <$fh>) {
    print $line;
}

# 关闭文件
close($fh);

模块和库

Perl 有一个庞大的模块和库生态系统,通过 CPAN 可以轻松安装和使用各种模块。

cpan install JSON # 安装模块

使用模块:

use JSON;

my $json_text = '{"name": "John", "age": 30}';
my $data = decode_json($json_text);

print $data->{name}; # 输出: John

运行 Perl 脚本

保存你的 Perl 脚本为script.pl,在命令行运行:

perl script.pl

标签:name,笔记,Perl,学习,模块,print,John,my
From: https://www.cnblogs.com/Undefined443/p/18280509

相关文章

  • 【基于星火大模型的群聊对话分角色要素提取BaseLine学习笔记】
    @目录项目背景项目任务我的思路Baseline详解数据抽取完整代码星火认知大模型Spark3.5Max的URL值,其他版本大模型URL值请前往文档(https://www.xfyun.cn/doc/spark/Web.html)查看星火认知大模型调用秘钥信息,请前往讯飞开放平台控制台(https://console.xfyun.cn/services/bm35)查看星火......
  • 现代机器学习技术导论-清华大学王东
    本书的主体内容是基于该研讨班形成的总结性资料,从2016年8月开始整理,历经数次大规模修正,直到2019年1月定稿。全书共分十一章,内容如下:目录第一章:介绍机器学习研究的总体思路,发展历史与关键问题:第二章:介绍线性模型,包括线性预测模型,线性分类模型和线性高斯概率模型;第三章......
  • PHP 学习笔记
    PHP(HypertextPreprocessor)是一种广泛用于Web开发的服务器端脚本语言。它可以嵌入到HTML中,用于生成动态网页。基本语法PHP代码通常嵌入在HTML中,使用<?php...?>标签包围。<!DOCTYPEhtml><html><head><title>PHP示例</title></head><body><h1>&......
  • 小迪安全学习笔记~目录
    目录01:基础入门-概念名词02:基础入门-数据包拓展03:基础入门-搭建安全拓展04:基础入门-WEB源码拓展05:基础入门-系统及数据库等06:基础入门-加密编码算法 07:信息收集-CDN绕过技术08:信息收集-架构,搭建,WAF等09:信息收集-APP及其他资产等10:信息收集-资产监控拓展 11:WEB漏......
  • 【笔记】Android Settings 应用设置菜单的界面代码介绍
    简介Settings应用中,提供多类设置菜单入口,每个菜单内又有各模块功能的实现。那么各个模块基于Settings基础的界面Fragment去实现UI,层层按不同业务进行封装继承实现子类:DashboardFragmentSettingsPreferenceFragment功能设置页中的菜单又是通过Controller去实现业务并进行UI......
  • 原根学习笔记
    原根学习笔记原根这是一个又臭又长的内容。拉格朗日定理:设\(p\)为素数,对于模\(p\)意义下的整系数多项式\[f(x)=a_nx^n+a_{n-1}x^{n-1}+\cdots+a_0(p\nmida_n)\]的同余方程\(f(x)\equiv0\pmodp\)在模\(p\)意义下至多有\(n\)个不同解。证明:使用归纳法,对于\(n=......
  • FFT 学习笔记
    \(\text{FFT}\)学习笔记多项式确定一个多项式,往往只需要知道每一次项前的系数是多少即可。众所周知,一个朴素的多项式往往可以被写成\[f(x)=\sum_{n\ge0}a_nx^n\]的形式,在这种形式下的两个多项式\(f,g\)的乘积\(h\)往往可以按照\[h(x)=(f*g)(x)=\sum_{n\ge0}(\sum_{i=0......
  • Python TensorFlow双向Bi-LSTM长短期记忆神经网络深度学习可视化用户传感器活动数据
    全文链接:https://tecdat.cn/?p=36613原文出处:拓端数据部落公众号在本文中,我们旨在利用深度学习技术,特别是TensorFlow框架下的Keras库,对WISDM(无线传感器数据挖掘)数据集进行活动识别。WISDM数据集包含了从用户身上佩戴的加速度传感器收集的三轴加速度数据,这些数据被用于识别用户的......
  • 焦点损失:深度学习中的目标检测优化神器
    ......
  • learncpp网站学习笔记
    0.1课程简介教程特点:零基础适用、示例丰富课程结构:第0章介绍c++编程的相关概念及软件;第1章介绍c++基础,后面章节深入研究;每章都有一个主题目标涵盖一般的编程主题:编程风格、常见陷阱、调试、好/坏的编程实践、测试提供大量示例(尽量不在示例中省略内容、引入未解释过的概念......