这个Perl脚本实现了什么?(What does this Perl script achieve?)
我正在阅读由别人编写的Perl脚本,我对Perl不太熟悉,所以有人会告诉我前三行是干什么的?
my $ref = do($filename); $ref != 0 or die "unable to read/parse $filename\n"; @varLines=@{$ref}; foreach $ord (@varLines) { # code here }
这是在获取命令行参数设置
$filename
后程序的开始被传递给这个脚本的文件的格式是
[ { "Key1" => "val1", "key2" => " "A", }, { "Key3" => "val2", "key4" => " "B", }, ]
I was going over a Perl script written by someone else and I am not too familiar with Perl so could someone let me know what do the first three lines do?
my $ref = do($filename); $ref != 0 or die "unable to read/parse $filename\n"; @varLines=@{$ref}; foreach $ord (@varLines) { # code here }
This is in the beginning of the program after the
$filename
is set with getting the commandline argumentsThe format of the file being passed to this script is
[ { "Key1" => "val1", "key2" => " "A", }, { "Key3" => "val2", "key4" => " "B", }, ]
原文:https://stackoverflow.com/questions/1744340
最满意答案
您可以使用windows提供的命令:
cacls
和icacls
只读
cacls
$ cacls "$file_path" //E //P Everyone:N 1>/dev/null $ cacls "$file_path" //E //G Everyone:R 1>/dev/null
只写与
cacls
$ cacls "$file_path" //E //P Everyone:N 1>/dev/null $ cacls "$file_path" //E //G Everyone:W 1>/dev/null
第一行删除所有权限。 第二行添加“读”或“写”
如果您不使用Windows XP,则可以使用
icacls
:
- 只读 :
icacls "$file_path" //grant :r Everyone:R 1>/dev/null
- 只写 :
icacls "$file_path" //grant :r Everyone:W 1>/dev/null
有关这些命令的更多信息:
cacls
: http : //ss64.com/nt/cacls.html或technet.microsoft.comicacls
: http :icacls
或technet.microsoft.comYou can use the commands provided by windows:
cacls
andicacls
Read-Only with
cacls
$ cacls "$file_path" //E //P Everyone:N 1>/dev/null $ cacls "$file_path" //E //G Everyone:R 1>/dev/null
Write-Only with
cacls
$ cacls "$file_path" //E //P Everyone:N 1>/dev/null $ cacls "$file_path" //E //G Everyone:W 1>/dev/null
The first line removes all rights. The second lines add either "Read" or "Write"
If you are not using Windows XP, you can use
icacls
instead:
- Read-only:
icacls "$file_path" //grant :r Everyone:R 1>/dev/null
- Write-only:
icacls "$file_path" //grant :r Everyone:W 1>/dev/null
More information on these commands:
相关问答
更多-
MSYS是什么,他与CYGWIN有什么区别?[2022-06-14]
MSYS是windows的.dll/.exe等文件的库文件, 库文件就是帮你实现了某些功能的库函数的封装,你可以在你的程序中调用这些函数,然后连接一下就可以了。 区别: cygwin/gcc和MinGW都是gcc在windows下的编译环境 cygwin/gcc完全可以和在linux下的gcc化做等号,这个可以从boost库的划分中可以看出来端倪,cygwin下的gcc和linux下的gcc完全使用的是相同的Toolsets。 所以完全可以和linux一起同步更新gcc版本,而不用担心问题,并且在cygwi ... -
传统上MSYS bash一直较差,但主要是因为Cygwin仍处于积极发展阶段,而MSYS则没有。 MSYS从Cygwin 1.3.3版分出,并且从未重新同步,而MSYS2则定期与Cygwin项目重新同步。 我们没有像包管理器那样的“甜蜜的牧师”,我们直接重新编译Arch Linux的pacman包管理器,就像我们可以实现的那样。 MSYS2没有cygwin.dll,但它确实有msys-2.0.dll,它可以做同样的事情(还有一些更多)。 具体而言,看起来像路径和PATH环境的参数。 运行Windows本机软 ...
-
看起来好像是在尝试使用Bash运行“批处理”文件。 这不行。 虽然批处理文件将rem解释为注释,但Bash只是认为它是一个命令并尝试运行它。 我的建议是将其重写为Bash脚本,也许这可能是一个起点。 It looks as though you are trying to run a "Batch" file using Bash. This will not work. While Batch file interprets rem as a comment, Bash simply thinks it ...
-
编辑(2年以后:2014年10月) 约翰内斯·辛德林 刚刚解释 (2014年10月), msysgit被淘汰 : 我们现在拥有一个重量轻的Git for Windows SDK ,它基本上是通过包管理器mingw-get管理的标准MinGW / MSys系统。 我们决定逐渐删除名称“msysGit”(以及同名的GitHub组织) ,并在Git for Windows (使用相应的GitHub组织)上使用名称“Git for Windows”作为安装程序对于面向Git for Windows开发人员的开发环境 ...
-
Mosquitto与Cygwin(Mosquitto with Cygwin)[2022-08-08]
鉴于错误消息与SSL相关,看起来SSL没有安装在cygwin中。 重新运行setup.exe并回答提示以返回“ Select Packages屏幕。 在“搜索”框中输入SSL 打开Libs部分并选择所需的库。 或者,您可以从Net部分安装整个openssl包,并让cygwin安装所有必需的依赖项。 I solved the SSL errors by adding -lsslto the gcc line. Final gcc line: $ gcc -Wall -Imosquitto-1.1.3/lib/ ... -
如何在Msys或Cygwin中将文件设置为只写或只读?(How to set a file to write-only or read-only in Msys or Cygwin?)[2023-11-12]
您可以使用windows提供的命令: cacls和icacls 只读 cacls $ cacls "$file_path" //E //P Everyone:N 1>/dev/null $ cacls "$file_path" //E //G Everyone:R 1>/dev/null 只写与cacls $ cacls "$file_path" //E //P Everyone:N 1>/dev/null $ cacls "$file_path" //E //G Everyone:W 1>/dev/nu ... -
为什么c#不支持只读或只写自动属性?(Why doesn't c# support read-only or write-only automatic properties?)[2022-08-17]
来自C#3.0规范: 将属性指定为自动实现的属性时,将为该属性自动提供隐藏的后备字段,并且实现访问器以读取和写入该后备字段。 由于支持字段不可访问,因此只能通过属性访问器读取和写入。 这意味着自动实现的只读或只写属性没有意义,并且是不允许的。 但是,可以以不同方式设置每个访问者的访问级别。 因此,具有私有支持字段的只读属性的效果可以像这样模仿: public class ReadOnlyPoint { public int X { get; private set; } public int Y { ... -
创建一个Cygwin emacs宏(Creating a Cygwin emacs macro)[2023-11-15]
许多问题,这里有一些答案: 你的.emacs可以存在很多地方,这取决于, 在这里阅读。 简而言之,请尝试Cx Cf .emacs ,或者检查变量'user-init-file ( Ch v user-init-file )的值。 我认为你想要的命令是这样的: (require 'comint) ; this does require comint (defun cygwin () "do what i want for cygwin" (interactive) (let ((buffer (g ... -
我不知道任何可以可靠地传达这些信息的环境变量,但是uname -s的输出应该告诉你。 I don't know of any environment variable which will reliably convey this information, but the output from uname -s should tell you.
-
程序中不需要更改对象的部分应该只是使用const引用,并将非变异成员函数标记为const。 class FooR { public: int read() const { return x; } void mutate(int nx) { x = nx; } private: int x; }; void f1(FooR const& obj) { int x = obj.read(); // cannot use obj.mutate(x+1); } void m ...