Perl system(cmd) 和 `cmd` 的区别探讨

在perl中
系统调用有两种方式,一种是system(cmd),另一种是`system`
以前一直没注意,这两种方式的区别,还以为是一样的,
今天写脚本的时候,忽然想要获取命令的返回值,然后,用了
my $result = system(‘ls‘);
发现,命令的结果并没有返回给$result,
而是直接,打印到屏幕上了,所以,这么搞是要完蛋的,
而改成
my $result = `ls`;
则就能获取到命令的执行结果。
所以,如果我们要调用系统命令,然后要处理,命令执行的结果,就需要使用
`cmd`,而不是system

时间: 2024-11-03 03:37:07

Perl system(cmd) 和 `cmd` 的区别探讨的相关文章

perl中==操作和eq操作区别

$str1 = "1 -the first str"; $str2 = "1 -the second str"; print "numerically  equal\n" if($str1 == $str2); print "stringwise equal\n" if($str1 eq $str2); 结果只有numerically equal. PS:perl会自动转换字符串.$str1 == $str2中的值都是1 实际

Common JS、AMD、CMD和UMD的区别

一.CommonJS 1.CommonJS API定义很多普通应用程序(主要指非浏览器的应用)使用的API.它的终极目标是提供一个类似Python,Ruby和Java标准库.CommonJs 是服务器端模块的规范,Node.js采用了这个规范. 2.这些规范涵盖了模块.二进制.Buffer.字符集编码.I/O流.进程环境.文件系统.套接字.单元测试.违背.服务器网关接口.包管理等. 3.根据CommonJS规范,一个单独的文件就是一个模块.加载模块使用require方法,该方法读取一个文件并执行

windows使用system身份执行cmd

转载请注明:http://blog.csdn.net/einsteinlike/article/details/44158221 在使用jenkins调用命令行工具的时候,jenkins使用system身份调用,这使得在admin身份时设置的某些功能在system时不起作用,所以我们也要获得system身份来进行配置. (在cmd中是无法直接cd到system32文件夹的) 做法是: 找到system32文件夹下的那些exe们,找一个由系统调用的而且不常用到的,比如讲述人 Narrator.ex

cmd和amd的区别(js模块化)

AMD 是 RequireJS 在推广过程中对模块定义的规范化产出.CMD 是 SeaJS 在推广过程中对模块定义的规范化产出.类似的还有 CommonJS Modules/2.0 规范,是 BravoJS 在推广过程中对模块定义的规范化产出.还有不少?? 这些规范的目的都是为了 JavaScript 的模块化开发,特别是在浏览器端的.目前这些规范的实现都能达成浏览器端模块化开发的目的. 区别: 1. 对于依赖的模块,AMD 是提前执行,CMD 是延迟执行.不过 RequireJS 从 2.0

论docker中 CMD 与 ENTRYPOINT 的区别

Dockerfile里有 CMD 与 ENTRYPOINT 两个功能咋看起来很相似的指令,开始的时候觉得两个互用没什么所谓,但其实并非如此: CMD指令: The main purpose of a CMD is to provide defaults for an executing container. CMD在容器运行的时候提供一些命令及参数,用法如下: CMD ["executable","param1","param2"] (exec

System.load(String filename)和System.loadLibrary(String libname)的区别

前言 之前一篇文章在写Native方法的时候,第一个步骤里面有这么一段代码 static { System.load("D:" + File.separator + "Hello.dll"); } 其实JDK提供给用户了两个方法用于载入文件,一个是System.load(String filename)方法,另外一个是System.load(String libname)方法,本文主要写一下这两个方法之间的区别. 区别 1.加载的路径不同 System.load(S

JAVA中System.out.println和System.out.print有什么区别

java里常用的控制台输出语句有System.out.println和System.out.print 一:两者之间的区别如下: 1. 参数有区别: System.out.println() 可以不写参数 System.out.print(参数) 参数不能为空.必须有 2.效果有区别 println :会在输出完信息后进行换行,产生一个新行 print: 不会产生新行 3.println更简洁, print更灵活 print可以后面跟"\n"来达到和println一样的效果 也可以跟&

perl中my和our的区别分析

来源: http://www.jb51.net/article/35528.htm perl中our的用法require 5.006当版本号小于 5.006 的时候,会返回失败,从而导致模块加载失败.所以它的作用就是保证模块调用环境的 Perl 版本. our 和 my 一样,都是对变量的声明,不过 our 声明的是包全局变量,而 my 声明的是词法变量. 不过,经过 our 声明的变量,它会变得像一个词法变量一样,其实这也是 our 存在的目的:用来欺骗 strict pragma,使 str

内置系统账户:Local system/Network service/Local Service 区别

LocalSystem   账户 LocalSystem是预设的拥有本机所有权限的本地账户,这个账户跟通常的用户账户没有任何关联,也没有用户名和密码之类的凭证.这个服务账户可以 打开注册表的HKEY_LOCAL_MACHINE/Security键,当LocalSystem访问网络资源时,它是作为计算机的域账户使用的. 举例来说,以LocalSystem账户运行的服务主要有:WindowsUpdate   Client.   Clipbook.Com+.DHCP   Client.Messenge