perl命令行参数内建数组@ARGV浅析_perl

当perl脚本运行时,从命令行上传递给它的参数存储在内建数组@ARGV中,@ARGV是PERL默认用来接收参数的数组,可以有多个参数,$ARGV[0]是表示接收到的第一个参数,$ARGV[1]表示第二个。
使用方法为:

复制代码 代码如下:

perl   my.pl $ARGV[0]  $ARGV[1]

看一个具体例子:
比如文件1的内容:

复制代码 代码如下:

1320238
1320239
1320239
1320238
1320238
1320238
1320235
1320237

文件2的内容:

复制代码 代码如下:

102 5709072117805887 4001 1301854
102 5709072117807510 4001 1320292
102 5709072117838653 4001 1301857
102 5709072117814280 4001 1305832
102 5709072117839397 4001 1310673
102 5709072117839335 4001 1311270

我想先把文件1的内容读取出来,然后读取文件二的内容,在读取文件2的内容的时候,文件2的最后一列需要包含在上文件1内。

复制代码 代码如下:

[root@localhost ~]$ perl  ex.pl 1.txt 2.txt
[root@localhost ~]$ cat ex.pl
#!/usr/bin/perl
use strict;

open(ONE,"$ARGV[0]") or die $!;
open(TWO,"$ARGV[1]") or die $!;

my %hash;
while (<TWO>) {
    chomp;
    my @line=split;
    my $column4=$line[3];
    $hash{$column4}=$_;
}

while (<ONE>) {
     chomp;
     print $hash{$_} if defined $hash{$_};
   
}

print"\n";

时间: 2024-10-22 11:20:31

perl命令行参数内建数组@ARGV浅析_perl的相关文章

.NET Core采用的全新配置系统[5]: 聊聊默认支持的各种配置源[内存变量,环境变量和命令行参数]

较之传统通过App.config和Web.config这两个XML文件承载的配置系统,.NET Core采用的这个全新的配置模型的最大一个优势就是针对多种不同配置源的支持.我们可以将内存变量.命令行参数.环境变量和物理文件作为原始配置数据的来源,如果采用物理文件作为配置源,我们可以选择不同的格式(比如XML.JSON和INI等) .如果这些默认支持的配置源形式还不能满足你的需求,我们还可以通过注册自定义ConfigurationSource的方式将其他形式数据作为我们的配置来源. [ 本文已经同

Node.js编程快餐(2) - 处理命令行参数

处理命令行参数 我们要用Node.js写脚本的话,第一件事要处理的就是命令行参数. 就像下面的C++代码一样,命令行参数通过argc和argv传进来. #include <iostream> using namespace std; int main(int argc, char* argv[]) { cout <<"argc="<<argc<<endl; cout << "Hello world!" &l

在Perl中使用Getopt::Long模块来接收用户命令行参数_应用技巧

我们在linux常常用到一个程序需要加入参数,现在了解一下 perl 中的有关控制参数的模块 Getopt::Long ,比直接使用 @ARGV 的数组强大多了.我想大家知道在 Linux 中有的参数有二种形式. •长参数  –help•短参数   -h也就是-和–的分别.–表示完整参数.-表示简化参数.在 Perl 的这个模块中也支持这二种方法.这要介绍的二 Getopt 其实有二个模块,一个叫 Getopt::Long 一个叫 Getopt::Std.下面就只介绍 Getopt::Long

Perl命令行应用程序详解_perl

perl - Practical Extraction and Report Language,Perl有很多命令行参数,通过它可以让你的程序更简练,并且可以写出很多只有一行命令的perl.在这篇文章里我们来了解一些常用的命令行参数. 命令行调用 复制代码 代码如下: perl [ -sTtuUWX ] [ -hv ] [ -V[:configvar] ] [ -cw ] [ -d[t][:debugger] ] [ -D[number/list] ] [ -pna ] [ -Fpattern

C/C++中命令行参数的原理

很早以前的dos应用程序中,我们经常会用命令行参数执行应用程序例如: copy c:\1.txt d:\ 在c/c++中,命令行参数的传递是利用main进行形参传递实现的 前面的教程中我们对面都进行了void main()或者是void main(void)的定义,这表示main不返回任何类型,和main不带有任何参数,但在缺剩状态下mian()这样形式下,形式参数一直是存在在栈空间内的只是隐藏了起来. 为了实现命令行参数我们将使用main(int argc,char* argv[])这样的形式

getopt() 对命令行参数进行分析

getopt() 对命令行参数进行分析 int getopt( int argc, char *const argv[], const char *optstring );         给定了命令参数的数量 (argc).指向这些参数的数组 (argv) 和选项字符串 (optstring) 后,getopt() 将返回第一个选项,并设置一些全局变量.使用相同的参数再次调用该函数时,它将返回下一个选项,并设置相应的全局变量.如果不再有识别到的选项,将返回 -1,此任务就完成了.可以重复调用

C语言程序设计之命令行参数

  在许多应用软件运行时都带有命令行参数,其实这些命令行参数在C语言编写的程序中也可以实现,灵活地运用命令行参数进行处理可以有效地提高程序的运行效率,收到事半功倍的效果. C语言中有关命令行参数涉及到程序的主函数main(int argc,char *argv[]这样两个参数,其中,int argc表示命令行参数的个数(包括可执行程序名本身),char *argv[]表示每个参数的具体内容,argv[0]为命令行中可执行程序名本身,argv[1]为命令行中第二个参数的内容,依次类推.如下例输出命

Bash Getopts - 让你的脚本支持命令行参数

Bash Getopts - 让你的脚本支持命令行参数 以前我总想知道如何为我的Bash脚本创建命令行参数.经过搜索,我发现了2个函数可以处理这个问题,getopt 函数和 getopts 函数.我无意争论哪一个函数更好的.getopts 是一个shell内建命令,而且似乎比 getopt 更容易实现这个功能,所以在这篇文章里我准备讲讲getopts. bash getopts 开始的时候,我只试着处理传递给脚本的命令行参数.最后,我添加了另外一些有用的功能函数,使得这个脚本可以成为其他任何交互

如何分析命令行参数

如何分析命令行参数     GNU/Linux的命令行选项有两种类型:短选项和长选项,前者以 '-' 作为前导符,后者以 '--' 作为前导符.     比如有一个命令: $ myprog -a vv --add -b --file a.txt b.txt - -- -e c.txt     在GNU/Linux系统,对这种情况的一种合理解释是:     a是短选项,带一个参数vv:     add是长选项,无参数:     b是短选项,无参数:     file是长选项,带一个参数a.txt: