首页 > 编程语言 >Perl学习笔记5_命令行选项

Perl学习笔记5_命令行选项

时间:2023-07-15 17:33:53浏览次数:40  
标签:opt 选项 run 命令行 笔记 Perl file print verbose

目录

1. Getopt::Long

#使用模块
use Getopt::Long ;

#选项初始值
my $length = 24 ;
my $file = "file.dat";
my @run = ();
my $verbose =0;

#处理选项
# 如果参数解析成功, $result=1,
# 如果参数解析失败(有未知选项或不符合要求), $result=0
my $result = GetOptions(
    "length=i"  => \$length    , # i表示integer, 整型选项
    "file=s"    => \$file      , # s表示string, 字符串选项
    "run=s{1,}" => \@run , # {1,}表示数组, 至少一个元素
    "verbose|?" => \$verbose   , # flag, |?表示长度可变, 命令行有此选项, 则$verbose=1
);

print("length   = $length\n");
print("file     = $file\n");
print("run      = @run\n");
print("verbose  = $verbose\n");

执行

$ ex.pl -file a.txt -run a.run b.run -v
length   = 24           # 命令行没指定, 是默认值
file     = a.txt        # 命令行指定为 a.txt
run      = a.run b.run  # 命令行指定为 a.run b.run
verbose  = 1            # 命令行指定, 值为1

2. Getopt::Std

use Getopt::Std; # 用于选项都是一个字符的情况

my %opt;

# 三个选项,
#   d和f后面有冒号, 表示选项有参数,
#   o后面没冒号, 表示是个flag.
getopts("d:f:o", \%opt);

print "\$opt{d} => $opt{d}\n" if $opt{d};
print "\$opt{f} => $opt{f}\n" if $opt{f};
print "\$opt{o} => $opt{o}\n" if $opt{o};

执行:

$ ex.pl -d 2013 -f file.dat -o
$opt{d} => 2013
$opt{f} => file.dat
$opt{o} => 1

标签:opt,选项,run,命令行,笔记,Perl,file,print,verbose
From: https://www.cnblogs.com/gaiqingfeng/p/17556556.html

相关文章

  • 后缀数组学习笔记
    后缀数组是什么后缀数组就是主要处理字符串后缀问题的,它的实现算法主要有两种:倍增法和DC3,复杂度分别是\(O(n\logn)\)和\(O(n)\)。这里由于DC3代码答辩且难以理解,我就只写了倍增法的实现。例题引入P3809【模板】后缀排序题目大意读入一个长度为\(n\)的由大小写英文......
  • Perl学习笔记3_条件语句循环
    1.条件语句:if(boolean_expr0){#expr0为true时执行}elsif(boolean_expr1){#expr1为true时执行}else{#没条件匹配时执行}unless(boolean_expr0){#expr0为false时执行}elsif(boolean_expr1){#expr1为true时执行}else{#没......
  • Perl学习笔记4_命令行运行perl语句
    命令行选项例子:catfile.txt|perl-ne'$a+=s/pattern//g;END{print"$a\n"}'作用:计算文件file.txt中匹配“pattern”的个数。解释:1.cat显示文件内容,通过管道将内容送给perl程序处理;如果使用perl-e''file.txt的方式,file.txt将会被修改。使用管道,可以保证原文件......
  • Perl学习笔记2_标量数组哈希
    1.概述Perl是弱类型语言,变量不需要指定类型,解释器根据上下文自动选择匹配类型.Perl有三个基本的数据类型:标量($),数组(@),哈希(%).2.标量,scalar标量变量以$标记.my$a=123;#数字my$b="123";#字符串my$c=0x1F;#16进制my$d=047;#8进制my$e......
  • 字符串算法入门笔记
    zhx:什么AC自动机,KMP算法从来不会考zhx:不推荐用string,因为麻烦读ans入一个字符串chars[MAXN];cin>>s+1;//从s[1]开始读入,操作时方便在遍历字符串时,我们要先把字符串长度存下来,因为计算字符串长度的函数strlen的时间复杂度为\(O(长度)\),如果写成for(inti=1;i<=strlen(s+......
  • 数据结构练习笔记——输出单链表倒数第k个元素
    输出单链表倒数第k个元素【问题描述】已知带头结点的非空单链表中存放着若干整数,请找出该链表中倒数第k个元素。【输入形式】第一行:单链表中元素个数m,第二行:单链表中的m个整数,第三行:k值【输出形式】倒数第k个元素的值(不存在倒数第k个元素输出"no")【样例1】输入:5132450......
  • 【转】Docker入门笔记04:三大核心概念
    原文:https://zhuanlan.zhihu.com/p/312142777Docker的三大核心概念镜像Image容器Container仓库RepositoryDocker大部分的操作都围绕它的三大核心概念一、Docker镜像Docker镜像类似于虚拟机镜像,可以将它理解为一个只读的用于创建容器的模板。例如,一个镜像可以包含一个基......
  • 【转】Docker入门笔记01:Docker容器技术的发展历程
    原文:https://zhuanlan.zhihu.com/p/304623118最近因为工作需要,要学习一些基本的Docker知识,所以整理了一些docker的入门知识,感兴趣的小白可以看看,一起学习进步。要学习一个新的东西,我的习惯一般是先了解它是什么,它是怎么来的,发展历史是怎样的,用来解决什么问题,有什么优缺点。所以......
  • Perl学习笔记1_面向对象语法
    perl面向对象没有什么特别的语法,以例子介绍如下.例子中涉及三个文件:main.pl,AllPerson.pm,Person.pm.其中:main.pl是主脚本,它要用到AllPerson.pm.AllPerson.pm是一个class,它要用到Person.pm.Person.pm是一个class,存储人员信息.main.pl#!/usr/bin/perlusestr......
  • 学习笔记409—中小学NB资源汇聚!
    中小学学习工具及资料:一、网页:      1.https://basic.smartedu.cn/syncClassroom/prepare(国家中小学智慧教育平台)      2.https://www.eduyun.cn/(国家教育资源公共服务平台)      3.https://syzx-edu.com/new/#/(全国中小学实验在线平台)     ......