- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最近,我在某个perl脚本中遇到了这样的事情:
while(<FH>){
$var1 = <FH>; $var2 = $_
}
readline(FH)
相同;我可以知道这样的写作有什么特殊含义吗?
最佳答案
让我们获取有关直接问题的文档。
从readline
This is the internal function implementing the
<EXPR>
operator, but you can use it directly. The<EXPR>
operator is discussed in more detail in I/O Operators in perlop
<FILEHANDLE>
may also be spelledreadline(*FILEHANDLE)
. See readline.
<FH>
和
readline(FH)
是等效的(我们可以将
*FH
或
FH
传递给
readline()
)。
open my $fh, '<', $file or die "Can't open $file: $!";
<$fh>
以从文件句柄(与之关联的文件)中读取。
<>
本身还有其他一些属性。请参阅广泛的
perlop
讨论。
<FH>
条件内的
while
在标量上下文中,因此它从连接到
FH
的资源中读取一行。当我们进入循环体时,
<FH>
将再次读取一行,从而读取下一行,将其分配给
$var1
。
<$FH>
是有条件的
while
内部的唯一内容时,该行将分配给默认的
variable $_
。参见上面链接的
I/O Operators
。因此,
$var2
被分配了这一行。
$var2
中具有第一行,在
$var1
中具有下一行。这个奇怪的循环在每次迭代中遍历两行,首先分配两者的第二行,然后分配第一行。
关于perl - Perl中$ var = <FH>和$ _之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45204822/
这个脚本: #!/usr/bin/perl use strict; use warnings; my ${fh}; open($fh, ' ) { print $line; } close $
这行得通:- while () { print $_; } 但这不是:- if () { print $_; } 并给出有关未初始化值的错误。我在这里想念什么? 最佳答案 while () 被
如何确定我是否可以将给定数量的字节写入文件句柄(实际上是套接字)? (或者,如何“取消读取”我从其他文件句柄读取的数据?) 我想要这样的东西: n = how_much_can_I_write(w_h
当我做: print $fh 'text'; 我需要一些 &sub被称为。 有没有办法做到这一点? 最佳答案 您可以 tie a filehandle并自定义 print 的行为到该文件句柄或对该文件
最近,我在某个perl脚本中遇到了这样的事情: while(){ $var1 = ; $var2 = $_ } 由于内部具有文件句柄名称的菱形运算符的工作方式与readline(FH)相同;我
with open(logPath, 'r') as fh: for line in TailDeque(fh, 20): gamethread.delayed(0, show
每次 Emacs 启动时,我都希望它的窗口占据我屏幕的整个高度。 现在,从手册页中,我发现这可以通过 -fh 开关来完成。 它有点管用,但有没有办法让我执行以下操作: 1) 在 .emacs 中指定
我有一行代码: print $somehash{$var}{fh} "foo"; 哈希包含向下几级的文件句柄。错误是: String found where operator expected at
我在网上搜索过,但我找不到以下指令和eax, 38fh中的“fh”的含义。我知道“h”代表十六进制,“d”代表十进制,但我以前从未见过 fh。 最佳答案 如果英特尔汇编程序(即 MASM)标记以数字(
这是我接触 perl 的第一天,我发现这个警告非常令人困惑。 Parentheses missing around "my" list at ./grep.pl line 10. 它似乎 open F
我在网上搜索过,但我找不到以下指令和eax, 38fh中的“fh”的含义。我知道“h”代表十六进制,“d”代表十进制,但我以前从未见过 fh。 最佳答案 如果英特尔汇编程序(即 MASM)标记以数字(
如果这个问题听起来很简单,我很抱歉,我的目的是了解 深入这个(这些?)特定的操作符是如何工作的,我无法在 perldocs 中找到令人满意的描述(它可能存在于某个地方,我一生都找不到它) 特别是,我有
我想获取当前终端的大小,即运行我的 perl 脚本的终端。下面应该完成这项工作: #!/usr/bin/perl sub getTerminalSize { my @dimensions =
可以将编码为 utf-8 的文件白化,如下所示: open my $fh,">:utf8","/some/path" or die $!; 如何使用 IO::File 获得相同的结果,最好是 1 行?
(根据 https://stackoverflow.com/a/17479551/6607497 它应该工作,但没有)我有一些这样的代码: use strict; use warnings; if (
我是一名优秀的程序员,十分优秀!