我从谷歌搜索中找到的唯一两个选项是 /OUT 和 /Fe,但都不适合我:
使用 /Fe 显示没有错误,但在当前目录中也找不到输出文件:
C:\hands_on\C>cl /Fe:test.exe main.c
Microsoft (R) C/C++ Optimizing Compiler Version 15.00.30729.01 for x64
Copyright (C) Microsoft Corporation. All rights reserved.
main.c
Microsoft (R) Incremental Linker Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.
/out::test.exe
main.obj
C:\hands_on\C>ls
main.c main.obj
Run Code Online (Sandbox Code Playgroud)
使用 /OUT 会出现错误:
C:\hands_on\C>cl /OUT:test.exe main.c
Microsoft (R) C/C++ Optimizing Compiler Version 15.00.30729.01 for x64
Copyright (C) Microsoft Corporation. All rights reserved.
cl : Command line warning D9025 : overriding '/Ot' with '/Os'
cl : …Run Code Online (Sandbox Code Playgroud) 在Perl中,filehandle是一种数据类型,我希望这种类型的变量有一些sigil前缀.但是,以下代码(第二次打开)表明情况并非如此
open my $fileHandle, '>', "out.txt";
open FH, '>', "out2.txt";
Run Code Online (Sandbox Code Playgroud)
我发现第二种形式令人困惑/不一致.允许第二种形式的原因是什么?
以下程序在第二次调用eval时停止.这是预期的吗?我读了perldoc -f eval,并且惊讶于没有显示打印"2:..."的输出.
eval {die("The curly braces seem to rescue me! Life moves on")};
print "1: $@\n";
eval die("Program actually terminates here! Subsequent prints are not shown");
print "2: $@\n";
Run Code Online (Sandbox Code Playgroud) 以下示例打印"SAME":
if (q/\\a/ eq q/\a/) {
print "SAME\n";
}
else {
print "DIFFERENT\n";
}
Run Code Online (Sandbox Code Playgroud)
我理解这与文档一致.但我认为这种行为是不可取的.是否需要在单引号字符串中逃避反弹lilteral?如果我想要2个反冲,我需要指定4; 这似乎不方便.
Perl不应该检测反斜杠是否作为转义字符?例如,当反斜杠不在分隔符之前时,应将其视为文字; 如果是这种情况,我不需要3个反斜杠表示两个,例如,
q<a\\b>
Run Code Online (Sandbox Code Playgroud)
代替
q<a\\\b>.
Run Code Online (Sandbox Code Playgroud) 我理解裸字可以用作引用运算符(q //,qq //),哈希键等的字符串.我个人对此并不太兴奋,因为我无法克服心理上的期望应引用字符串,如C,C++中所示.但是,如果我采用引用字符串和裸字的混合使用,我想确保我不会意外地在脚中射击自己,在运行时裸字不能正常运行.
请排除"use strict"在编译时将其作为错误捕获的用例.我总是启用'严格'模式,所以我不关心这些情况.
以下是基于所提供的答案和评论的代码说明:
#!/usr/bin/perl
use strict;
use constant SIZE => "const_size";
sub size {
return "getsize";
}
my $href = {
size => 1,
getsize => 2,
const_size => "CONST_SIZE",
SIZE => "LARGE",
};
print "constant SIZE:", SIZE, "\n";
print "1. \$href->{size}:", $href->{size}, "\n";
print "1a. \$href->{size()}:", $href->{size()}, "\n";
print "2. \$href->{getsize}:", $href->{getsize}, "\n";
print "3. \$href->{SIZE}:", $href->{SIZE}, "\n";
print "3a. \$href->{(SIZE)}:", $href->{(SIZE)}, "\n";
Run Code Online (Sandbox Code Playgroud)
输出:
$ ./bare_word.pl
constant SIZE:const_size
1. $href->{size}:1
1a. $href->{size()}:2
2. $href->{getsize}:2
3. $href->{SIZE}:LARGE …Run Code Online (Sandbox Code Playgroud) 以下print语句在访问数组引用的第一个元素时有效
my $aref = [6, 7, 8];
print $aref->[0];
print $$aref[0];
print ${$aref}[0];
Run Code Online (Sandbox Code Playgroud)
在第3次印刷中允许/使用花括号的原因是什么?它是按设计还是偶然工作?
perl -f ref列出的名称似乎都不是文件句柄.以下代码返回GLOB,因此似乎filehandle内部映射到或作为typeglob进行管理.那是对的吗?
open FH, '>', "out.txt";
my $ref = \*FH;
print "ref \$ref:", ref $ref, "\n";
Run Code Online (Sandbox Code Playgroud)
文件句柄是否有自己的类型名称?