`

perl接受传递参数的几种方法

    博客分类:
  • Perl
阅读更多
1.使用一个参数读取shell传递来的多个参数:
目录下:

a.log
b.log
c.log
dota.pl

dota.pl的内容如下:
#! /usr/bin/perl

use Getopt::Std;
use warnings;
use strict;

sub read_from_sh($) {
    my $file = shift;
    my @files = ();
    open F, $file or die "Could not open $file: $!";
    while (<F>) {
next if /^\s*$/;
push @files, $_;
    }
    close F or die "Could not close $file: $!";
    return @files;
}

my @files;
my %opts = ();
getopts("s:", \%opts);
if ($opts{'s'}) {
    @files = read_from_sh($opts{'s'});
}else {
    @files = @ARGV;
}
for my $file (@files) {
print "file: $file\n";
}

运行的shell如下:
find -name '*log' |  /usr/bin/perl dota.pl -s -

结果如下:
file:a.log
file:b.log
file:c.log

或者直接塞给perl:/usr/bin/perl dota.pl a.log b.log
结果同上

2.向perl程序传递多个参数:
#!/usr/bin/perl -w
use strict;
use Getopt::Std;
use vars qw($opt_a $opt_b $opt_c);
getopts('a:b:c:');
print "\$opt_a =>; $opt_a\n" if $opt_a;
print "\$opt_b =>; $opt_b\n" if $opt_b;
print "\$opt_c =>; $opt_c\n" if $opt_c;

/usr/bin/perl p1.pl -a aa -b bb -c cc
0
0
分享到:
评论

相关推荐

    Perl程序如何调用C代码

    它的主要作用是定义 C 函数如何被 Perl 脚本调用,以及在两者之间如何传递参数和返回结果。XS 语言的核心组件是 XS 接口描述文件,这些文件通常以 .xs 为后缀。 XS 语言的主要特性包括: 1. **参数处理**:XS 负责...

    Perl语言教程 Perl语言入门

    8. **函数**:Perl中的函数可以接受任意数量的位置参数,也可以通过命名参数传递。例如,`sub myfunc { ... }` 定义一个函数。 9. **引用**:Perl的引用允许你创建指向其他数据结构的指针,如 `my $ref = \$scalar;...

    PERL5中文教程详解

    函数可以接受参数,返回值,并且可以通过引用传递大型数据结构。 4. **正则表达式**:Perl的正则表达式功能强大,用于模式匹配和字符串替换。理解正则表达式的基本语法和特殊字符是Perl编程的关键。 5. **文件和I/...

    在VB中如何调用perl代码.rar

    要实现VB调用Perl,主要可以通过以下几种方法: 1. **使用系统命令执行Perl脚本**: - VB中可以使用`Shell`函数来执行系统命令。例如,你可以创建一个按钮,在点击按钮的事件处理程序中写入如下代码: ```vb ...

    perl 中级编程必备

    Perl是一种强大的、灵活的脚本语言,尤其在文本处理、系统管理、网络编程以及Web开发等领域有着广泛的应用。"Perl中级编程必备"是针对已经掌握基础Perl语法的学习者,旨在提升他们的编程技能和解决问题的能力。骆驼...

    C++调用perl

    - **环境变量与参数传递**:在调用Perl解释器时,可以传递环境变量和命令行参数,以便于Perl脚本访问和处理外部数据。 - **错误处理**:在执行Perl代码时,必须妥善处理可能出现的错误,以防止程序崩溃或行为异常。 ...

    使 .NET 支持Perl脚本语言3932815.zip

    C# 开发者可以通过这个解决方案与 Perl 脚本进行交互,比如执行 Perl 脚本、传递参数、接收返回值等。这通常涉及到 COM 互操作、托管代码与非托管代码的交互,或者使用特定的 .NET 绑定库来实现。 为了在 C# 中使用...

    生物信息学编程用书perl

    - **2.5 文本编辑器的选择**:推荐几种适合编写Perl代码的文本编辑器。 - **2.6 获取帮助的途径**:介绍获取Perl技术支持的多种渠道。 - **第3章:编程的艺术** - **3.1 编程的不同风格**:探讨不同程序员编程时...

    PERL编程24学时教程.pdf

    16.1 Perl究竟是一种什么语言 183 16.1.1 Perl的简单发展历史 183 16.1.2 开放源 184 16.1.3 Perl的开发 185 16.2 Perl综合存档文件网 185 16.2.1 什么是CPAN 186 16.2.2 为什么人们愿意提供自己的开 发成果 186 ...

    perl programing 编程基础版本

    Perl提供了几种内置的数据类型,包括标量、数组和哈希等。 - **2.4 变量** 变量是存储数据的基本单位。 - **2.5 名字** 变量名的命名规则及其作用域。 - **2.6 标量值** - **2.6.1 数字文本** 包括整数...

    Perl 语言编程

    Perl 提供了几种内置的数据类型,包括标量、数组和哈希。 **2.4 变量** 变量是用来存储数据的容器。 **2.5 名字** 介绍了 Perl 中的命名规则。 **2.6 标量值** - **数字文本**:包括整数和浮点数。 - **字串...

    perl函数集(经典)

    在Perl中,有几种方法可以启动新的进程。这些函数不仅能够启动新进程,还可以控制它们的行为。 - **`eval`** - **函数名**: `eval` - **调用语法**: `eval $string` - **功能**: 将 `$string` 作为Perl语句执行...

    PERL编程24学时教程

    16.1 Perl究竟是一种什么语言 183 16.1.1 Perl的简单发展历史 183 16.1.2 开放源 184 16.1.3 Perl的开发 185 16.2 Perl综合存档文件网 185 16.2.1 什么是CPAN 186 16.2.2 为什么人们愿意提供自己的开 发成果 186 ...

    CGI编程使用Perl

    Perl作为一种强大的脚本语言,常被用于CGI编程,因为它提供了灵活的数据处理能力和丰富的文本操作功能。 在Perl中进行CGI编程,首先需要理解HTTP协议的基本原理,比如GET和POST请求,以及它们如何传递数据到服务器...

    perl编程24学时教程.rar

    16.1 Perl究竟是一种什么语言 183 16.1.1 Perl的简单发展历史 183 16.1.2 开放源 184 16.1.3 Perl的开发 185 16.2 Perl综合存档文件网 185 16.2.1 什么是CPAN 186 16.2.2 为什么人们愿意提供自己的开 发成果...

    perl语言脚本文档说明

    16.1 Perl究竟是一种什么语言 183 16.1.1 Perl的简单发展历史 183 16.1.2 开放源 184 16.1.3 Perl的开发 185 16.2 Perl综合存档文件网 185 16.2.1 什么是CPAN 186 16.2.2 为什么人们愿意提供自己的开 发成果 ...

    Perl-Build-master.zip

    这通常通过传递参数给初始化脚本来实现。 7. **持续集成**:在开发环境中,Perl-Build常被用在持续集成(CI)流程中,帮助自动化构建和测试过程,确保代码在不同的Perl版本下都能正常工作。 8. **社区支持**:Perl-...

    Perl编程24学时教程(PDF格式,共24章)

    16.1 Perl究竟是一种什么语言 183 16.1.1 Perl的简单发展历史 183 16.1.2 开放源 184 16.1.3 Perl的开发 185 16.2 Perl综合存档文件网 185 16.2.1 什么是CPAN 186 16.2.2 为什么人们愿意提供自己的开 发成果 186 ...

    修复CGI无法通过html传递参数表问题的lighttpd

    标题所提及的问题是关于“修复CGI无法通过html传递参数表问题的lighttpd”,这个问题涉及到CGI(Common Gateway Interface)与HTML之间的交互以及lighttpd服务器的特定版本。 CGI是一种标准,允许Web服务器执行外部...

Global site tag (gtag.js) - Google Analytics