博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Perl 作为命令行实用程序(转)
阅读量:2499 次
发布时间:2019-05-11

本文共 1906 字,大约阅读时间需要 6 分钟。

Perl 作为命令行实用程序(转)[@more@]  那些将 Perl 用作编程语言的人经常忽视了:Perl 用作命令行操作的快速而又难看的脚本编制引擎时是很有用的。通过命令行,Perl 仅用一行就可以实现大多数其它语言需要数页代码才能完成的任务。跟着 Teodor,他会教给您一些有用的示例。
为了完成这一篇 how-to 文章,您需要在系统上安装 Perl 5.6.0。您的系统最好安装比较新(2000 或更新)的 Linux 或 Unix,但是其它操作系统也能照样工作。所有的示例都使用 tcsh shell(尽管 bash 及其它 shell 也能工作)。虽然这些示例也许可以和较早版本的 Perl、Linux 及其它操作系统一起工作,但是如果它们不能一起工作,那么它们无法工作的原因可以作为练习,让读者去解决。
我想说的第一点是:有经验的程序员不应回避快速而又难看的解决方案。在其它专栏文章中,我已经强调了文档编制和彻底性。本专栏文章将集中在编程的消极面,其中文档编制是可选的,而咖啡因却无从选择。因为我们已经身陷其中。
第二点和第一点一样重要:快速而又难看的解决方案很难正确完成。如果您知道如何记录、测试和调试完整的脚本,那么您就非常有可能在一行程序中取得成功。如果您不知道怎样做,那么这就像是企图用鲱鱼来砍倒红杉树(而您的技能就是那条鲱鱼)。
第一步,您应该学习 shell 的特性:Unix 将命令行参数传递给 Perl 的方式及这些参数的 Perl 解释方法。
命令行的实质
在 Unix 中您将看到可执行任务的概念,一个进程通常是装入内存的程序。除了初始进程外,进程都可以由其它进程来启动,初始进程通常是由内核(有时由内核进程)来启动的。就用户的观点而言,启动进程需要 shell 或启动程序。因此,当用户在 shell 命令行输入"xeyes"或者从启动程序菜单(类似于 GNOME 任务栏)选择 X Eyes 应用程序时,shell 或启动程序创建新的进程以运行该程序。
进程获得命令行参数。因此,例如,"perl"和"perl -w"是对同一个程序的两种不同调用。在内部,Perl(类似于 C)将参数传递给它用 @ARGV 数组解释的脚本。但是和 C 不同的是,Perl 偷偷地从脚本中"窃取"其中一些参数以用于自己的用途。例如,正在解释的脚本看不到传给 Perl 解释器的"-w"参数,除非脚本看来需要它。shell 用空格字符隔开参数。
传给 Perl 的"-e"参数告诉 Perl 获取命令行中"-e"后的任何内容并将它当作脚本来运行。"-M"参数表示获取其后的任何内容并将该内容作为模块导入,类似于正规脚本中的"use ModuleName"。请参阅 perldoc perlrun 页面以获取有关 Perl 必须从命令行提供的开关的更多信息。
可能最好在这里举些示例。根据本专栏文章的精神,让我们使用一行程序。脚本的 -MData:umper -e'print Dumper -@ARGV' 部分只是打印出了 @ARGV 数组的内容。
清单 1. 命令行参数
QUOTE:

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10617731/viewspace-947286/,如需转载,请注明出处,否则将追究法律责任。

上一篇:
下一篇:
请登录后发表评论
全部评论
<%=items[i].createtime%>

<%=items[i].content%>

<%if(items[i].items.items.length) { %>
<%for(var j=0;j
<%=items[i].items.items[j].createtime%>
回复

   回复   : <%=items[i].items.items[j].content%>

<%}%> <%if(items[i].items.total > 5) { %>
还有<%=items[i].items.total-5%>条评论
) data-count=1 data-flag=true>点击查看
<%}%>
<%}%> <%}%>
  • 博文量
  • 访问量
    4188554

最新文章

转载于:http://blog.itpub.net/10617731/viewspace-947286/

你可能感兴趣的文章
GizpAttribute
查看>>
Redis安装教程
查看>>
centos yum install redis
查看>>
DBUtils数据库连接池
查看>>
underscore.js _.each[Collections]
查看>>
if...else if switch分支结构
查看>>
前端页面卡顿?或是DOM操作惹的祸,需优化代码
查看>>
JS的节流、防抖及使用场景
查看>>
列表Liist
查看>>
ORACLE操作列
查看>>
LeetCode 136. 只出现一次的数字(Single Number)
查看>>
css实现下拉列表
查看>>
安卓开发之SimpleAdapter的使用
查看>>
Mac配置环境变量(Java,Android,Gradle,Nodejs,MongoDB,Maven,Hosts)
查看>>
jstl 标签 循环 序号
查看>>
[SICP] 求值规则
查看>>
C# 通过优酷网址 获取flash真实地址
查看>>
vsCode常用插件
查看>>
2018年4月24日JAVA
查看>>
log4net 添加日志
查看>>